Причина, по которой вы не получили предупреждение, состоит в том, что вы предоставили значение для clGender. В представлении табличного дизайна имеются два соответствующих свойства: Required
и Allow zero length
. Поле clGender имеет оба значения: true. Параметр Required
означает, что вы не можете сохранить запись с этим полем как Null
, но в вашем заявлении insert вы не указали Null
, вы указали пустую строку, которая разрешена установкой Allow zero length
.
[EDIT]
К сожалению, только сейчас понял, что происходит. Метод 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
Как вы подтвердили, что это поле обязательно для заполнения? Когда вы выполняете это утверждение и «нет оповещения», что * does * происходит? Включена ли запись? Какая ценность присутствует в поле 'clGender' в этой записи? – David
Дэвид, я думаю, что установка «требуется» в свойстве да означает, что она не может быть нулевой. запись не была вставлена, что означает, что ничего не происходит. Также нет предупреждения. –