Cách tiếp cận tốt nhất trong những trường hợp này không phải là để cố gắng vượt qua một loạt các biến . Đó là quá nhiều mã và không linh hoạt. Ví dụ: nếu bạn cần chuyển hai giá trị, điều gì sẽ xảy ra trong những năm khi yêu cầu đó tăng lên 5 giá trị? Cố gắng duy trì và vượt qua toàn bộ các giá trị là quá nhiều công việc mã hóa.
Hãy nhớ rằng mỗi biểu mẫu trong truy cập ms thực sự là một đối tượng lớp mà bạn có thể thao tác trong mã. Vì vậy, sử dụng cách tiếp cận đối tượng ở đây và bạn thấy bạn không chỉ viết ít mã hơn, mà mã của bạn sẽ sạch hơn, mô đun hơn, không cần các vars toàn cầu và mã bạn viết thường có thể được sử dụng lại giữa các biểu mẫu khác nhau.
Sau đây là cách:
Nói chung khi một hình thức giới thiệu một hình thức khác theo hình thức thứ 2 dưới các hình thức trên mở sự kiện (trên thực tế, bạn thậm chí có thể sử dụng như là muộn nhất là sự kiện on-load), bạn có thể nhận một tham chiếu đến đối tượng mẫu PREVIOUS. Nói cách khác, bạn có thể sử dụng một cách tiếp cận đối tượng ở đây.
Ở cấp dạng mô-đun, cho hình thức Tôi tuyên bố một đối tượng hình thức như:
Option Compare Database
Option Explicit
dim frmPrevious as form
Sau đó, trong các hình thức trên tải sự kiện, chúng tôi đi:
Set frmPrevious = Screen.ActiveForm
Bây giờ, bất kỳ mã trong biểu mẫu của chúng tôi, FREELY có thể sử dụng mã, sự kiện, thậm chí các biến thể được khai báo là công khai từ biểu mẫu trước đó trong mã.
Vì vậy, nếu bạn muốn ép ghi đĩa của biểu mẫu trước đó và tải lại dữ liệu.
frmPrevious.Refresh
Nếu bạn muốn thiết lập các giá trị ID, sau đó đi:
frmPrevious!ID = some value
Và, lưu ý rằng bạn thậm chí có thể tuyên bố hình thức trước đó như là một biến CÔNG cho hình thức đó, và vì thế nếu bạn có hai hình thức sâu, bạn có thể đi:
frmPrevious.frmPrevious!ID = some value
Vì vậy, chỉ cần khai báo một đối tượng biểu mẫu trong mô-đun mã mẫu M EI (hoặc vì bạn cần sử dụng giá trị trong mã). Ở trên có nghĩa là bất kỳ mã nào có sẵn tham chiếu đến đối tượng biểu mẫu trước đó. Chức năng khai báo là mu trong một hình thức sẽ trở thành một phương pháp hình thức, và có thể được chạy như:
frmPrevious.MyCustomRefresh
hoặc thậm chí những thứ như một số tùy chọn để buộc các hình thức trước đó để tạo ra và thiết lập một số hóa đơn:
frmPrevous.SetInvoice
hoặc frmPrevious.SetProjectStatusOn
vì vậy, không chỉ bạn có thể xáo trộn các giá trị và dữ liệu qua lại, nhưng bạn có thể dễ dàng thực hiện các tính năng và chức năng mà bạn xây dựng trong mã đối với hình thức prevous.
Thực tế là một tiêu chuẩn mã hóa, MOST của các biểu mẫu của tôi có một hàm pubic gọi là MyRefresh.
Lưu ý rằng vẻ đẹp của phương pháp này là bạn có thể đọc + sử dụng + đặt giá trị từ biểu mẫu trước đó. Điều này cho phép mã của bạn không chỉ nhận giá trị mà còn đặt giá trị ở dạng trước đó. Vì vậy, phương pháp này là hai chiều. Bạn có thể trộn dữ liệu và giá trị qua lại giữa các biểu mẫu. Lợi thế khác ở đây là bạn KHÔNG bị giới hạn chỉ biến, nhưng có thể sử dụng các trường, giá trị điều khiển (sự kiện, thuộc tính), v.v.
Cách tiếp cận này có nghĩa là nhiều biểu mẫu trước đó nằm trong tầm tay bạn.
Vì vậy, đừng cố gắng vượt qua toàn bộ các biến số. Chuyển một tham chiếu đến biểu mẫu và bạn có một đối tượng sẵn sàng tốt đẹp trong tầm tay của bạn và nó làm cho loại vấn đề mã hóa này trở nên dễ dàng.
Đã lâu rồi kể từ khi tôi làm việc với Access, nhưng bạn có thể gọi biểu mẫu khác, đặt các biến cấp mô-đun/cấp biểu mẫu, sau đó đóng biểu mẫu khác không? –