Access中的日期格式插入到sql语句中

时间:2013-12-30 20:30:08

标签: ms-access access-vba

下面的代码,但表中的日期显示不正确,我的计算机系统日期设置为yyyy,mm,dd,并且Access表字段被选为短日期。如下面的代码所示,调试和单步执行程序时日期显示正常,但最后表格中的日期显示为1905-12-30(应该是2013-12-30)有什么建议吗?

InsDate = Date
**InsDate** = Format(InsDate, "yyyy,mm,dd")

AppeQry = "INSERT INTO TStockMaster ( SupplierID, PartID, UnitsID, ConditionID, " & _
          "QTY, WarehouseID, BinID, RowID, ColumnID, InsDate ) VALUES ( " & SupID & "," & PrtID & "," & UntID & "," & _
          CondID & "," & Qt & "," & WarehID & "," & BnID & "," & RwID & "," & ColID & "," & **InsDate** & ");"

1 个答案:

答案 0 :(得分:2)

使用参数查询,而不是将值作为文本连接到INSERT语句中。

然后,当您执行该语句并提供参数值时,您可以为其指定实际的日期/时间值,而不会受到文本格式和日期类型分隔符的影响。

这是一个简化的例子。将此查询保存为 qryTStockMasterAppend

INSERT INTO TStockMaster (InsDate) VALUES (pInsDate);

然后您的VBA代码可以使用该保存的查询,提供参数值并执行它。

Dim db As DAO.Database
Dim qdf As DAO.QueryDef

Set db = CurrentDb
Set qdf = db.QueryDefs("qryTStockMasterAppend")
qdf.Parameters("pInsDate") = Date()
qdf.Execute dbFailOnError