Truy cập: Làm thế nào để khớp / liên kết các bản ghi với nhau trong cùng một trường?


1

Trong Cơ sở dữ liệu truy cập của tôi là một bảng có thông tin dự án, ID là 'số dự án'. Tôi muốn có thể khớp / liên kết / liên kết các dự án khác nhau (tất cả được nêu trong cùng một lĩnh vực) với nhau.

Vì vậy, khi tôi mở dự án 1 dưới dạng, tôi muốn thấy các dự án của các dự án có liên quan đến dự án 1, ví dụ như dự án số 2, 5 và 6. Và khi tôi mở dự án 2, tôi muốn thấy các dự án 1, 5 và 6. Trong biểu mẫu, tôi muốn thêm 'mối quan hệ' mới.

Thật không may, tôi không biết làm thế nào để thực hiện điều này. Tôi có cần tạo một bảng mới (hoặc chỉ một trường) để cung cấp cho các dự án có liên quan đến nhau một 'ID mối quan hệ' không? Hoặc điều này có thể được giải quyết bằng một tự tham gia?

Câu trả lời:


1

Giải pháp được cung cấp bởi Andy G là hoàn hảo nếu bạn có mối quan hệ chủ / nô lệ (nghĩa là: một dự án chính và một số dự án phụ có liên quan).

Nhưng nếu bạn có mối quan hệ bình đẳng trong đó bất kỳ bản ghi nào có thể liên quan đến bất kỳ số lượng bản ghi nào khác, thì bạn có thể tạo cái mà tôi gọi là "Bảng liên kết", trong đó bạn có 2 trường: ID của bản ghi A và ID của bản ghi B

Sau đó, trong Biểu mẫu nơi bạn nhập hoặc xem lại hồ sơ của mình, bạn có thể tạo biểu mẫu con với Bảng Liên kết này để thêm liên kết.

Lưu ý: Bạn cũng có thể tạo một macro để đảm bảo rằng với mỗi bản ghi AB trong Bảng Liên kết, bạn cũng có bản ghi BA hoặc chỉ cần thực hiện thủ công.


0

Bit muộn nhưng, vâng, tự tham gia .

  • Thêm một trường mới vào bảng như MainProject. Đảm bảo rằng nó có cùng kiểu dữ liệu với ProjectNumbertrường;
  • Đi vào cửa sổ mối quan hệ và Thêm bảng lần thứ hai. Kéo và thả từ MainProjectbản sao ProjectNumberthứ nhất sang bản sao thứ hai;
  • Bấm đúp vào dòng tham gia và chọn Thực thi toàn vẹn tham chiếu . Điều này sẽ đảm bảo rằng bạn không thể chỉ định MainProjectid chưa tồn tại ProjectNumber.

Khi bạn xây dựng một biểu mẫu được sử dụng để tạo các bản ghi mới cho bảng này, hãy thêm một ComboBoxvà đặt nó RowSourcevào một câu lệnh sql liệt kê ProjectNumbers (và có lẽ các trường khác) tạo thành bảng. Đặt nó ControlSourcethành MainProject.

Tuy nhiên, lưu ý rằng nếu bạn đang tạo một dự án mới và id của dự án này cũng sẽ được sử dụng làm id của dự án chính thì nó đòi hỏi một chút nỗ lực hơn. Bạn sẽ cần lưu bản ghi hiện tại và ReQueryhộp tổ hợp trước khi id mới này sẽ hiển thị trong danh sách của nó. Bạn có thể muốn sử dụng một nút để đạt được điều này với mã. Theo cách thủ công, bạn có thể nhấn Shift-Enterđể lưu bản ghi hiện tại, sau đó nhấp vào hộp tổ hợp và nhấn F9 để yêu cầu nó.

Tuy nhiên, nếu có các chi tiết khác có liên quan đến dự án chính này chưa có trong bảng thì, vâng, bạn nên tạo một bảng mới để giữ các chi tiết này - cụ thể, đó là thông tin CHỈ có liên quan đến chính dự án.

Nếu bạn chỉ cần ProjectNumber (của dự án chính) thì việc tự tham gia như được mô tả ở trên sẽ đủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.