2008-10-17 55 views
5

Tôi đang xây dựng một ứng dụng MS Access trong đó tất cả các biểu mẫu đều là phương thức. Tuy nhiên, sau khi thay đổi dữ liệu trong biểu mẫu, tôi muốn làm mới biểu mẫu gốc của biểu mẫu này với dữ liệu mới hơn. Có cách nào để làm điều đó. Để xây dựng thêm:Cách làm mới mẫu truy cập

Cân nhắc có hai biểu mẫu, Biểu mẫu A và Biểu mẫu B. Cả hai đều là hình thức phương thức. Từ Mẫu A, tôi bắt đầu Biểu mẫu B, và bây giờ Mẫu B có sự chú ý của người dùng. Nhưng ở gần hình thức B, tôi muốn làm mới Mẫu A. Có cách nào để làm điều đó không?

Trả lời

6

Không, nó cũng giống như tôi muốn chạy Form_Load của Mẫu A, nếu nó có thể

- Varun Mahajan

Cách thông thường để làm điều này là để đặt liên quan mã trong một thủ tục có thể được gọi bởi cả hai biểu mẫu. Nó là tốt nhất đặt mã trong một mô-đun tiêu chuẩn, nhưng bạn có thể có nó trên Form a:

Mẫu số B:

Sub RunFormALoad() 
    Forms!FormA.ToDoOnLoad 
End Sub 

Mẫu A:

Public Sub Form_Load() 
    ToDoOnLoad 
End Sub  

Sub ToDoOnLoad() 
    txtText = "Hi" 
End Sub 
+0

Tôi không nghĩ về điều này trước đó. Cảm ơn bạn rất nhiều –

6

Bạn có thể sơn lại và/hoặc requery:

Trên kiện chặt chẽ của hình thức B:

Forms!FormA.Requery 

Đây có phải là những gì bạn nghĩa là gì?

+0

Không, giống như tôi muốn chạy Form_Load của Biểu mẫu A, nếu có thể –

1

"requery" thực sự những gì là bạn những gì bạn muốn chạy, nhưng bạn có thể làm điều đó trong sự kiện "On Got Focus" của Form A. Nếu bạn có mã trong Form_Load của bạn, có lẽ bạn có thể chuyển nó sang Form_Got_Focus.

+1

Xem nhận xét của Varun Mahajan. Yêu cầu không chạy các sự kiện tải. – Fionnuala

+0

Đó là lý do tại sao tôi đề nghị chuyển mã ở đó sang Form_Got_Focus (giống như bạn đã làm trong câu trả lời thứ hai). Nếu anh ta muốn làm mới dữ liệu được liên kết với biểu mẫu, requery là cách để đi. – BIBD

+0

Nếu hew muốn làm lại sự kiện Load, di chuyển mã sang một phụ khác (như Remou đã minh họa) và sau đó gọi nó trong tải và sau đó trong định tuyến làm mới của mình (hoặc khi đóng B hoặc khi gán lại A với một Tập trung). Got Focus cũng sẽ hoạt động nếu A cũng mở các cửa sổ khác. – BIBD

0

Tôi khuyên bạn nên sử dụng REQUERY hộp tổ hợp cụ thể có dữ liệu bạn đã thay đổi VÀ bạn làm điều đó sau câu lệnh Cmd.Close. theo cách đó, nếu bạn nhập dữ liệu, dữ liệu đó cũng được truy vấn lại.

DoCmd.Close 
Forms![Form_Name]![Combo_Box_Name].Requery 

bạn cũng có thể muốn để trỏ đến giá trị thời gian gần đây đã thay đổi

Dim id As Integer 
id = Me.[Index_Field] 
DoCmd.Close 
Forms![Form_Name]![Combo_Box_Name].Requery 
Forms![Form_Name]![Combo_Box_Name] = id 

ví dụ này giả định rằng bạn đã mở một biểu mẫu để nhập dữ liệu vào một bảng thứ yếu.

hãy để chúng tôi nói rằng bạn lưu School_Index và School_Name trong bảng Trường học và tham chiếu nó trong bảng Sinh viên (chỉ chứa trường School_Index). trong khi bạn đang chỉnh sửa một sinh viên, bạn cần phải kết hợp nó với một trường học mà không có trong bảng trường của bạn, vv vv

-1

để làm mới hình thức bạn cần phải gõ - me.refresh trong trường hợp nút trên nhấp vào

Các vấn đề liên quan