一、问题描述:
在用ADO方式访问SQL SERVER数据库时,出现如下图所示的错误:
所用的VBA代码为:
Dim rst As Object
Dim strSQL As String
Me.sfrReport.SourceObject = "frmUMV_blank"
'获取要统计的人员清单
'先清空数据
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete * FROM UMVtblTemp_Number;"
'获取人员清单
strSQL = "select NickName, I_UserID from tblUsers where Enabled = True"
Set rst = OpenADORecordset(strSQL, adLockReadOnly)
rst.movefirst
Do Until rst.EOF
DoCmd.RunSQL "Insert INTO UMVtblTemp_Number ( Item_Name, I_UserID ) " _
& "Select '" & rst!NickName & "' AS A, " & rst!I_UserID & " AS B"
rst.movenext
Loop
rst.Close
Set rst = Nothing
二、解决方案:
将strSQL的代码改为:
strSQL = "select NickName, I_UserID from tblUsers where Enabled = 1"
三、原理:
表中Enabled是一个bit字段,其值显示为True或False,但实际是1和0,即1代表True,0代表False。