用于排除列标题从 Access 2007 传输到 Excel 2007 的代码

Posted

技术标签:

【中文标题】用于排除列标题从 Access 2007 传输到 Excel 2007 的代码【英文标题】:Code to Exclude Column Headings from Transferring to Excel 2007 from Access 2007 【发布时间】:2012-04-17 02:36:27 【问题描述】:

这是我正在使用的代码。

它工作正常,但我需要知道排除列标题需要哪些额外代码。

Private Sub Command104ContrDonatWeekly_Click()
On Error GoTo Command104ContrDonatWeekly_Click_Err

    DoCmd.OpenQuery "Contributors Who Donated in Past Week", acViewNormal, acEdit

    xlfile = "C:\Users\Michael1\Desktop\KSN\DistributionListWeekly.xlsb"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, _
    "Contributors Who Donated in Past Week", xlfile, True, "EmailList"

    Shell "Excel.exe " & xlfile, vbNormalFocus

Command104ContrDonatWeekly_Click_Exit:
    Exit Sub

Command104ContrDonatWeekly_Click_Err:
    MsgBox Error$
    Resume Command104ContrDonatWeekly_Click_Exit

End Sub

这是来自

的一些代码

How to write VBA code to hide all the column and row headings in Excel?

我不太清楚需要用我已经在使用的代码将它放在哪里。

Private Sub hideHeadings()
  Dim wrkbk As Workbook
  Dim wrksh As Worksheet
  Dim prev As Window

  Set prev = ActiveWindow

  For Each wrkbk In Workbooks
    For Each wrksh In wrkbk.Worksheets
        wrksh.Activate
        ActiveWindow.DisplayHeadings = False
    Next wrksh
  Next wrkbk

  prev.Activate

End Sub

【问题讨论】:

除非我遗漏了什么,否则为什么不创建一个只包含您想要的输出的新查询? 如何在数据表视图中隐藏 Access 查询的列标题? 哈,对不起...我把列标题误读为列。 【参考方案1】:

来自访问:

Sub XLTrans()
''Reference: Microsoft ActiveX Data Object x.x Library
Dim rs As New ADODB.Recordset
Dim xl As Object ''Excel.Application
Dim wb As Object ''Workbook

Set xl = CreateObject("Excel.Application")

Set wb = xl.Workbooks.Add

''Connection relevant for 2007 or 2010
rs.Open "MyTableOrQuery", CurrentProject.AccessConnection

wb.Sheets(1).Cells(1, 1).CopyFromRecordset rs

xl.Visible = True

End Sub

【讨论】:

在 MS Access 模块中。它不是使用 TransferSpreadsheet。顺便说一句,最好在最初的问题中说明您的所有要求以及您尝试过的任何解决方案。 ty,现在我收到一条错误无效的 SQL 语句,所以我正在努力解决这个问题 @HelloWorld 你的sql语句是什么? 好吧,我有 rs.Open "Query1", CurrentProject.AccessConnection, Query1 只是一个占位符名称。它是一个参数查询,根据输入的开始和结束日期进行计算 @Remou 新 ADODB 声明是否有特定原因我将其切换到 DAO 并添加了 QueryDef,它似乎工作正常。【参考方案2】:

如果您坚持使用转帐电子表格;

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "tbl_one", xlfile, True

Dim xl As Object
Dim wb As Object

Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Open(xlfile)

xl.DisplayAlerts = False
With wb.Worksheets(1)
    .Rows(1).Delete
End With
wb.Save
xl.Visible = True

【讨论】:

以上是关于用于排除列标题从 Access 2007 传输到 Excel 2007 的代码的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据库从 MS access 2007 导出到 MySQL? [关闭]

FindFirst NoMatch 基于 Access 2007 表中的 2 列

如何在 Access VBA 中排除列以维护数据

access 2007如何离开加入列?

从 Access 2007 导出 XML(base64 附件)

使用子查询访问 2007 添加列