excel vba sql语句返回单个字符串

excel vba sql语句返回单个字符串,excel,ms-access,vba,Excel,Ms Access,Vba,我正在为access数据库编写一条sql语句,该语句将返回一个唯一的值,而不考虑输入。我正在使用这段代码,但是我在execute语句中得到了一个类型不匹配 strSQL = "SELECT FilePath " _ & "FROM ToolFiles " _ & "WHERE Project_Num = '" & theSelectedProj & "'" _ & "AND Tool_Name = '" & theSelec

我正在为access数据库编写一条sql语句,该语句将返回一个唯一的值,而不考虑输入。我正在使用这段代码,但是我在execute语句中得到了一个类型不匹配

strSQL = "SELECT FilePath " _
    & "FROM ToolFiles " _
    & "WHERE Project_Num = '" & theSelectedProj & "'" _
    & "AND Tool_Name = '" & theSelectedProjName & "'"

filePath = cn.Execute(strSQL)
有没有办法从sql语句返回字符串


谢谢

快速回答是“否”。ADO Execute方法返回一个记录集对象,您需要将其读入字符串变量。像这样的东西应该可以做到:

Dim rs As ADODB.Recordset

....
Set rs = cn.Execute(strSQL)

If Not (rs Is Nothing) Then
    With rs
        If Not (.BOF) And Not (.EOF) Then
            strFilePath = Format$(.Fields(1).Value)
        End If
    End With
End If

这不应该包括在某个点进行检查以验证记录数==1吗?即使我们知道只返回一条记录,我也认为最好考虑到这一点。@Gaffi通常我会同意,但从给出的示例SQL来看,我认为只有一条记录是一个合理的假设。最后,使用implicit.Execute,记录集将使用adOpenForwardOnly游标打开,我认为无论如何都不可能使用RecordCount属性。