Giao tiếp giữa các form

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

alozng

Sơ cấp
19/10/09
3
0
0
33
longan
#1
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:
 
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,012
125
63
45
Hà nội
vnuni.net
#2
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:
A

alozng

Sơ cấp
19/10/09
3
0
0
33
longan
#3
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
 
A

alozng

Sơ cấp
19/10/09
3
0
0
33
longan
#4
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
 
H

haquocquan

Sơ cấp
19/4/08
68
0
6
Bắc Giang
#5
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
 
D

dinhhe213

Sơ cấp
2/1/10
12
0
1
35
HT
#6
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
 
A

anhkietvn

Sơ cấp
27/10/09
4
0
0
Tp.HCM
#7
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 :)
 

Thành viên trực tuyến

Không có thành viên trực tuyến.

Xem nhiều