gpt4 book ai didi

sql - 使用excel vba将用户表单数据插入Access表

转载 作者:行者123 更新时间:2023-12-03 02:58:52 25 4
gpt4 key购买 nike

我目前正在使用 Excel VBA 制作一个简单的库存系统应用程序。我有一个用户窗体来获取输入,我想将导入数据保存到几个 Microsoft Access 表中。

我试图从用户窗体中提取数据,并在用户按 Enter 键时将其输入到 Access 表中。当我运行此代码时,会使用表 ID 创建一条新记录,但我尝试导入的两条记录留空。

    Public Sub AddDatabaseEntry()

'Initialize all variables
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim stDB As String, stSQL As String, stProvider As String
Dim orderNum As String
Dim orderDate As String

orderNum = txtOrderNum
orderDate = txtDate


stDB = "Data Source= " & ThisWorkbook.Path & "\obsDatabase.accdb"
stProvider = "Microsoft.ACE.OLEDB.12.0"


'Opening connection to database
With cn

.ConnectionString = stDB
.Provider = stProvider
.Open

End With

'SQL Statement of what I want from the database
stSQL = "INSERT INTO Orders (OrderNumber, OrderDate) " & _
"Values ('" & orderNum & "', '" & orderDate & "')"

Set rs = cn.Execute(stSQL)


'Looping through the records I pulled and inserting the data into the comboBox

cn.Close
Set rs = Nothing
Set cn = Nothing

End Sub

Private Sub btnAdd_Click()

AddProduct
AddDatabaseEntry

End Sub

最佳答案

我怀疑您的数据类型错误:

tSQL = "INSERT INTO Orders (OrderNumber, OrderDate) " & _
"Values (" & orderNum & ", #" & orderDate & "#)"

我认为您的订单号可能是数字,因此没有引号,并且日期的分隔符是井号 (#),而不是引号 (')。

将日期格式化为明确的格式几乎总是更安全:

"Values (" & orderNum & ", #" & Format(orderDate,"yyyy/mm/dd") & "#)"

您无法将记录集设置为操作查询,因此:

cn.Execute stSQL

最后,可以用参数保存数据类型问题、字符串问题等。

stSQL = "INSERT INTO table1 (id, adate) " & _
"Values (?, ?)"

cmd.ActiveConnection = cn
cmd.CommandText = stSQL
cmd.CommandType = adCmdText
cmd.Parameters.Append _
cmd.CreateParameter("p1", adInteger, adParamInput, , OrderNum)
cmd.Parameters.Append _
cmd.CreateParameter("p2", adDate, adParamInput, , OrderDate)

cmd.Execute

顺便说一句,您可以使用单个查询将一系列数字或工作表插入到 Access 表中:

INSERT INTO Table1 ( ADate ) 
SELECT SomeDate FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xls].[Sheet1$a1:a4]

关于sql - 使用excel vba将用户表单数据插入Access表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11688375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com