使用变量的 Excel VBA INSERT INTO 语句

标签 excel sql ms-access vba

我正在使用 SQL 查询将 Excel 工作表中的数据插入到 Access 数据库中。我将工作表中所需的所有数据放入变量中:

rwyNumber = Range("b13").Value & Range("c13").Value
testDate = Range("b5").Value
testTime = Range("b6").Value
rwySide1 = Range("b14").Value
firstThird1 = Range("b28").Value
secondThird1 = Range("b29").Value
thirdThird1 = Range("b30").Value
averageFriction1 = Range("b23").Value

如果我想将 testDate 和 testTime 存储为日期/时间,当我将它们存储在变量(上面)中时是否需要转换它们,或者只要我有数据类型,就会自动 Access 使它们成为日期/时间将表中的那些列设置为日期/时间?还有 double 和字符串。

我的查询其余部分的正确语法是什么:

stSQL1 = "INSERT INTO Friction Tests  (Runway Number, Runway Test Side, Test Date, Test Time, 1/3, 2/3, 3/3, Average)"
stSQL1 = "VALUES ( " ....

table 有自动PK。前两个值是字符串,接下来的两个是日期/时间,最后四个是 double 值。

最佳答案

为什么不使用日期/时间字段来包含测试时间?

最好格式化日期,假设b5是日期类型:

testDate = Format(Range("b5").Value,"yyyy/mm/dd")

您最终会得到文本,但这并不重要。

stSQL1 = "INSERT INTO [Friction Tests] ([Runway Number], [Runway Test Side], " _
& "[Test Date], [Test Time], [1/3], [2/3], [3/3], [Average]) " _
& "VALUES ( " & rwyNumber  & ",#" &  testDate   & "#,#" & testTime   _
& "#," & rwySide1   & "," & firstThird1 _
& "," & secondThird1   & "," & thirdThird1 _
& "," & averageFriction1 & ")"

如果任何字段是文本,则该值必须用单引号或两个双引号引起来,与日期和时间类似。

我强烈建议删除字段(列)和表名称中的空格。

关于使用变量的 Excel VBA INSERT INTO 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1792399/

相关文章:

excel - 将SQLite数据导入Excel?

sql - 替换日期时间日期中的年份

sql-server - SQL Server 允许列中存在多个值

SQL:根据最近的日期选择一个字段中的值唯一的记录

excel - 无法在 VBA、Excel 2012 中正确设置日期格式

java - 添加 jar 文件时在调试 Java Eclipse 中取消显示变量

MySQL根据条件更新不同的字段

PHP-如何合并/连接 MySQL 表?

asp.net - 将项目开发提升到一个新的水平

vba - Excel VBA - 输入单元格时存储的值会更改格式