【问题标题】:Excel to Access import, column determines field valueExcel 到 Access 导入,列确定字段值
【发布时间】:2013-04-04 09:36:56
【问题描述】:

我正在尝试创建一个 Access 数据库来跟踪多个帐户的收入和支出。

我的困难在于,我的老板坚持要求负责报告这些帐户支出的人员只应使用现有的 Excel 电子表格来执行此操作。我可以从 Excel 导入,但我被锁定在工作表的现有格式中。

在简化形式中,工作表具有以下列:

帐户 ID ||费用类型 A ||费用类型 B || C类费用(等)

我预计将来需要添加新的费用类型,因此表格需要适应这种情况。

我曾想过这样构建费用表:

Account_ID ||费用_类型 ||费用_日期 ||金额

有关存储在其自己的表中的类型的更多信息。但我不知道如何将电子表格的列映射到记录中的类型分类。目前大约有 300 个账户,有 5 种费用类型,并且都可能增长。

谁能帮我解决这个问题?我会接受任何类型的解决方案:Excel 技巧或更改我的数据库设置或任何其他可能有效的方法。

PS。我是 VBA 的新手 - 我只是在录制宏的意义上使用它。

【问题讨论】:

  • @pnuts 使用 Excel 和 Access 2010。是的,一行可能有多个条目。还没有日期栏;目前,电子表格每个月都会重新创建,并且有人在他们想要任何特定帐户的历史记录时进行剪切和粘贴(我想转移到 Access 的几个原因之一)。我们只需要月-年部分,而不是天,很容易添加旧表。

标签: excel ms-access import excel-2010 ms-access-2010


【解决方案1】:

将电子表格导入 Access 中的临时表后,您可以运行以下查询以“取消交叉表”数据

SELECT [Account ID] AS Account_ID, "Expense Type A" AS Expense_Type, 
        [Expense Type A] AS Amount
    FROM TempTable WHERE [Expense Type A] IS NOT NULL
UNION ALL
SELECT [Account ID] AS Account_ID, "Expense Type B" AS Expense_Type, 
        [Expense Type B] AS Amount
    FROM TempTable WHERE [Expense Type B] IS NOT NULL
UNION ALL
SELECT [Account ID] AS Account_ID, "Expense Type C" AS Expense_Type, 
        [Expense Type C] AS Amount
    FROM TempTable WHERE [Expense Type C] IS NOT NULL

【讨论】:

    【解决方案2】:

    使用 Alt+DP 调用“旧”数据透视表向导,选择多个合并范围和数据透视表,下一步,选择我将创建页面字段,下一步,输入Range,Next,Finish,然后双击 Grand Totals 交叉点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 2018-06-30
      • 2016-01-11
      • 2016-11-14
      • 2013-02-21
      • 2012-11-24
      • 1970-01-01
      相关资源
      最近更新 更多