0

问题很简单,但我就是想不通。

我有两张表可以访问,一张是记录,另一张是“关键词”。我需要过滤包含某些“关键词”的记录。换句话说,使用一个表字段作为另一个表字段的筛选条件,但不要链接它们,因为“关键词”表只包含随机词而不是整条记录。

在 excel 中,我可以对我的记录运行高级过滤器,只需将关键字列表(并使用通配符)指定为条件,但在访问权限中,我还没有找到根据另一个表字段进行过滤的方法。

有什么想法吗?

4

1 回答 1

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
于 2013-11-11T20:14:34.177 回答