通过 VBA 从 Access 导入到特定的 Excel 工作表

约瑟夫博士

我想弄清楚如何从 Access 表中获取我要导入 Excel 的数据以导入到特定的工作表(工作表只是称为工作表 2 或访问数据)。我有以下代码来获取数据并在导入后按照我想要的方式对其进行格式化,但我无法将其导入到特定工作表中。我可以获得帮助吗?这是我所拥有的:

使用分辨率更新代码:

Sub getAccessData()

Dim DBFullName As String
Dim Connect As String, Source As String
Dim Connection As ADODB.Connection
Dim Recordset As ADODB.Recordset
Dim Col As Integer
Dim lngLastColumn As Long
Dim lngLastRow As Long
Dim OXLSheet As Worksheet

Set OXLSheet = Worksheets("WorksheetName")

Worksheets("WorksheetName").Cells.Clear

'Datebase path info
DBFullName = "C:\Users\myname\Desktop\Database Backups\database.accdb"

'Open the connection for the database
Set Connection = New ADODB.Connection
Connect = "Provider=Microsoft.ACE.OLEDB.12.0;"
Connect = Connect & "Data Source=" & DBFullName & ";"
Connection.Open ConnectionString:=Connect


'Create RecordSet
Set Recordset = New ADODB.Recordset
With Recordset

    'Data Filter
    Source = "SELECT * FROM tblRetirements WHERE [AllowEnteredInPayroll] Is Null AND ApplicationCancelled = 'No'"
    .Open Source:=Source, ActiveConnection:=Connection


    'Write field Names
    For Col = 0 To Recordset.Fields.Count - 1
        Worksheets("WorksheetName").Range("A5").Offset(0, Col).Value = Recordset.Fields(Col).Name
    Next

    'Write Recordset
    Worksheets("WorksheetName").Range("A5").Offset(1, 0).CopyFromRecordset Recordset
End With
ActiveSheet.Columns.AutoFit
Set Recordset = Nothing
Connection.Close
Set Connection = Nothing



With OXLSheet
    lngLastColumn = .Cells(5, .Columns.Count).End(xlToLeft).Column
    lngLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    .ListObjects.Add(xlSrcRange, .Range(.Cells(5, 1), .Cells(lngLastRow, lngLastColumn)), , xlYes).Name = "Table1"

    ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleMedium16"
End With

End Sub

谢谢你。

PaichengWu

有一个错字SELECT*FROM,应该是SELECT * FROM

如果您想导入到特定的工作表 name output,请尝试替换:

  1. Range("A5").Offset(0, Col).Value = Recordset.Fields(Col).NameWorksheets("output").Range("A5").Offset(0, Col).Value = Recordset.Fields(Col).Name
  2. Range("A5").Offset(1, 0).CopyFromRecordset RecordsetWorksheets("output").Range("A5").Offset(1, 0).CopyFromRecordset Recordset

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将Excel工作表范围导入到MS Access表

从Access导入到Excel无法正常工作

将Excel Listobject导入到Access表中

从Excel通过VBA到Access的SQL查询(特定于日期)

从Access VBA编辑打开的Excel工作表

如何使用 VBA 将所有 Excel 工作簿工作表导入 Access。

Excel到PowerPoint导出,而无需通过VBA格式化Excel工作表

如何通过Access VBA代码处理Excel工作簿

将某些 Excel 列中的数据导入到 Access by VBA?

通过VBA从Access导入数据到Excel。导入值的方式存在问题

从特定行和列开始的 Excel 工作表数据导入到数据网格,然后导入 SQL Server 表、WPF

将Excel导入到Access:日期为Access表的字段名称

将Excel工作表导入到DataGrideView

将多个 Excel 范围/工作表导入到 Powerpoint

如何通过 VBA 在所有 Excel 工作表中运行特定命令?

Access是否可以读取Excel文件的内容而不将其导入到表中?

Access/Excel VBA:可变数量的工作表

如何使用SQL语句和VBA将数据从MS-Access导入到Excel Power查询?

Excel VBA通过循环将匹配信息从一个工作表复制到另一个工作表

Excel VBA-将数字作为文本导入Access表

通过节点将数据从Excel导入到SQL

使用VBA将数据从.csv导入到Excel文档

没有数据从 Excel 导入到 Access with ADO

Excel 2016宏,用于将制表符分隔的txt文件导入到工作簿中的特定工作表中,宏是从哪里运行的?

VBA Excel从关闭的文件中获取工作簿对象或通过工作表索引引用Excel SQL表

将特定数据文件数据转换/导入到 XbyY excel 表单的 VBA 代码

使用VBA垂直而非水平地将数据从网站导入到工作表

如何通过使用Excel VBA宏使Excel工作表受保护和不受保护?

Excel VBA宏:导入工作簿,复制列,并循环通过导入的工作簿