各位程序员,您好,我非常绝望,因为我不知道如何解决(也许)简单的问题。我有两张桌子。第一个 [Files] 有两个字段:[FName](文件名)和 [FPath](文件路径),第二个 [Reports] 有 [DocNo] [Title]...等等等等...
FName 字符串由 [DocNo] [Title] 组成(但整个标题字符串不是文件路径)
示例:[DocNo] Smith/RT/2000/001
[Title] BHP Iron Ore Pty Ltd 68kg/m 头部硬化钢轨中改性铝热焊缝的评估
[FName] SmithRT2000001 改性铝热焊缝评估.pdf
我有一个表格,上面有一个搜索列表。此列表显示 [报告] 中的记录。通过双击特定记录,它会触发双击事件。在事件中,我得到 DocNo 和 Title 的值,并在 Files 表中搜索要匹配的 Fname。但令人惊讶的是,当我放置 sql 搜索甚至在设计模式下进行查询时,它没有返回任何内容?
但有趣的是,当我硬编码查找记录时,两种方式都会找到它。那个怎么样?
这是要检查的VBA:
Private Sub SearchResults_DblClick(取消为整数)
'Initializing the string variables
Dim strSQL As String
Dim strFileName As String
Dim strTitle As String
Dim DocumentNo As String
Dim titleLeng As Integer
DocumentNo = Me.SearchResults.Column(0)
DocumentNo = Replace(DocumentNo, "/", "")
strTitle = Me.SearchResults.Column(1)
Debug.Print (DocumentNo)
SrchText = DocumentNo
SearchResults.RowSourceType = "Table/Query"
SearchResults.RowSource = "QRY_OpenFile"
Debug.Print (strTitle)
strTitle = Left(strTitle, 10)
SrchText = strTitle
Debug.Print (SrchText)
SearchResults.RowSource = "QRY_OpenFile"
Dim rst As Recordset
Dim db As DAO.Database
Set db = CurrentDb()
strSQL = "SELECT Files.FName FROM Files WHERE Files.FName Like " * " & strTitle & " * ";"
Debug.Print (strSQL)
Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
Application.FollowHyperlink strFileName, , True, False, , , "John Smith"
我已经尝试了 SQL 字符串的所有变体,将外部“”更改为“”不起作用。但是,如果我用“Assessment”字符串或“SmithRT2000001”更改 strTitle,它会找到它。不知道为什么?
这在您放置条件的查询设计窗口中不起作用:像“* & Forms![Search For Reports]![SrchText] & *” 但是一旦我改变它,它就会起作用。快要疯了!!
您能指导我做什么或如何实现在 FILE 表中打开文件的目标吗?