Gán dữ liệu khi tìm được.

tienduyet

Member
Hội viên mới
Em có form Phiếu chi (frmPhieuchi) có các trường như sau: NickName, FullName, Add, MoneyNum, MoneyText.
1 form Tìm FullName (frmFind) có các trường: NickName, FullName, Add.
Trong khi em viết 1 Phiếu chi, nhưng chưa nhớ FullName kia có NickName là gì, nên em tìm FullName kia để biết NichkName --> Kết quả tại form frmFind có: đầy đủ thông tin em cần tìm.
Vậy, em làm thế nào để trên frmPhieuchi em ko phải nhập NickName vào trường NickName nữa, mà NickName em vừa tìm được tự động chiếm chỗ tại trường này luân.
Các huynh xem ví dụ và cho em xin giải pháp ah! Em cảm ơn!

Ví dụ của em để tại đây nha: http://www.mediafire.com/download.php?6jwxsuyork1
 
Sửa lần cuối:
Ðề: Gán dữ liệu khi tìm được.

Em có form Phiếu chi (frmPhieuchi) có các trường như sau: NickName, FullName, Add, MoneyNum, MoneyText.
1 form Tìm FullName (frmFind) có các trường: NickName, FullName, Add.
Trong khi em viết 1 Phiếu chi, nhưng chưa nhớ FullName kia có NickName là gì, nên em tìm FullName kia để biết NichkName --> Kết quả tại form frmFind có: đầy đủ thông tin em cần tìm.
Vậy, em làm thế nào để trên frmPhieuchi em ko phải nhập NickName vào trường NickName nữa, mà NickName em vừa tìm được tự động chiếm chỗ tại trường này luân.
Các huynh xem ví dụ và cho em xin giải pháp ah! Em cảm ơn!

Ví dụ của em để tại đây nha: http://www.mediafire.com/download.php?6jwxsuyork1

Đọc bài viết và tải file của em, vẫn chưa hiểu thiết kế của em lắm. Bây giờ, Nếu ý em muốn khi gõ nickname (ID) --> Fullname tự hiện ra ô của nó --> làm như sau:
giả sử Control Nick name có tên là txtNickname
Có thể dùng Dlookup để giải quyết trong sự kiện afterupdate trong Control txtNickname.
Thủ tục trong event afterUpdate của txtNickname như sau
Me!Fullname = DLookup("[Fullname]", "tên Table chứa fullname, nicknam..", "[Nickname] = [txtNickname]")

---> Như vậy, sau khi gõ Nickname thì Fullname cũng tự hiện ra ô của nó.
 
Ðề: Gán dữ liệu khi tìm được.

Không anh ah, tại đây em đã quan hệ CSDL theo kiểu 1 - nhiều rồi, nên khi em gõ đúng NickName --> thì FullName, Add sẽ tự động hiện ra mà không phải dụng đến Dlookup.
ý của em là: Khi em ko nhơ được FullName có NickName như nào, thì em vào frmFind để tìm FullName đó có NickName là gì, khi kết quả tìm được là đúng thì em nháy một nút nào đó (Insert chẳng hạn) hay em Escape thì tại trường NickName (trong frmPhieuthu) sẽ tự động chèn NickName em tìm được trên frmFind vào, mà em ko cần phải nhập lại NickName đó nữa.
Thế anh ah!
 
Ðề: Gán dữ liệu khi tìm được.

Không anh ah, tại đây em đã quan hệ CSDL theo kiểu 1 - nhiều rồi, nên khi em gõ đúng NickName --> thì FullName, Add sẽ tự động hiện ra mà không phải dụng đến Dlookup.
ý của em là: Khi em ko nhơ được FullName có NickName như nào, thì em vào frmFind để tìm FullName đó có NickName là gì, khi kết quả tìm được là đúng thì em nháy một nút nào đó (Insert chẳng hạn) hay em Escape thì tại trường NickName (trong frmPhieuthu) sẽ tự động chèn NickName em tìm được trên frmFind vào, mà em ko cần phải nhập lại NickName đó nữa.
Thế anh ah!

Thì ở cái nút gì đó, cho một khúc này vào:
Forms("frmPhieuChi").txtNickname = cái_nick_vừa_tìm_thấy
Sau đó mới đóng cái form Tìm lại.
 
Ðề: Gán dữ liệu khi tìm được.

Anh ơi hướng dẫn cụ thể hơn cho em đi. Thế này em chỉ hiểu một nửa thôi ah.
Anh hướng dẫn em cụ thể hơn nữa nhé.
Cảm ơn anh!
 
Ðề: Gán dữ liệu khi tìm được.

Anh ơi hướng dẫn cụ thể hơn cho em đi. Thế này em chỉ hiểu một nửa thôi ah.
Anh hướng dẫn em cụ thể hơn nữa nhé.
Cảm ơn anh!

Này, làm phiền hơi nhiều đấy nhé. :gun_bandana: :dapghe:

Theo như bạn nói thì tôi mô tả vầy có đúng không:

