利用vba 从excel到access中导入与导出表

本文介绍使用Access通过VBA代码实现数据库表数据的导出和导入操作。包括导出单个表到Excel、导入Excel文件到指定表及导出所有表到一个Excel文件的功能实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Option Compare Database

Private Sub Command0_Click()
MsgBox "hello"
End Sub

Private Sub Command1_Click()
    DoCmd.Beep
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, 
"table1""c:myexcel"True"ruix"
End Sub

Private Sub Command2_Click()

'导入一个excel文件到指定表格
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
    
"Employees", CurrentProject.Path & " est.xls"True

End Sub

Private Sub Command3_Click()
 
'导出所有表到一个excel文件
 ExportTableToOneXls CurrentProject.Path & " empExEg.xls"
End Sub


Public Function ExportTableToOneXls(ByVal XlsPath As String)
    
    
'这里用 ADO 来获取所有的表名,当然,你完全可以用查询系统表的方法来实现
    
    
Dim rstSchema As ADODB.Recordset
    
Dim cnn2 As ADODB.Connection
    
Set cnn2 = CurrentProject.Connection
    
Set rstSchema = cnn2.OpenSchema(adSchemaTables)
    
Dim i As Long
    
Do Until rstSchema.EOF
        
If rstSchema("TABLE_TYPE"= "TABLE" Then
            
'对应 TABLE_TYPE 可以取值 "TABLE" "SYSTEM TABLE" "ACCESS TABLE"
            '在这里我们列出所有用户表的信息,系统表不列出
            For i = 0 To rstSchema.Fields.Count - 1
                Debug.Print rstSchema(i).Name 
& "-> " & rstSchema.Fields(i).Value
                
If rstSchema(i).Name = "TABLE_NAME" Then
                    
'用 TransferSpreadsheet 实现导出,当然,你完全可以用 in 子句来实现
                    '    《查询》如何查询其他数据库内的表(IN子句实例)?
                    '    http://access911.net/index.asp?u1=a&u2=71FAB21E17DC
                    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, rstSchema.Fields(i).Value, XlsPath, True
                
End If
            
Next
        
End If
        rstSchema.MoveNext
    
Loop
    rstSchema.Close
    cnn2.Close
End Function


 1.双击打开my.mdb
2.点击“窗口”
3.点击“窗口1”
4.点“ado导出”将导出到同一文件夹"tempExEp.xls"
5.点“导入”将导入同文件夹中的temp.xls到表emploees中
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值