【发布时间】:2017-09-02 22:10:20
【问题描述】:
我在 Microsoft access 中创建了一个数据库,并使用它创建了一个表单。
我在表单上附加了一个按钮,当单击它时,我想在表中插入一条新记录 customerHeader。
该表中有四个字段,其中一个是自动编号。在我的 SQL 语句中,我没有包含 orderNumber,因为它是一个自动字段。
当我尝试单击按钮并执行 on click 事件时,我收到一条错误消息,指出 Microsoft Access 无法在追加查询中追加记录。
任何想法,我到处寻找,但我无法找到解决方案。
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
【问题讨论】:
-
SQL 本身就可以工作,尽管您可能希望在日期周围添加
#-(#" & todayDate & "#,"(您可能还需要根据您所在的地区调整日期格式 - 我Access 中的讨厌日期)。它给出的确切信息是什么?通常它会说 -MS Access set x field(s) to Null due to a type conversion failure, and it didn't add x record(s)..... -
它明确表示“由于类型转换失败,Microsoft 访问将 0 字段设置为 Null,并且由于键违规,它没有向表中添加 1 条记录,0 条记录(s) 由于锁定违规,以及由于验证规则违规导致的 0 条记录”。我会尝试在日期中添加#
标签: ms-access