从 Access 数据库获取数据到 Excel VBA 表单

Posted

技术标签:

【中文标题】从 Access 数据库获取数据到 Excel VBA 表单【英文标题】:Fetching data to Excel VBA form from Access Database 【发布时间】:2015-06-28 21:10:41 【问题描述】:

我在 Access 中有一个数据库,我想将一些数据从 Excel VBA 表单输入到数据库中,并且还想将一些数据检索回表单中。

过程截图

这是添加按钮代码:

Private Sub CommandButton1_Click()

Dim con As New ADODB.Connection
Dim connectionstring As String

Dim sql As String
connectionstring = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
connectionstring = connectionstring & "DATA Source=C:\Simple.accdb;"
con.Open connectionstring

sql = "insert into T1(ID,FName,Email)values('" & TextBox1.Text & "', '" & TextBox2.Text & "','" & TextBox3.Text & "')"


con.Execute sql


MsgBox "Values Entered", vbInformation

con.Close
End Sub

这是搜索按钮代码

Private Sub CommandButton3_Click()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
con.connectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Simple.accdb;"
'Open Db connection
con.Open
Set rs.ActiveConnection = con
rs.Open "Select * from T1 where ID= '" & UserForm1.TextBox1.Text & "'"
StartRow = 3
Do Until rs.EOF

'FName
UserForm1.TextBox2.Text = rs.Fields(1).Value
'Email
UserForm1.TextBox3.Text = rs.Fields(2).Value

rs.MoveNext
StartRow = StartRow + 1
Loop
Set rs = Nothing
con.Close
Set con = Nothing
End Sub

我的问题是,虽然我可以通过 VBA 表单添加添加按钮,但我的搜索按钮代码不起作用。它表示标准表达式中的数据类型不匹配。

我只想根据 ID 进行搜索。

请帮忙。

【问题讨论】:

请注意,如果我将 sql 查询更改为 rs.Open "Select * from T1 " 在搜索选项中,它会显示表中的最后一条记录 查看this answer相关问题 感谢@barrowc 帮助:) 【参考方案1】:

我认为您表中的 ID 字段是数字 - 您需要从搜索按钮代码中的 sql 语句中的条件周围删除单引号。

【讨论】:

是的,它已经成功了。感谢您的帮助

以上是关于从 Access 数据库获取数据到 Excel VBA 表单的主要内容,如果未能解决你的问题,请参考以下文章

在 Excel 中运行 VBA 代码以获取 Access 数据库中的 VBA

无需激活即可将数据从 Access 导出到 Excel2013

Excel 数据到 Access DB - 获取:操作必须使用可更新查询错误

打开多个 Excel 实例时如何通过 Excel 宏将数据从 Excel 导出到 Access

将数据从 Excel 导出到 Access - 错误:参数不是可选的

运行时错误 13 类型不匹配,将数据从 Access 传输到 Excel