هل هذه الطريقة صحيحة للبحث في أكثر من جدول وهل يمكن اختصارها وخاصة اذا زادت الجداول.
وشكرا
المثال مرفق.
Private Sub cmdSearch_Click()
Dim itmX As ListItem
Dim db As Database
Dim rsStuInfo As Recordset
Dim StrSQL As String
Dim Addsome As Boolean
'Clears the ListView1 Box
ListView1.ListItems.Clear
'Creates an SQL string for the search
StrSQL = "SELECT * FROM [Book1]"
StrSQL = StrSQL & " WHERE [Title] LIKE '*" & txtFName & "*'"
StrSQL = StrSQL & " And [Description] LIKE '*" & txtLName & "*'"
'Opens database
Set db = OpenDatabase(App.Path & "\Details.mdb")
'Opens recordset which only contains values required
Set rsStuInfo = db.OpenRecordset(StrSQL)
'Add record to the List Box
Do Until rsStuInfo.EOF
Set itmX = ListView1.ListItems.Add()
With rsStuInfo
itmX.Text = .Fields("Title")
itmX.SubItems(1) = .Fields("Description")
' itmX.SubItems(2) = .Fields("Date")
itmX.SubItems(3) = .Fields("Link")
itmX.SubItems(4) = .Fields("Level")
itmX.SubItems(5) = .Fields("Bookmark")
rsStuInfo.MoveNext
Addsome = True
End With
Loop
StrSQL = "SELECT * FROM [Book2]"
StrSQL = StrSQL & " WHERE [Title] LIKE '*" & txtFName & "*'"
StrSQL = StrSQL & " And [Description] LIKE '*" & txtLName & "*'"
'Opens database
Set db = OpenDatabase(App.Path & "\Details.mdb")
'Opens recordset which only contains values required
Set rsStuInfo = db.OpenRecordset(StrSQL)
'Add record to the List Box
Do Until rsStuInfo.EOF
Set itmX = ListView1.ListItems.Add()
With rsStuInfo
itmX.Text = .Fields("Title")
itmX.SubItems(1) = .Fields("Description")
' itmX.SubItems(2) = .Fields("Date")
itmX.SubItems(3) = .Fields("Link")
itmX.SubItems(4) = .Fields("Level")
itmX.SubItems(5) = .Fields("Bookmark")
Addsome = True
rsStuInfo.MoveNext
End With
Loop
If Addsome = False Then
ListView1.ListItems.Add.Text = "Search finished without any result"
End If
End Sub