从Access导出数据到Excel的格式

时间:2018-03-06 22:38:06

标签: excel vba excel-vba ms-access access-vba

我创建了一个代码,用于复制Access表的数据并将其粘贴到Excel电子表格中,但我需要第一行采用不同的格式(使用Access中的可扩展选项菜单)。

我的意思是,这是我的第一行: this

这就是我希望它: this

使用以下命令创建对象:

Set cn = CreateObject("ADODB.Connection")

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBFullName & ";" 

Set rs = CreateObject("ADODB.Recordset")

rs.Open "SELECT * FROM Table1", cn, , , adCmdText

这是我粘贴标题的代码部分:

For intColIndex = 0 To (rs.Fields.Count - 1) 

    TargetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name 

Next

然后我将数据粘贴到:

TargetRange.Offset(1, 0).CopyFromRecordset rs

我还想改变的另一件事是单元格的宽度,因为当我粘贴Access数据时,所有单元格的宽度都相同,看起来很糟糕。我怎么能这样做?

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用以下代码从Excel导入。

Dim i As Long
For i = 0 To rs.Fields.Count - 1
    TargetRange.Offset(0, i).Value = rs.Fields(i).NAME
    TargetRange.Offset(0, i).Columns.AutoFit 'Autosize column
Next
With Application.ActiveSheet.ListObjects.Add(1, TargetRange.CurrentRegion, , , 1) 'xlSrcRange, xlYes
    .Name = "MyTable"
    .TableStyle = "TableStyleLight1"
End With

格式化为表格(带有下拉箭头)和自动调整大小。

答案 1 :(得分:1)

添加以下

SELECT MAX(length(split_part(<decimalfieldname>::text, '.', 2))) FROM <tablename>

答案 2 :(得分:0)

当您在上部单元格中提到箭头时,我认为您正在谈论添加过滤器。这是你的想法吗?

native-lib.cpp