我正在使用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存储为日期/时间,当我将它们存储在变量(上面)中时是否需要转换它们,或者只要我有数据类型就会自动使它们成为日期/时间设置为表中这些列的日期/时间?还有双打和弦乐。
我的查询的其余部分的正确语法是什么:
stSQL1 = "INSERT INTO Friction Tests (Runway Number, Runway Test Side, Test Date, Test Time, 1/3, 2/3, 3/3, Average)"
stSQL1 = "VALUES ( " ....
该表有一个自动PK。前两个值是字符串,接下来的两个是日期/时间,后四个是双打。
答案 0 :(得分:4)
为什么不利用日期/时间字段来包含测试时间?
最好格式化日期,假设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 & ")"
如果任何字段是文本,则该值必须用单引号或两个双引号括起来,其方式与日期和时间类似。
我强烈建议删除字段(列)和表名中的空格。