lehongduc > 20-07-12, 04:14 PM
Function fLookup(WhatField As String, WhatTb As String, sCri As String, Optional SubValue, Optional SubValueVar, Optional ExDb, Optional sUser, Optional Psw)
'Thay cho Function Dlookup
'WhatField: cột cần tìm trong bảng WhatTb
'sCri: biểu thức điều kiện để tìm
'SubValue: tên của 1 cột khác (ngoài cột cần tìm là WhatField)
'SubValueVar: tên biến giữ giá trị của SubValue
'ExDb: tên và đường dẫn (Path) đầy đủ của Database nếu không phải tìm bảng nằm trong Database đang mở
'sUser: User-Name để mở ExDb
'Psw: PassWord của sUser
Dim sqlSt As String
Dim sqlRec As DAO.Recordset
Dim MyDb As DAO.Database
Dim MyWrk As DAO.Workspace
If Not IsMissing(sUser) Then
Set MyWrk = DBEngine.CreateWorkspace("MyWrk", sUser, Psw)
Else
Set MyWrk = DBEngine.Workspaces(0)
End If
If IsMissing(SubValue) Then
sqlSt = "SELECT TOP 1 " & WhatValue
Else
sqlSt = "SELECT TOP 1 " & WhatValue & "," & SubValue
End If
sqlSt = sqlSt & " FROM " & WhatTb
If Not IsMissing(ExDb) Then sqlSt = sqlSt & " IN '" & ExDb & "'"
sqlSt = sqlSt & " WHERE("
sqlSt = sqlSt & sCri
sqlSt = sqlSt & ")"
If IsMissing(ExDb) Then
Set MyDb = CurrentDb()
Else
Set MyDb = MyWrk.OpenDatabase(ExDb, , True)
End If
Set sqlRec = MyDb.OpenRecordset(sqlSt)
If sqlRec.RecordCount > 0 Then
fLookup = sqlRec(WhatValue)
If Not IsMissing(SubValue) Then SubValueVar = sqlRec(SubValue)
Else
fLookup = Null
End If
Set sqlRec = Nothing
Set MyDb = Nothing
Set MyWrk = Nothing
'
End Function
flookup( "mskh", "tblctunx", "soctu = 'X12/0412'", "ngay", NgayCtu)
flookup( "mskh", "tblctunx", "soctu = 'X12/0412'", "ngay", NgayCtu, "D:\MYAPP\MYDATA.MDB")
flookup( "mskh", "tblctunx", "soctu = 'X12/0412'", "ngay", NgayCtu, "D:\MYAPP\MYDATA.MDB"), "lehongduc", "thuThuatAcc"
Noname > 20-07-12, 04:53 PM
nguyenduykhanhpt > 12-08-12, 04:12 PM