此代码将记录插入基本表而不发出警报。
CurrentDb.Execute _
"INSERT INTO basetable(clName,clId,clGender) VALUES('test','123','');"
我希望此代码应该弹出警报,因为clGender字段设置为“required”,但没有警报。你能告诉我我哪里错了。
答案 0 :(得分:0)
您可以使用:
DoCmd.RunSQL " Insert ... "
虽然这可能太多了。
答案 1 :(得分:0)
您没有收到提醒的原因是您为clGender提供了一个值。在表格设计视图中,有两个相关属性:Required
和Allow zero length
。您的clGender字段将这两个设置为true。 Required
设置意味着您无法使用此字段将记录保存为Null
,但在插入语句中未指定Null
,您已指定一个空字符串, Allow zero length
设置允许。
[编辑]
抱歉,刚刚意识到发生了什么。 Execute
方法不会直接向您提供任何反馈。但是,您可以使用RecordsAffected
属性来查看它是否符合您的预期。
Dim db As DAO.Database
Set db = CurrentDb()
db.Execute "INSERT INTO basetable(clName,clId,clGender) VALUES('test','123','')"
If db.RecordsAffected = 0 Then
MsgBox "Insert failed"
End If
Set db = Nothing