Bạn có form phiếu chi, trong khi nhập, đến cái nickname, bạn không nhớ nick mà chỉ nhớ tên fullname. Bạn muốn là sau khi nhấn cái gì đó, nó sẽ hiện ra cái form tìm. Trong form tìm, bạn gõ cái fullname, sau đó bạn cho tìm, nếu có nó sẽ trả về cái nickname của fullname đó. Sau đó bạn sẽ đóng cái form tìm đi. Khi đóng form tìm thì tự động cái nick tìm thấy sẽ "bay thẳng" vào cái nickname của form phiếu chi. Đúng không?

Nếu đúng vậy thì:
Giả sử cái textbox có tên txtnick_found sẽ chứa cái nick tìm thấy trong form tìm. Đồng thời cái textbox chứa nick trong form phiếu chi có tên là txtnickname.

Trong form tìm:

Private Sub Form_Close ()
If IIf(IsNull(txtnick_found), "", txtnick_found) <> "" Then
Forms("frmPhieuChi").txtnickname = txtnick_found​
End If​
End Sub

Thế thôi.
 
Ðề: Gán dữ liệu khi tìm được.

Anh ah, em là dân mù tịt mà. Đang tự tìm hiểu nên làm phiền anh hơi bị nhiều tý, anh đừng phật lòng nhé.
Ý của em đúng như lời anh mô tả đó.
Cảm ơn anh nhiều và em còn làm phiền anh, diễn đàn rất nhiều đấy ah!
 
Ðề: Gán dữ liệu khi tìm được.

Anh Nhatnq2002 nói hay quá ah. Anh ah em người mới tham gia diễn đàn, hơn nữa năm nay em mới học năm thứ 2 của Đại học công nghiệp - Nam Định - Ngành CNTT nên em mới có tý tẹo kiến thức về lập trình cũng như Access.
Anh Nhatnq2002 ơi, anh hướng dẫn em tạo form tìm kiếm nha. Tại form này khi em gõ 1 vài ký tự vào txtnick_found thì bên danh sách bên dưới (danh sách này em em tạo theo kiểu Datasheet) sẽ hiện ra tất cả những thông tin liên qua đến những gì em nhập, sau đó nháy chọn thông tin đó và nháy chọn nút hay Close frmFind đi, thì NickName em chọn đó sẽ chèn vào trường NickName trên frmPhieuChi.
Anh chỉ dẫn em nhé, em cảm ơn anh nhiều ah!
 
Sửa lần cuối:
Ðề: Gán dữ liệu khi tìm được.

Nó báo lỗi runtime error "2465'
Application defined or objẻct defined erorr

Làm sao để chuyển giá trị vừa click đúp vào bộ nhớ rồi gán vào 1 ô text của form hiện thời hả bác. Vì đôi lúc giá trị của ô đấy không phải chỉ cập nhật cho 1 form. Form tìm thông tin chỉ coi như 1 form tạm thời, sau khi lấy giá trị xong thì nó đóng lại và bắt đầu gán giá trị cho 1 text box của form hiện thời.
 
Sửa lần cuối:
Ðề: Gán dữ liệu khi tìm được.

Trong cái form gọi mở fmFind đó khi gọi mở nó ta gán kiểu window là Dialog để ngăn kô cho ngừoi dùng nhảy sang form khác.
Trong fmFind đó ta gán giá trị tìm được vào property TAG của form.
Và rồi khi trở về form chính ta truy xuất giá trị của property TAG của fmFind mà dùng:

DoCmd.OpenForm "fmFind", , , , , acDialog 'gọi mở fmFIND
xxx = fmFind.Tag 'mời bạn xơi cơm
 
Sửa lần cuối:
Ðề: Gán dữ liệu khi tìm được.

Cơ bản ở chỗ khi chuyển từ main form sang form tìm kiếm thì ô hiện tại sẽ lost focus. Sau khi close form tìm kiếm thì làm sao ô mình muốn gán giá trị có lại focus
 
Ðề: Gán dữ liệu khi tìm được.

Cơ bản ở chỗ khi chuyển từ main form sang form tìm kiếm thì ô hiện tại sẽ lost focus. Sau khi close form tìm kiếm thì làm sao ô mình muốn gán giá trị có lại focus

Thì mình gán focus lại cho nó: forms!formname!controlabc.set focus đại loại thế.
 
Ðề: Gán dữ liệu khi tìm được.

Không phải vậy. Ví dụ tại ô mã phòng tại form main ta click đúp vào nó nhảy ra form bảng phòng cho ta chọn 1 trong số các phòng ban. Khi ta click đúp vào ô mã phòng tại form bảng phòng ban vừa popup thì form bảng phòng ban đóng lại và điền giá trị vào ô mã phòng tại form main.
Nếu có cách nào để cho txttenphongban tại form main hiện thị được giá trị tương ứng với mã phòng ban thì hay quá (ADO nhé, trong truy vấn tạo recordset cho main form không có trường Tenphongban)

PS: Giá trị gán vào không chỉ cho main form mà cho main1,main2...form.
 
