从访问表中复制表并粘贴到空白的 Excel 文件中

Posted

技术标签:

【中文标题】从访问表中复制表并粘贴到空白的 Excel 文件中【英文标题】:Copy table from access table and paste into blank excel file 【发布时间】:2019-11-06 14:18:28 【问题描述】:

我正在尝试将结果从访问表传输到不会保存的空白 Excel 文件中。基本上,我在访问表单上有一个按钮,当按下它时,它的动作将只是预览 excel 中访问表中的所有记录。这是用户希望它设置的方式。

现在我的代码可以打开一个空白的 excel 文件,但我在编写代码时遇到了麻烦,该代码将从 access 中复制表格并将其粘贴到 excel 中,例如单元格“A1”

Private Sub Command27_Click()
Dim dbs As DAO.Database
Dim Response As Integer
Dim strSQL As String
Dim Query1 As String
    Dim LTotal As String
    Dim Excel_App As Excel.Application 'Creates Blank Excel File
    Dim strTable As String ' Table in access


     strTable = "tbPrintCenter05Que" 'Access table I am trying to copy
     Set Excel_App = CreateObject("Excel.Application")
     Set dbs = CurrentDb

     Excel_App.Visible = True
     Excel_App.Workbooks.Add
With Excel_App
.Columns("A:ZZ").ColumnWidth = 25
.Copy ' Getting error on this line 
.Range ("A")
.Paste

【问题讨论】:

需要有一个范围对象才能使用复制。您的代码正在尝试复制 Excel_App,这不起作用... @GWD 我对 VBA 真的不熟悉,你能推荐一些可能有用的代码 【参考方案1】:

这可能是一种方式

Private Sub Command27_Click()
    Dim dbs As dao.Database
    Dim Response As Integer
    Dim strSQL As String
    Dim Query1 As String

    Dim LTotal As String
    Dim Excel_App As Excel.Application 'Creates Blank Excel File
    Dim strTable As String ' Table in access


    strTable = "tbPrintCenter05Que" 'Access Query I am trying to copy
    Set Excel_App = CreateObject("Excel.Application")
    Set dbs = CurrentDb

    Dim rs As dao.Recordset
    Set rs = dbs.OpenRecordset(strTable)

    Excel_App.Visible = True

    Dim wkb As Excel.Workbook
    Set wkb = Excel_App.Workbooks.Add

    Dim rg As Excel.Range
    Dim i As Long
    ' Add the headings
    For i = 0 To rs.Fields.Count - 1
        wkb.Sheets(1).Cells(1, i + 1).Value = rs.Fields(i).Name
    Next i

    Set rg = wkb.Sheets(1).Cells(2, 1)
    rg.CopyFromRecordset rs

    ' make pretty
    rg.CurrentRegion.EntireColumn.AutoFit

End Sub

【讨论】:

伙计,如果只调整列并且访问表中的标题也没有转移,这很完美 这也是可能的。我更新了代码,它将转移标题。 列已调整是什么意思? 谢谢,我的意思是让所有内容都适合显示在单元格中 我将代码添加到 autofit 列中。这就是你所追求的吗? 绝对!伙计,我试着给你的评论投赞成票,但因为我的代表我也不能。安装足够高,但再次感谢所有帮助和快速响应!

以上是关于从访问表中复制表并粘贴到空白的 Excel 文件中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Navicat 复制和粘贴数据

如何从我的 phpmyadmin 表中复制一列并将其粘贴到我的 Excel 工作表中?

excel中数据透视表,如何将空白的地方隐藏掉

将一张excel表中的数据全部粘贴到txt文本文件中,如何做

如何将行从一个 Excel 工作表复制到另一个工作表并使用 VBA 创建重复项?

Excel VBA遍历列以将非空白复制并粘贴到其他3列?