-
Tìm mã theo một mã cho trước
toanle > 08-12-16, 02:12 AM
Dear các anh/chị
Em nhờ các anh giúp đỡ về bài này với ạ,
Em có 03 table
Table1 (Doc_code,Department)
Table2(Doc_code,Transmittal no)
Table3(Transmitta no)
Giờ em muốn lập 1 Form có chứa 01 Combo box (lấy nguồn từ Table3) và 01 Text box ( để hiển thị giá trị của Department theo giá trị của Transmittal no (combo box).
Hiện tại File em làm nó chạy không đúng. ( nó chỉ tìm đc 1 giá trị trong khi Department có rất nhiều giá trị khác nhau)
2. Em cũng nhờ các anh có thể giúp em tạo hàm để giải quyết vấn đề này.
File đính kèm đây ạ: http://www.mediafire.com/file/p55qfjp8om...ckDept.mdb
hoặc đây ạ: https://drive.google.com/file/d/0B7lSmGW...sp=sharing
(Cái bài này có vẻ giống với tìm số bị thiếu) nhưng khi em áp dụng không thể chạy đc. Nếu bài post có sai sót ji mong các anh/chị thông cảm.
Rất mong nhận được sự giúp đỡ từ mọi người
Trân trọng! -
RE: Tìm mã theo một mã cho trước
toanle > 08-12-16, 10:09 AM
Dear a/c/e
Sau một hồi mày mò em đã làm ra đc em nó ntn ạ:
Post lên cho a/c/e tham khảo và góp ý ạ:
http://www.mediafire.com/file/ifd59ngfge...8OK%29.mdb
Trân trọng! -
RE: Tìm mã theo một mã cho trước
ongke0711 > 08-12-16, 10:23 AM
Bạn làm hàm chi cho phức tạp vậy. Đây chỉ là lọc giá trị combobox từ 1 combobox khác thôi. Trên diễn dàn có nhiều bài về vụ này.
Tôi đã xem file của bạn. Bạn muốn hiển thị nhiều Department mà bạn chỉ dùng textbox thì làm sao nó hiển thị đây. Muốn hiển thị nhiều dòng để chọn thì chỉ dùng Combobox hoặc Listbox.
- Để lấy nguồn (Row Source) cho combobox Transmittal No, bạn không cần tạo table tbl3 để lấy mã [TransmittalNo]. Bạn chỉ cần dùng Total Query từ table tbl2 là được rồi.
—————————————————————
SELECT tbl2.[Transmittal no]
FROM tbl2
GROUP BY tbl2.[Transmittal no];
—————————————————————
- Tạo combobox Dept có Row Source là:
—————————————————————
SELECT tbl2.[Transmittal no], tbl1.Department
FROM tbl1 INNER JOIN tbl2 ON tbl1.Doc_Code = tbl2.Doc_code
GROUP BY tbl2.[Transmittal no], tbl1.Department
HAVING (((tbl2.[Transmittal no])=[Forms]![Form1]![TênComboTransmittalNo]));
—————————————————————
- Ở sự kiện AfterUpdate của combobox TransmitalNo, bạn sẽ Requery cái combox Dept.
Me.ComboxDept.Requery -
RE: Tìm mã theo một mã cho trước
toanle > 08-12-16, 11:21 AM
(08-12-16, 10:23 AM)ongke0711 Đã viết: Bạn làm hàm chi cho phức tạp vậy. Đây chỉ là lọc giá trị combobox từ 1 combobox khác thôi. Trên diễn dàn có nhiều bài về vụ này.
Thanks a!
Tôi đã xem file của bạn. Bạn muốn hiển thị nhiều Department mà bạn chỉ dùng textbox thì làm sao nó hiển thị đây. Muốn hiển thị nhiều dòng để chọn thì chỉ dùng Combobox hoặc Listbox.
- Để lấy nguồn (Row Source) cho combobox Transmittal No, bạn không cần tạo table tbl3 để lấy mã [TransmittalNo]. Bạn chỉ cần dùng Total Query từ table tbl2 là được rồi.
—————————————————————
SELECT tbl2.[Transmittal no]
FROM tbl2
GROUP BY tbl2.[Transmittal no];
—————————————————————
- Tạo combobox Dept có Row Source là:
—————————————————————
SELECT tbl2.[Transmittal no], tbl1.Department
FROM tbl1 INNER JOIN tbl2 ON tbl1.Doc_Code = tbl2.Doc_code
GROUP BY tbl2.[Transmittal no], tbl1.Department
HAVING (((tbl2.[Transmittal no])=[Forms]![Form1]![TênComboTransmittalNo]));
—————————————————————
- Ở sự kiện AfterUpdate của combobox TransmitalNo, bạn sẽ Requery cái combox Dept.
Me.ComboxDept.Requery
Chắc do câu hỏi ban đầu của em chưa rõ. tbl1,tbl2,tbl3 của em là 3 bảng để nhập riêng biệt. Sau đó là em cần tìm cái Giá trị Department để làm điều kiện cho một Textbox khác nữa ạ. vì thế nên 01 [Transmittal no] sẽ chỉ cần cho ra 01 kết quả Department(nhóm User).....từ kết quả này em sẽ dùng Event Current để phân quyền sửa/xóa/add cho form thế nên e không dùng ô hiển thị là Combo box hoặc list box.
Và muốn dùng hàm này cho nhiều Form nữa (các form này nằm trong NavigationForm nên em k dùng phân quyền như Demo của a Maidinhdan đc, nên phái sử dụng Event Current của từng form).
em nhờ a sửa hộ em chỗ trong Hàm: để em dùng cho nhiều form với.
Else
Show = ""
End If
Trân trọng! -
RE: Tìm mã theo một mã cho trước
ongke0711 > 08-12-16, 01:17 PM
Mã PHP:-----------------------------------------------------
Public Function GetDept(Trans As String)
Dim rs As DAO.Recordset
Dim sql As String
"Câu lệnh SQL của bạn (vì lỗi bảo mật nên ko copy lên đây được) "
Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapShot)
If rs.RecordCount > 0 Then
GetDept = rs.Fields("Department").Value
Else
GetDept = ""
End If
End Function
-------------------------------------------------------------
Private Sub Combo11_AfterUpdate()
Me.Text13 = GetDept(Me.Combo11)
End Sub