VBA 学习

Option Compare Database
Private Sub Command0_Click()
MsgBox "hello"
End Sub

Private Sub Command1_Click()
    DoCmd.Beep
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "火工品已发射星", "C:/Documents and Settings/Administrator/桌面/test/DEMO.xls", True, "ruix"
End Sub

Private Sub Command2_Click()

'导入一个excel文件到指定表格
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
    "Employees", CurrentProject.Path & "/DEMO.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值