【问题标题】:MS Access Export to Excel formattingMS Access 导出到 Excel 格式
【发布时间】:2017-08-28 09:15:53
【问题描述】:

我的业务需要将数据从 Access (2013) 导出到 Excel (2010\13),然后将其分发给 x 个用户。这将定期发生。我想在 Access 中执行尽可能多的格式化等操作,并避免在 Excel 中创建宏并调用它们。

这是我在 Access 中的数据:

Cat1   Cat2   Cat3   Item  Desc
AAA    PPP    QQQ    WID1  Widget1
AAA    RRR    KKK    WID2  Widget2
AAA    RRR    JJJ    WID3  Widget3
BBB    DDD    EEE    WID4  Widget4
BBB    FFF    UUU    WID5  Widget5

在 Excel 中,数据需要如下所示

AAA
PPP
QQQ
WID1    Widget1
RRR
KKK
WID2    Widget2
JJJ
WID3    Widget3
BBB
DDD
EEE
WID4   Widget4
FFF
UUU
WID5   Widget5

有没有办法循环访问 Access 中的数据,构建一个类似于上面的临时表,然后将临时表导出到 Excel?还是必须按原样导出数据,然后在 Excel 中调用宏来执行格式化?

问候,

迈克尔

【问题讨论】:

  • 您必须遍历按所示排序的记录,将每条记录与前一条记录进行比较,然后将结果(如果有)写入临时表。然后导出临时表。
  • 我该怎么做?
  • 打开两个表作为两个记录集,然后循环第一个,同时将记录添加到另一个。
  • 我不认为你有一个例子 - 我的 VBA 非常有限
  • 排序:Copy records using DAO。有趣的部分在中间,您必须调整复制记录的条件。

标签: excel ms-access vba


【解决方案1】:

首先,从您的示例来看,您的 Access 表似乎没有标准化。如果您选择不更正,根据您的示例数据,您可以使用联合查询执行您想要的操作。当然,这取决于您如何实际确定要包含哪些行/列。

SELECT Cat1, NULL AS Desc FROM <yourTable> WHERE Cat1='AAA'
UNION ALL
SELECT Cat2, NULL AS Desc FROM <yourTable> WHERE Cat1='PPP'
UNION ALL
SELECT Cat2, NULL AS Desc  FROM <yourTable> WHERE Cat1='QQQ'
UNION ALL
SELECT Item, Desc  FROM <yourTable> WHERE Item='WID1'
UNION ALL ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多