使用 VBA 插入 SQL 服务器 table 不会 运行 使用 Access 2007 和 SQL 服务器 2008
Insert into SQL Server table using VBA doesn't run with Access 2007 and and SQL Server 2008
Private Sub cmdSave_Click()
'CHECKING FOR VALID QUANTITY ENTERED BY USER'
If IsNull(Me![INCOMING_QTY]) And IsNull(Me![OUTGOING_QTY]) Then
MsgBox "Must Enter Valid Quantity."
Me!INCOMING_QTY.SetFocus
'VERIFYING THAT WORKORDER IS NEW'
ElseIf DCount("BASE_ID", "DBO_Paint_Room", "BASE_ID = '" & Me!BASE_ID & "' AND PART_ID = '" & Me!PART_ID & "'") = 0 Then
'INSERTING NEW WORKORDER INTO SQL TABLE FROM FORM FIELDS'
CurrentDb.Execute "INSERT INTO [DBO_Paint_Room] ([BASE_ID],[PART_ID],[DESCRIPTION],[USER_1],[DESIRED_QTY],[DESIRED_WANT_DATE],[RECEIVED_QTY],[CURRENT_QTY],[LAST_UPDATE_DATE]) " _
& "VALUES ('" & Me![BASE_ID] & "','" & Me![PART_ID] & "','" & Me![DESCRIPTION] & "','" & Me![USER_1] & "'," & Me![DESIRED_QTY] & "," & Nz(Me![DESIRED_WANT_DATE], "Null") & "," & Me![RECEIVED_QTY] & "," & Nz(Me![INCOMING_QTY], "Null") & ",NOW())"
这是将数据插入 SQL 服务器 table 的 Sub 的顶部部分。我使用 Access 2010 和 SQL Server Express 2014 在场外构建了这段代码。它在那个环境中运行良好,但是当我将代码复制到现场的 Access 2007 新实例中时,它什么也没做。没有错误,也没有插入,什么都没有。我将其修改为使用已保存的 "SQLstr" 和 DoCmd.RunSQL,但随后会抛出类型不匹配错误。谁能告诉我一些关于我做错了什么的见解? SQL table 设计源代码与测试版完全一样。 ODBC 连接使用标准 SQL 服务器驱动程序。
刚刚使用 DoCmd.OpenQuery 和保存的 Access 插入查询。现在可以了。
Private Sub cmdSave_Click()
'CHECKING FOR VALID QUANTITY ENTERED BY USER'
If IsNull(Me![INCOMING_QTY]) And IsNull(Me![OUTGOING_QTY]) Then
MsgBox "Must Enter Valid Quantity."
Me!INCOMING_QTY.SetFocus
'VERIFYING THAT WORKORDER IS NEW'
ElseIf DCount("BASE_ID", "DBO_Paint_Room", "BASE_ID = '" & Me!BASE_ID & "' AND PART_ID = '" & Me!PART_ID & "'") = 0 Then
'INSERTING NEW WORKORDER INTO SQL TABLE FROM FORM FIELDS'
CurrentDb.Execute "INSERT INTO [DBO_Paint_Room] ([BASE_ID],[PART_ID],[DESCRIPTION],[USER_1],[DESIRED_QTY],[DESIRED_WANT_DATE],[RECEIVED_QTY],[CURRENT_QTY],[LAST_UPDATE_DATE]) " _
& "VALUES ('" & Me![BASE_ID] & "','" & Me![PART_ID] & "','" & Me![DESCRIPTION] & "','" & Me![USER_1] & "'," & Me![DESIRED_QTY] & "," & Nz(Me![DESIRED_WANT_DATE], "Null") & "," & Me![RECEIVED_QTY] & "," & Nz(Me![INCOMING_QTY], "Null") & ",NOW())"
这是将数据插入 SQL 服务器 table 的 Sub 的顶部部分。我使用 Access 2010 和 SQL Server Express 2014 在场外构建了这段代码。它在那个环境中运行良好,但是当我将代码复制到现场的 Access 2007 新实例中时,它什么也没做。没有错误,也没有插入,什么都没有。我将其修改为使用已保存的 "SQLstr" 和 DoCmd.RunSQL,但随后会抛出类型不匹配错误。谁能告诉我一些关于我做错了什么的见解? SQL table 设计源代码与测试版完全一样。 ODBC 连接使用标准 SQL 服务器驱动程序。
刚刚使用 DoCmd.OpenQuery 和保存的 Access 插入查询。现在可以了。