Giao tiếp giữa các form

  • Thread starter Thread starter alozng
  • Ngày gửi Ngày gửi

alozng

Sơ cấp
mình có một giá trị nhập vào tại form 1. khi thực hiện form 1 thì form 1 đóng và gọi form 2. làm sau form 2 hiển thị giá trị nhập vào tại form 1. nếu đc bạn nào giải đáp thắc mắc giúp !
p/s: mình đang viết chuơng trình quản lí, mong nhận đc sự giúp đỡ nhiều :036:
 
Có 1 số kiến thức bạn cần tìm hiểu:

- Tìm hiểu sự khác biệt giữa các kiểu biến: Dim, Private, Public

- Tìm hiểu về một số khái niệm liên quan tới đối tượng: Phương thức (method) và Thuộc tính (Property). Form cũng là 1 đối tượng (làm kiểu này mới chuyên nghiệp, nhưng nếu chỉ để cho PM nó ... chạy thì ko cần)

- Bên cạnh đó, bạn cần tìm hiểu khái niệm về method "Đóng" đối với đối với đối tượng Form: Unload và Hide. Hãy xem xét ưu và nhược điểm của 2 methods đó và từ đó xem xem khi nào thì sử dụng chúng.

Hope that helps!
 
Sửa lần cuối:
cảm ơn bạn nhiều, mình đang tìm thông tin. cách giải quyết trước mắt của mình là tạo một query. khi form 1 đóng thì giá trị dc lưu trong query, và form 2 đọc giá trị từ query ! hihi. chúc bạn ngày vui
 
hihi, chào bạn, việc thật đơn giản, mà mình làm cho rối ren.
đây là cách giải quyết của mình, nhờ bạn cho ý kiến phải là phương pháp tối ưu chưa
Form 1 tên iWelcome, giá trị nhập vào là txtUSer
Form 2 tên iMaster, textbox cần hiển thị giá trị ở form 1 tên txtUserName

đây là code cho sự kiện Load của form 2
Private Sub Form_Load()
Dim iUser As String
iUser = Nz([Forms]![iWelcome]![txtUser], "")
Me.txtUserName = iUser
End Sub
xong !
p/s: đang làm chương trình quản lý nhỏ, nếu có problem nhờ bạn chỉ giùm - thank trước
 
hihi, chào bạn, việc thật đơn giản, mà mình làm cho rối ren.
đây là cách giải quyết của mình, nhờ bạn cho ý kiến phải là phương pháp tối ưu chưa
Form 1 tên iWelcome, giá trị nhập vào là txtUSer
Form 2 tên iMaster, textbox cần **** thị giá trị ở form 1 tên txtUserName

đây là code cho sự kiện Load của form 2
Private Sub Form_Load()
Dim iUser As String
iUser = Nz([Forms]![iWelcome]![txtUser], "")
Me.txtUserName = iUser
End Sub
xong !
p/s: đang làm chương trình quản lý nhỏ, nếu có problem nhờ bạn chỉ giùm - thank trước
Làm theo cách của bạn thì phải có sự kiện mở form2 xong, sau đó mới đóng form1 à.
Bạn thử tham khảo nhé:
- Tại cửa sổ module, tạo một biến dùng chung
public iUser as string

- Dưới nút lệnh đóng form1 (cmd0)
Private Sub cmdo_click()
iUser = Me.txtUser
Docmd.Close
Docmd.openform "from2"
End Sub

- Trong sự kiện Load của form2:
Private Sub Form_Load()
Me.txtUserName = iUser
End Sub

Bạn thử nhé: giá trị iUser sẽ chỉ mất đi khi bạn thoát chương trình
 
Làm theo cách của bạn thì phải có sự kiện mở form2 xong, sau đó mới đóng form1 à.
Bạn thử tham khảo nhé:
- Tại cửa sổ module, tạo một biến dùng chung
public iUser as string

- Dưới nút lệnh đóng form1 (cmd0)
Private Sub cmdo_click()
iUser = Me.txtUser
Docmd.Close
Docmd.openform "from2"
End Sub

- Trong sự kiện Load của form2:
Private Sub Form_Load()
Me.txtUserName = iUser
End Sub

Bạn thử nhé: giá trị iUser sẽ chỉ mất đi khi bạn thoát chương trình

Đúng vậy! Y kiến này rất hay bạn làm như vậy đi. Thêm mắm thêm muối nữa là Ok
 
Cách tốt nhất là bạn nên lưu vào các biến Public nhưng giá trị của form 1 mà form 2 cần trước khi đóng form 1, sau đó lấy nhưng giá trị từ các biến public truyền vào form 2 trước khi view form lên, đơn giản vậy thôi :)
 
Back
Top