问题很简单,但我无法弄明白。
我有两个访问表,一个有记录,另一个有“关键词”。我需要过滤包含某些“关键词”的记录。换句话说,使用一个表字段作为另一个表的字段,但不链接它们,因为“关键字”表只包含随机字而不是整个记录。
在excel中,我可以在记录上运行高级过滤器,并将关键字列表(并使用通配符)指定为条件,但在access中我没有找到根据另一个表字段进行过滤的方法。
有关它的任何想法?
答案 0 :(得分:0)
您可能需要创建一个函数,该函数将包含其中所有关键字的自定义SQL吐出。这是一个让你入门的例子。
Public Function fGetTrashRecords()
'add your own error handling
Dim SQL As String
Dim rst As DAO.Recordset
Dim rstTrash As DAO.Recordset
Dim db As DAO.Database
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT sKeyWord FROM tblBadKeyWords", dbOpenSnapshot)
If Not rst Is Nothing Then
rst.MoveFirst
Do While Not rst.EOF
SQL = SQL & " strFieldContaingKeyWord LIKE *'" & rst!sKeyWord & "'* OR"
rst.MoveNext
Loop
If SQL > "" Then SQL = Left(SQL, Len(SQL) - 2) 'get rid of the last OR
rst.Close
Set rst = Nothing
End If
If SQL > "" Then
Set rstTrash = db.OpenRecordset("SELECT * FROM tblHasKeyWords WHERE " & SQL, dbOpenDynaset, dbSeeChanges)
If Not rstTrash Is Nothing Then
rstTrash.MoveFirst
Do While Not rstTrash.EOF
Debug.Print rstTrash!ID
rstTrash.MoveNext
Loop
rstTrash.Close
Set rstTrash = Nothing
End If
End If
Set db = Nothing
End Function