Sửa lần cuối:
Ðề: Gán dữ liệu khi tìm được.

Dạ em thử rồi, nhưng chỉ hiểu quả khi chỉ có duy nhất một tên vật tư (TenVT)
Ví dụ trong trường hợp là một danh khách khách hàng, em tìm 1 NickName. Trong txtName_F - là txt gõ tên muốn tìm, trong khi đó có 3 khách hàng mang tên Nguyễn Trường Phái.
NickName: ntphai ngtrphai phaint
Name : Nguyễn Trường Phái Nguyễn Trường Phái Nguyễn Trường Phái
Add : Hà Nội TP.HCM TP.Vinh
trong 3 khách hàng trùng tên này em chỉ chọn ông Nguyễn Trường Phái quê ở TP.HCM thì em phải làm như nào để chọn ông đó vào frmPhieuChi ah?
 
Sửa lần cuối:
Ðề: Gán dữ liệu khi tìm được.

Cơ bản ở chỗ khi chuyển từ main form sang form tìm kiếm thì ô hiện tại sẽ lost focus. Sau khi close form tìm kiếm thì làm sao ô mình muốn gán giá trị có lại focus

Có chạy thử chưa mà nói thế vậy bạn?

Không phải vậy. Ví dụ tại ô mã phòng tại form main ta click đúp vào nó nhảy ra form bảng phòng cho ta chọn 1 trong số các phòng ban. Khi ta click đúp vào ô mã phòng tại form bảng phòng ban vừa popup thì form bảng phòng ban đóng lại và điền giá trị vào ô mã phòng tại form main.
Nếu có cách nào để cho txttenphongban tại form main hiện thị được giá trị tương ứng với mã phòng ban thì hay quá (ADO nhé, trong truy vấn tạo recordset cho main form không có trường Tenphongban)

PS: Giá trị gán vào không chỉ cho main form mà cho main1,main2...form.

Có 1 đống cách. Tuỳ theo thời điểm đó đã có cái gì. Tuỳ theo hứng làm cách nào.
Không biết cái file mà bạn đang làm thì làm sao mà trả lời.
 
Ðề: Gán dữ liệu khi tìm được.

Dạ em thử rồi, nhưng chỉ hiểu quả khi chỉ có duy nhất một tên vật tư (TenVT)
Ví dụ trong trường hợp là một danh khách khách hàng, em tìm 1 NickName. Trong txtName_F - là txt gõ tên muốn tìm, trong khi đó có 3 khách hàng mang tên Nguyễn Trường Phái.
NickName: ntphai ngtrphai phaint
Name : Nguyễn Trường Phái Nguyễn Trường Phái Nguyễn Trường Phái
Add : Hà Nội TP.HCM TP.Vinh
trong 3 khách hàng trùng tên này em chỉ chọn ông Nguyễn Trường Phái quê ở TP.HCM thì em phải làm như nào để chọn ông đó vào frmPhieuChi ah?
 
Ðề: Gán dữ liệu khi tìm được.

Đưa cái file đó lên đây đi.
 
Ðề: Gán dữ liệu khi tìm được.

Của tienduyet là file kèm theo dưới đây.
Nhớ đừng đặt tên trùng với các từ khoá. Như địa chỉ thì đặt tên field là "diachi" hoặc "address" ... đừng đặt là "Add".
 

Đính kèm

  • DB1.rar
    24.2 KB · Lượt xem: 185
Ðề: Gán dữ liệu khi tìm được.

hiiiiii... anh thông cảm nha, em là dân mới ý mà, chưa biết tý gì về lập trình cả.
Cảm ơn anh đã giúp đỡ em!
-----------------------------------------------------------------------------------------
Anh muontennguoi ơi, sao vẫn có lỗi vậy anh...
Đây nha, trong danh mục MSKH em có thêm khách hàng Nguyễn Trường X vào, nhưng khi tìm thì chỉ tìm thấy có Nguyễn Trường Phái thôi mà Nguyễn Trường X biến đi đâu mất ý.
Và em cũng đã thử làm một ví dụ khác, nhưng kết quả vẫn tương tự như vậy. Ví như em có hai tên khách hàng khác nhau thì trong frmFind chỉ tìm thấy khách hàng đầu tiên thôi.
anh xem lại hộ em nhé.
File đây ah: http://www.mediafire.com/download.php?kai7w3shbzh

Không thể nào, chỉ trừ khi bạn không hiển thị hết kết quả tìm thấy.
Tôi không biết bạn tạo form tìm ra sao (vì khi trả lời cho bạn, tôi không lấy file về được do bị chặn - ăn cắp giờ công ty mà, hehe), nhưng thường thì sau khi bạn OK tìm thì có bao nhiêu người thỏa điều kiện sẽ hiển thị hết ra một listbox hoặc một subform. List Box dễ hơn. ListBox này sẽ có 2 field: nick và full cho nó tiện theo dõi.
Khi double click hay gì đó thì bạn nhận về cái giá trị ở column đầu tiên của listbox mà đem về form phiếu chi của bạn.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top