Ms access Microsoft Access VBA INSERT SQL语句
我在Microsoft access中创建了一个数据库,并使用它创建了一个表单。Ms access Microsoft Access VBA INSERT SQL语句,ms-access,Ms Access,我在Microsoft access中创建了一个数据库,并使用它创建了一个表单。 我在表单上附加了一个按钮,单击该按钮时,我想在表中插入一条新记录customerHeader 该表中有四个字段,其中一个是自动编号。在我的SQL语句中,我不包括orderNumber,因为它是一个自动字段。 当我尝试单击按钮并执行on click事件时,我会收到一个错误,提示Microsoft Access无法在append查询中追加记录 任何想法,我都找遍了每一个地方,但我没有找到解决办法 Private Sub
我在表单上附加了一个按钮,单击该按钮时,我想在表中插入一条新记录
customerHeader
该表中有四个字段,其中一个是自动编号。在我的SQL语句中,我不包括orderNumber,因为它是一个自动字段。
当我尝试单击按钮并执行on click事件时,我会收到一个错误,提示Microsoft Access无法在append查询中追加记录 任何想法,我都找遍了每一个地方,但我没有找到解决办法
Private Sub addOrder_Click()
Dim mySql As String
Dim rowNum As Integer
Dim recCount As Long
Dim orderNumber As Long
Dim myBool As Boolean
Dim todayDate As Date
todayDate = CDate(Date)
myBool = False
MsgBox todayDate
rowNum = Form.CurrentRecord
rowNum = CInt(rowNum - 1)
'DoCmd.GoToRecord , , acNewRec
mySql = "INSERT INTO orderHeader (orderDate,custNumber,printed) VALUES (" & todayDate & "," & rowNum & "," & myBool & ")"
DoCmd.RunSQL mySql
Me!orderNum.Requery
您不必进行太多操作-只需使用ISO序列作为日期值字符串表达式的格式:
mySql = "INSERT INTO orderHeader (orderDate,custNumber,printed) VALUES (#" & Format(todayDate, "yyyy\/mm\/dd") & "#," & rowNum & "," & myBool & ")"
然而,今天,只需使用:
mySql = "INSERT INTO orderHeader (orderDate,custNumber,printed) VALUES (Date()," & rowNum & "," & myBool & ")"
SQL本身是可以工作的,尽管您可能希望在日期前后添加
(#“&todayDate&“#,”(您可能还需要根据您所在的位置处理日期格式-我讨厌Access中的日期)。它给出的确切消息是什么?通常它会显示-MS Access set x字段)由于类型转换失败而设置为Null,并且它没有添加x条记录…
它特别指出“Microsoft access由于类型转换失败而将0个字段设置为Null,并且由于密钥冲突而没有将1条记录添加到表中,由于锁冲突而没有将0条记录添加到表中,由于验证规则冲突而没有将0条记录添加到表中。”“。我将尝试将#添加到日期。我刚刚尝试了添加,但不幸的是,我遇到了与以前相同的错误。然后发生了其他情况。尝试手动插入值并找到有问题的值。“密钥冲突”表示您尝试在具有唯一索引的字段中插入重复值。出于某种原因,我的“myBool”变量处理不正确,所以我改用“false”删除了该变量,它开始工作。感谢您的建议和帮助解决此问题!太好了!祝您周末愉快。