在VBA代码中,经常会用到SQL代码,有时,需要判断SQL代码是否正确,例如下面的代码:
Private Sub MAIncome_AfterUpdate()
If Me.MAIncome = True Then
Me.MCategory.RowSource = "Select Sys_LookupList.Value " _
& "FROM Sys_LookupList " _
& "Where (((Sys_LookupList.Value)<>'') AND ((Sys_LookupList.Item)='收支类别') AND ((Sys_LookupList.Category)='收入'));"
Else
Me.MCategory.RowSource = "Select Sys_LookupList.Value " _
& "FROM Sys_LookupList " _
& "Where (((Sys_LookupList.Value)<>'') AND ((Sys_LookupList.Item)='收支类别') AND ((Sys_LookupList.Category)='支出'));"
End If
End Sub
如何判断行来源中的SQL代码是否正确呢?步骤如下:
步骤1:在End Sub前面加一行:
If Me.MAIncome = True Then
Me.MCategory.RowSource = "Select Sys_LookupList.Value " _
& "FROM Sys_LookupList " _
& "Where (((Sys_LookupList.Value)<>'') AND ((Sys_LookupList.Item)='收支类别') AND ((Sys_LookupList.Category)='收入'));"
Else
Me.MCategory.RowSource = "Select Sys_LookupList.Value " _
& "FROM Sys_LookupList " _
& "Where (((Sys_LookupList.Value)<>'') AND ((Sys_LookupList.Item)='收支类别') AND ((Sys_LookupList.Category)='支出'));"
End If
Debug.Print Me.MCategory.RowSource '加上这一行
End Sub
步骤2:运行代码,在立即窗口获得SQL代码,复制这段SQL代码
步骤3:创建一个查询,将SQL代码复制到查询的SQL视图中,如下图所示:
步骤4:回到上图中红框下方的设计视图,如果正确,则会成功,否则有相应的提示,根据提示进行修改,最终获得正确的SQL代码,然后对VBA中的代码进行修改,即可。