乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 请教怎么在access中用<em>VBA</em>导入excel数据到acce...-vba e

请教怎么在access中用<em>VBA</em>导入excel数据到acce...-vba e

作者:乔山办公网日期:

返回目录:excel表格制作


Sub 把Excel数据插入数据库中()
'*******************************************
'时间:2010-06-28
'作者:bengdeng
'功能:把当前工作表的数据增加到在程序文件同一目录下进销存表数据库中
'注意:要在工具/引用中引用microsoft activex date objects x.x
' 其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'发布:http://
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim TableName As String
Dim sSql As String
Dim tStr As String
'数据库名,请自行修改,路径与当前工作簿e79fa5e98193e59b9ee7ad94334在同一目录
WN = "进销存表.mdb"
'数据库的表名与当前工作表名一致
TableName = ActiveSheet.Name

Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
"Extended Properties=Excel 8.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & ActiveWorkbook.Name
conn.Open
If conn.State = adStateOpen Then
sSql = "Insert Into [;DataBase=" & ActiveWorkbook.Path & "\" & WN & "]." & TableName & " Select * From [" & ActiveSheet.Name & "$]"
conn.Execute sSql
MsgBox "成功把数据插入到“" & TableName & "”中!", , "http://excelba.com"
conn.Close
End If
Set conn = Nothing
End Sub

下面是我自己写的读取Excel文件内容写入Sql数据库的代码,和写入Access完全一样的。
比较简单,可用,测试过了
记得给e799bee5baa6e997aee7ad94e78988e69d83362分阿,以身相许就算了

'通用对话框打开文件
CommonDialog1.CancelError = False
CommonDialog1.Filter = "XLS|*.XLS "
CommonDialog1.FileName = " "
CommonDialog1.ShowOpen
ExcelName = CommonDialog1.FileName
If ExcelName = " " Then Exit Sub
'创建一个Excel应用对象
Set xlsApp = CreateObject( "Excel.Application ")
'指定要打开的文档
Set xlsWorkbooks = xlsApp.Workbooks.Open(ExcelName)
'指定要打开的工作表
Set xlsWorksheets = xlsWorkbooks.Worksheets(1)
'读取文件标题项内容
dr_KCMC = Trim(xlsWorksheets.Cells(7, 2))
....

Do
'读取文件内容
dr_XSXH = Trim(xlsWorksheets.Cells(i, 2))
dr_XSXM = Trim(xlsWorksheets.Cells(i, 3))
dr_KCCJ = Trim(xlsWorksheets.Cells(i, 4))

If dr_JLXH = " " Or dr_XSXH = " " Or dr_XSXM = " " Then
Exit Do
End If
rsXSCJ.AddNew
rsXSCJ.Fields( "xsxh ").Value = dr_XSXH
rsXSCJ.Fields( "xsxm ").Value = dr_XSXM
.....
rsXSCJ.Update
RecordCount1 = RecordCount1 + 1
i = i + 1
Loop While (dr_JLXH <> " " And dr_XSXH <> " " And dr_XSXM <> " " And dr_XSXM <> " ")
编程思路
1、打开excel文件,并读取Excel的数据
2、连接access数据库
3、存入excel数据库(插入操作)
具体的语句网上有很多,楼主百度一下, 然后根据你的需求改一下。

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.0;Database=" & dklj & "].[Plan$] WHERE 对EXCEL的筛e799bee5baa6e79fa5e98193e4b893e5b19e337选条件(可以省略);"   '这句是最关键的
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中:

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网