如何在Excel中通过宏的方法,连接Access数据库,是一直没有研究的问题,今天总算初有成效。百度查了一下相关的信息,结合自己一直做的ASP程序,学会了如何通过宏,调用Access数据,并显示在Excel中。当然也可以通过Excel单元格输入信息,再将数据成功存入Access数据库。由于一些基本功能与ASP有所不同,因此在研究时遇到了一些障碍,但总算成功完成。
具体操作过程如下:先建立test.mdb数据库文件,建表test,字段为id,name,content三个,可在里面加些内容。再建立test.xls文件,在右边空白处建立两个按钮,分别命名为“提取”和“提交”。
双击提取按钮,写入宏代码
Private Sub CommandButton1_Click()
Dim cnn, rs, i
i = 1
cnn = "DBQ=" & ThisWorkbook.Path & "\" &
Dir(ThisWorkbook.Path & "\test.mdb")
";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set rs = CreateObject("adodb.Recordset")
rs.Open "select * from test", cnn, 1, 1
Do While Not
rs.EOF
Range("a" & i).Value = rs("name")
Range("b" & i).Value = rs("content")
rs.movenext
i = i +
1
Loop
rs.Close
Set rs = Nothing
End Sub
双击提交按钮,写入代码
Private Sub CommandButton2_Click()
Dim cnn, rs
i = 1
cnn = "DBQ=" & ThisWorkbook.Path & "\" &
Dir(ThisWorkbook.Path & "\test.mdb") &
";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set rs = CreateObject("adodb.Recordset")
rs.Open "select * from test", cnn, 1, 3
rs.Addnew
rs("name") = Range("d1").Value
rs.Update
Range("d1").Value = ""
rs.Close
Set rs = Nothing
End Sub
其中录入单元格为D1单元格,需要录入的数据写入D1单元格,按提交,就可以将数据记录入test.mdb数据库中了,录入后将D1单元格内容删除,表示已经录入完成。
当然还没有研究数据更新的问题,数据更新完成,则excel与access之间文件的交换,将变得非常方便。如果谁有这方面的研究成果,也可以一起来讨论一下。