将特定单元格从 Excel 导出到 MS Access

Posted

技术标签:

【中文标题】将特定单元格从 Excel 导出到 MS Access【英文标题】:Export Specific Cells From Excel To MS Access 【发布时间】:2015-01-31 13:59:51 【问题描述】:

下面的代码(给我的)有效,但我不理解值(第 9 行)。当我尝试添加更多单元格时,我不断收到错误消息。我是 VBA 新手,有人可以添加更多字段以便我更好地理解,例如:

C5 进入成分 2 C6 进入成分 3 C7 进入成分 4 L5 进入 Lot2 L6 进入 Lot3 L7 进入 Lot4 还有更多。

以下值是任意的,仅用于测试。请看一下我的电子表格 我使用的电子表格在这里:https://mega.co.nz/#!2cZ3kKAZ!BL-HJM...1tZewrw-CH-1Dc

Sub Button10_Click()
  Dim strSQL As String

  Set appAccess = CreateObject("Access.Application")

  appAccess.Visible = False

  strSQL = "INSERT INTO [Finished Batches] ([Production Date],[Lot_Number],[Ingredient1],[Amount1]) " & _
           "VALUES (#" & Range("C5") & "#,'" & Range("D5") & "','" & Range("F23") & _
           "'," & Range("G23") & ")"

  With appAccess
    .OpenCurrentDatabase ("C:\users\jay neuh\desktop\database\ss database.mdb")
    .DoCmd.RunSQL strSQL, dbFailOnError
    .CloseCurrentDatabase
  End With

  Set appAccess = Nothing
End Sub

感谢您的帮助

【问题讨论】:

运行该代码时收到的完整错误消息是什么? 【参考方案1】:

Access 使用 SQL 语言处理数据,在本例中为 INSERT 命令。

INSERT 命令如下所示:

INSERT INTO [my_table_name] ([my_string_column],[my_number_column],[my_date_column])
VALUES ('my text value', 42, #2015-01-31#)

注意几点:

列数必须与值数相同 如果您传递文本,则需要用单引号括起来 如果您传递的是日期,则需要将其包裹在井号中 如果你传递的是一个数字,它不能被包裹

您没有提到您遇到了什么样的错误,但如果在您的 Access 数据库中,字段 [Lot_Number] 实际上是数字类型,则将其包装在您的示例中的单个配额中可能会出现问题。

你应该检查Introduction to Access SQL

编辑:您应该始终使用

Debug.Print strSQL

要预览您的 SQL 语句,您将更有可能发现代码中是否存在语法错误,例如缺少逗号、单引号或括号。

【讨论】:

以上是关于将特定单元格从 Excel 导出到 MS Access的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python(和 DataNitro)将单元格从一个 Excel 工作簿中的特定工作表复制到另一个 Excel 工作簿中的特定工作表

仅将可见单元格从 Excel 保存到 CSV

如何在 MS Excel 中将特定数据从一个 Excel 工作表传输到另一个工作表?

VBA 将 Excel 范围导出到特定目录和文件名

Excel 单元格从一张纸到另一张纸

如何从 srt 文件中提取单词并导出到 MS EXCEL