如果String Value为空,0或Null MS Access,SQL,VBA

时间:2015-05-23 21:14:39

标签: sql access-vba ms-access-2010

我正试图弄清楚这个编码的工作原理。

如果programlanguage与表格出勤率ProgramsLanguage中的值匹配,此代码基本上会检查表CFRRR中的字段值。

此正常代码有效。但是,如果language没有匹配值,则代码将继续循环。

如果没有匹配的strSQL,我想调整代码转到下一个language,但我无法让它运行下一个strSQL

我认为我的错误是我没有正确地编写IF/THEN语句。这是代码:

a = Program
b = language

strSQL = "SELECT TOP 1 userID FROM attendance where attendance.Programs LIKE '*" & a & "*' AND attendance.Language LIKE '*" & b & "*' AND Status = 'Available' AND attendance.Tracking = 0"

Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)

If strSQL = Null Then
    strSQL = "SELECT TOP 1 userID FROM attendance where attendance.Programs LIKE '*" & a & "*' AND Status = 'Available' AND attendance.Tracking = 0"
    Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
End IF

谢谢:)

1 个答案:

答案 0 :(得分:1)

我认为你应该把它改成

   Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)

If rs.recordcount =0  Then

    strSQL = "SELECT TOP 1 userID FROM attendance where attendance.Programs LIKE '*" & a & "*' AND Status = 'Available' AND attendance.Tracking = 0"
    Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
End IF