[Access] Làm thế nào để ấn chuột vào 1 dữ liệu ở subform bên dưới thì dữ liệu cũng chuyển ở form main

Liên hệ QC

demon666

Thành viên mới
Tham gia
3/9/21
Bài viết
5
Được thích
0
Các bác cho e hỏi ạ, làm thế nào để ấn chuột vào 1 dữ liệu ở subform bên dưới thì dữ liệu cũng chuyển ở form main với ạ. E cảm ơn ạ.
 

File đính kèm

  • Screenshot (43).png
    Screenshot (43).png
    66.1 KB · Đọc: 34
Lần chỉnh sửa cuối:
Các bác cho e hỏi ạ, làm thế nào để ấn chuột vào 1 dữ liệu ở subform bên dưới thì dữ liệu cũng chuyển ở form main với ạ. E cảm ơn ạ.
Nhìn nhìn thì đây là Bound Form. Với Bound Form thì bạn ngâm cứu phương thức Form.Filter
Ví dụ: đây là sự kiện click vào ô mã NV trong subForm

Mã:
Private Sub txtMaNV_Click()
   Me.Parent.Form.Filter = "MaNV ='" & Me.txtMaNV & "'"
   Me.Parent.Form.FilterOn = True
End Sub

Đối với CSDL Access, cột STT không có ý nghĩa trong Table (ngoại trừ dùng nó làm Primary Key và là dạng AutoNumber), nên bỏ đi cho gọn.
Muốn hiển thị Stt trên Form cho đẹp thì tạo STT tự động khi mở Form. Trong Report thì có phương thức Running Sum.
Nói tóm nếu STT chỉ có tác dụng về mặt hiển thị thì không cần lưu vào database.
 
Theo tôi thấy thì form này không có công dụng gì vì main và sub cùng chung 1 data source
Thông thường Data source của sub form là bảng con có quan hệ với Table Main form, khi lọc mới có ý nghĩa. Bản thân datasource của sub form có thể là 1 query lọc sẵn, không cần code.
 
Theo tôi thấy thì form này không có công dụng gì vì main và sub cùng chung 1 data source
Thông thường Data source của sub form là bảng con có quan hệ với Table Main form, khi lọc mới có ý nghĩa. Bản thân datasource của sub form có thể là 1 query lọc sẵn, không cần code.
Đây là một dạng Form nhập liệu đó bác, như dạng Split Form có từ Access 2007 trở lên (nhưng it ai dùng).
Nếu chủ thớt đang ở mức thiết kế cơ bản thì áp dụng cũng OK rồi, nếu nâng cao lên chút thì ở Main Form sẽ dùng dạng Unbound để giảm tải việc phải lấy dữ liệu 2 lần cho cả Main và Sub. Nếu gặp dữ liệu lớn thì Form sẽ nặng nề khi load lên.
Qui trình thao tác là tìm trong SubF danh sách bên dưới dòng cần sửa đổi, click dòng đó để tải thông tin lên MainF và sửa. Không sửa trực tiếp trong SubF để tránh sai sót không kiểm soát.

Screen Shot 2021-09-03 at 12.27.09.png
 
Nhìn nhìn thì đây là Bound Form. Với Bound Form thì bạn ngâm cứu phương thức Form.Filter
Ví dụ: đây là sự kiện click vào ô mã NV trong subForm

Mã:
Private Sub txtMaNV_Click()
   Me.Parent.Form.Filter = "MaNV ='" & Me.txtMaNV & "'"
   Me.Parent.Form.FilterOn = True
End Sub

Đối với CSDL Access, cột STT không có ý nghĩa trong Table (ngoại trừ dùng nó làm Primary Key và là dạng AutoNumber), nên bỏ đi cho gọn.
Muốn hiển thị Stt trên Form cho đẹp thì tạo STT tự động khi mở Form. Trong Report thì có phương thức Running Sum.
Nói tóm nếu STT chỉ có tác dụng về mặt hiển thị thì không cần lưu vào database.
Cảm ơn bác nhá. E thử được rồi ạ
 
Nhìn nhìn thì đây là Bound Form. Với Bound Form thì bạn ngâm cứu phương thức Form.Filter
Ví dụ: đây là sự kiện click vào ô mã NV trong subForm

Mã:
Private Sub txtMaNV_Click()
   Me.Parent.Form.Filter = "MaNV ='" & Me.txtMaNV & "'"
   Me.Parent.Form.FilterOn = True
End Sub

Đối với CSDL Access, cột STT không có ý nghĩa trong Table (ngoại trừ dùng nó làm Primary Key và là dạng AutoNumber), nên bỏ đi cho gọn.
Muốn hiển thị Stt trên Form cho đẹp thì tạo STT tự động khi mở Form. Trong Report thì có phương thức Running Sum.
Nói tóm nếu STT chỉ có tác dụng về mặt hiển thị thì không cần lưu vào database.
Bác cho e hỏi lại một chút. E thử sang form khác nó bị lỗi như vậy.
 

File đính kèm

  • Screenshot (45).png
    Screenshot (45).png
    80.7 KB · Đọc: 7
Bác cho e hỏi lại một chút. E thử sang form khác nó bị lỗi như vậy.
Chắc có control nào đó trên Forrm được đặt tên (thuộc tính Name) là tiếng Việt có dấu, có khoảng trắng giữa các từ. Bạn kiểm tra lại toàn bộ và sửa thàmh không dấu, không khoảng trắng.
 
Web KT
Back
Top Bottom