从 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