19-06-13, 10:07 AM
(Được chỉnh sửa: 19-06-13, 10:32 AM bởi Xuân Thanh.)
Hôm trước, Noname có giới thiệu hàm tách cột thành chuỗi cách nhau dấu phẩy tại http://thuthuataccess.com/forum/thread-640.html
Hôm nay xin giới thiệu hàm làm nhiệm vụ ngược lại, vì gần đây thấy nhiều bạn thắc mắc về vấn đề tìm kiếm theo nhiều giá trị. Bạn tạo một table tblTam có một trường duy nhất để chứa các giá trĩ trả về của hàm TachChuoi mà chúng ta sẽ soạn thào ngay sau đây. Trong modul, bạn chép hàm TachChuoi này vào
Kết quả là ta đã có một table chứa các giá trị trong chuỗi được cách nhau bằng dấu phẩy
Ứng dụng:
Ta có một CSDL quản lý vật tư, có một table tblVatTu gồm MaVT, TenVT, DVT, Ton. Trong một ngày xấu trời, sếp yêu cầu ta báo cáo số lượng tồn của một số vật tư nào đó. Chả lẽ mỗi VT làm 1 query để báo cáo? Vậy ta dùng hàm TachChuoi này kết hợp với một hàm viết trong form nữa là ta có báo cáo cho sếp rồi
Các bạn xem file DeMo sẽ biết cách thực hiện
1/ Mở table tblVatTu xem các vật tư hiện có trong kho
2/ Trong form, ghi các Mã VT cần tìm vào textbox Tách mã VT sau đó nhấn nút command bên cạnh, Giá trị trả về của hàm TachChuoi được hiển thị trong ListBox
Các bạn vận dụng vào trường hợp cụ thể của minh
Thân mến
Hôm nay xin giới thiệu hàm làm nhiệm vụ ngược lại, vì gần đây thấy nhiều bạn thắc mắc về vấn đề tìm kiếm theo nhiều giá trị. Bạn tạo một table tblTam có một trường duy nhất để chứa các giá trĩ trả về của hàm TachChuoi mà chúng ta sẽ soạn thào ngay sau đây. Trong modul, bạn chép hàm TachChuoi này vào
Mã PHP:
Function TachChuoi(ChuoiCanTach As String)
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("tblTam", dbOpenTable)
If rs.RecordCount > 0 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete * From tblTam"
DoCmd.SetWarnings True
End If
Dim Chuoi As String
Dim KQ As String
Dim VT As Integer, i As Integer
KQ = Space(0)
Chuoi = Trim(ChuoiCanTach)
For i = 1 To Len(Chuoi)
VT = InStr(i, Chuoi, ",")
If VT > 0 Then
KQ = KQ & Left(Chuoi, VT - 1)
rs.AddNew
rs.Fields(0) = KQ
rs.Update
Chuoi = Trim(Right(Chuoi, Len(Chuoi) - VT))
KQ = Space(0)
End If
If i = Len(Chuoi) Then
rs.AddNew
rs.Fields(0) = Chuoi
rs.Update
End If
Next
End Function
Kết quả là ta đã có một table chứa các giá trị trong chuỗi được cách nhau bằng dấu phẩy
Ứng dụng:
Ta có một CSDL quản lý vật tư, có một table tblVatTu gồm MaVT, TenVT, DVT, Ton. Trong một ngày xấu trời, sếp yêu cầu ta báo cáo số lượng tồn của một số vật tư nào đó. Chả lẽ mỗi VT làm 1 query để báo cáo? Vậy ta dùng hàm TachChuoi này kết hợp với một hàm viết trong form nữa là ta có báo cáo cho sếp rồi
Các bạn xem file DeMo sẽ biết cách thực hiện
1/ Mở table tblVatTu xem các vật tư hiện có trong kho
2/ Trong form, ghi các Mã VT cần tìm vào textbox Tách mã VT sau đó nhấn nút command bên cạnh, Giá trị trả về của hàm TachChuoi được hiển thị trong ListBox
Các bạn vận dụng vào trường hợp cụ thể của minh
Thân mến