怎么在VBA中把excel中的数据 写入数据库

怎么在VBA中把excel中的数据 写入数据库,第1张

excel是一个自由表,一个EXCEL的工作薄就是一个数据库,它里面的每一张表就是数据库的表,你可象 *** 作表一样对其进行查询等 *** 作,它里面的列就是数据库的字段,行就是记录,因此你可以按数据库的架构来组建数据,只是你如果你组建的数据不符合数据库的规则,在查询时不能得到时相应的结果。因此在EXCEL中不存在创建数据库。但对存在的数据可以引用。当满足条件A、B、C、D……时引用是可以的,但如果是在EXCEL中直接引用是不行的,一种是用VBA利用ADO访问EXCEL,在查询时把A、B、C、D几个条件按SQL语法写进查询语句中,引用返回的记录集,一种是利用函数把满足A、B、C、D的记录筛选出来,然后再引用。

其实你录制一段“导入数据”的宏就行了。比如将桌面上的“粘贴A列数据”工作簿中的第一个工作表导入当前工作表中,先按“工具-宏-录制新宏”,使录制宏开始工作,然后选中A1单元格(导入的起始位置),按“数据-导入外部数据-导入数据”,从中选择文件类型为".xls",然后通过“浏览”找到桌面上的这个工作簿,按导入就行了。最后按“停止录制宏”结束。下面就是使用了,按ALT+F11打开VBA窗口,找到“模块”中的代码,将其中的路径或文件名修改一下就能通用了。

1、首先为导入文件设置一个按钮:(更新数据)

2、为“更新数据”按钮添加执行代码:

Private Sub Command87_Click()

If MsgBox("请准备好导入的文件!", vbOKCancel, "打印确认") = 1 Then

Dim xdlj As String 'xdlj:相对路径

Dim dklj As String 'dklj:打开路径

dklj = od()

If Not (dklj = "") Then

xdlj = "SELECT 字段名称1,字段名称2,字段名称3," _

& " INTO  ACCESS中表名称 FROM [Excel 8.0Database=" & dklj & "].[Plan$] WHERE 对EXCEL的筛选条件(可以省略)"   '这句是最关键的

DoCmd.SetWarnings False   '关闭提示警告窗口

DoCmd.RunSQL xdlj '运行SQL

MsgBox "您于" & Now() & "更新数据成功!", vbInformation '人性化提示

End If

End If

End Sub

注意  OD()  意思是open dialogue  我自己定义的函数,为了打开选择文件的会话框:

代码如下:

Public Function od() 'Opendialog

Dim f As FileDialog

Set f = Application.FileDialog(msoFileDialogFilePicker)

'f.Show

If f.Show = True Then

f.Filters.Clear

f.Filters.Add "Excel文件", "*.xls"

od = f.SelectedItems(1)

Else

MsgBox "您中途选择了取消!"

End If

End Function

4、最终效果:

excel中:

ACCESS中:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6664808.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存