【问题标题】:Transfer specific columns from Excel to specific columns in Access Table将特定列从 Excel 传输到 Access 表中的特定列
【发布时间】:2018-03-26 00:01:10
【问题描述】:

我正在尝试将特定列从 excel 文档传输到特定列到我的 Access 数据库中的表。例如,我的 excel 表可能包含以下内容:

Date  Last  First  Gender   Month  School  Grade 
10/1  Rode  Danny  Male     Sept.  Ro ISD     10 
10/2  Dode  Manny  Male     Sept.  Ro ISD     11

我的数据库的学生表可能包含以下字段:

Type Source Phone Email Last First School Major School Grade

我只想导出标记为:Last、First、School、Grade 的 excel 列,并将它们放在我的学生表中各自的列中。我通过访问查看了 VisualBasic 中的 DoCmd.TransferSpreadSheet,但我不确定这是否是一个解决方案或者是否有其他方法。任何帮助将不胜感激,因为它会节省我很多时间!谢谢!

【问题讨论】:

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


    【解决方案1】:

    考虑直接从 Excel 工作表查询,因为两者都可以连接到 Jet/ACE SQL 引擎。下面假设您的工作表的数据以 A1 开头并带有列标题。在 VBA DAO/ADO 调用中集成以下操作查询或直接将其置于 Access 的查询设计中(SQL 模式)。

    INSERT INTO myAccessTable ([Last], [First], [School], [Grade])
    SELECT [Last], [First], [School], [Grade] 
    FROM [Excel 12.0 Xml;HDR=Yes;Database=C:\Path\To\Excel\File.xlsx].[SheetName$]
    

    【讨论】:

      【解决方案2】:

      有很多方法可以做到这一点。一种快速的方法是将 Excel 电子表格中的所有数据导入表格(即“MyExcelImportTable”)。然后您可以创建并运行一个查询,该查询将仅附加您想要的数据。

      INSERT INTO MyStudentTable(Last, First, School, Grade)
      SELECT Last, First, School, Grade FROM MyExcelImportTable
      

      【讨论】:

      • @alpha_nom,来自菜单:创建-->查询设计。然后在最左侧的“设计”选项卡(现在应该打开)上,选择“SQL”。然后将代码粘贴或键入到窗口中。然后点击“运行”图标(应该在标签栏的左边)。
      • @alpha_nom:我忘了说打开设计选项卡后,您需要关闭弹出的“显示表”对话框,然后才能看到“SQL”按钮出现在上面/离开。
      • 有没有办法让我在查询中添加 sql 代码,它会告诉我哪些行由于重复的电子邮件而没有附加到数据库中?到目前为止,Access 只添加了非重复项,但它没有告诉我哪些因为重复而无法添加。
      • @alpha_nom,没有办法让相同的插入查询告诉您未添加的内容。您必须编写一个选择查询来比较表 A 和表 B 中的内容。也就是说,如果关键字“Distinct”未包含在插入查询中,我认为 Access 不会将插入限制为不同的值.你确定这是正在发生的事情吗?
      【解决方案3】:

      DoCmd.TransferSpreadSheet 只会传输整张纸。您可以通过以下几种方式转移所需内容:

      1. 将所需的列复制到第二张纸,然后转移该纸

      2. 将数据保存为 CSV,并导入 CSV,您可以在其中指定列

      【讨论】:

        猜你喜欢
        • 2011-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多