Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在vba SQL查询上运行IF、ELSE语句_Excel_Ms Access_If Statement_Vba - Fatal编程技术网

Excel 在vba SQL查询上运行IF、ELSE语句

Excel 在vba SQL查询上运行IF、ELSE语句,excel,ms-access,if-statement,vba,Excel,Ms Access,If Statement,Vba,我想在使用VBA从Excel和Access之间的连接运行的SQL查询上运行下面的IF、ELSE语句。你知道为什么这行不通吗 Dim myValue As String myValue = "CS-SS-22" Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _ "Data Source=Q:\TOC Contract Screenings\ScreeningLogData

我想在使用VBA从Excel和Access之间的连接运行的SQL查询上运行下面的IF、ELSE语句。你知道为什么这行不通吗

 Dim myValue As String
 myValue = "CS-SS-22"
 Set cn = New ADODB.Connection
 cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _
 "Data Source=Q:\TOC Contract Screenings\ScreeningLogDatabase.accdb"
 Set rs = New ADODB.Recordset

 If rs.Open("Select count([ChangeScreeningNumber]) From [ScreeningLogsTEST] Where [ChangeScreeningNumber] = '" & myValue & "'", ActiveConnection:=cn, CursorType:=adOpenDynamic, LockType:=adLockOptimistic) = 0 Then MsgBox "New"
 Else
 MsgBox "Already exists"

不太确定你想要什么,但可能是这样的:

Set rs = New ADODB.Recordset

rs.Open "Select Count([ChangeScreeningNumber]) From [ScreeningLogsTEST] Where [ChangeScreeningNumber] = '" & myValue & "'", ActiveConnection:=cn, CursorType:=adOpenDynamic, LockType:=adLockOptimistic

If rs.RecordCount = 0 Then 
    MsgBox "New"
Else
    MsgBox "Already exists"
End If

您在哪里设置了
myValue
变量?您声明了它,但据我所知,它只是一个空字符串。现在编辑它,谢谢!同样的问题。同样的错误:“编译错误:预期的函数或变量”在If行。我喜欢这个想法!我试过了,它说在rs.开放线路上会有一个=符号。我真的不明白为什么。有什么想法吗?太棒了,成功了!我注意到我的记录计数=-1,而不是实际的记录计数。我算出了!我去掉了计数,只留下ChangeScreeningNumber,然后使用rs.RecordCount。非常感谢你!