在 vba 的插入查询中设置日期参数?
Posted
技术标签:
【中文标题】在 vba 的插入查询中设置日期参数?【英文标题】:Setting a Date Parameter in an insert query in vba? 【发布时间】:2013-12-06 19:22:30 【问题描述】:当尝试插入从 Now
函数获得的 vba Date
时,我收到错误消息:
“参数数量错误或属性分配无效”
由于我已经计算了参数,我将不得不假设这与尝试将日期分配给下面的参数v_logdate
有关:
Dim timeOfExecution As Date
timeOfExecution = Now
' ...
' INSERT a log record that says that this guy was
Dim qdef1 As DAO.QueryDef
Set qdef1 = db.QueryDefs("InsertAllTimeSyncLogRecord")
With qdef
' ...set some other parameters
.Parameters("v_logdate").Value = timeOfExecution ' timeOfExecution
' ...set some other parameters
End With
qdef1.Execute , dbFailOnError
我的插入语句 (InsertAllTimeSyncLogRecord
) 如下所示:
在AllTimeSyncLog
表中,将插入参数的LogDate
字段是Date/Time
类型。
INSERT INTO AllTimeSyncLog (
abradcwhash, hash, LogDate, firstname, lastname,
cohortid, email, department, [password], method, username
)
VALUES (
v_abradcwhash, v_hash, v_logdate, v_firstname, v_lastname,
v_cohortid, v_email, v_department, v_password, v_method, v_username
);
还有其他方法需要我将timeOfExecution
Date
分配给我的InsertAllTimeSyncLogRecord
DAO.QueryDef 中的v_logdate
参数吗?
【问题讨论】:
您将保存的查询定义分配给qdef1
,但随后在with
子句中使用qdef
(不带尾随1
)。这是翻译成 SO 的错字还是问题的根源?
当我将日期从 vba 插入到 sql server 中时,我通常在插入之前像这样格式化它'" & Format(Now, "yyyy-mm-dd hh:nn:ss") & "'
您使用的是外部数据源(例如 SQL Server)还是 Access 的内置数据库引擎 (JET)?您使用的是哪个版本的 Access?
【参考方案1】:
还值得一提的是,在 MS Access 中,您需要用井号 (#) 将日期括起来,尽管我不确定这是否适用于 querydef 参数,但我认为是这样。
【讨论】:
以上是关于在 vba 的插入查询中设置日期参数?的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 在插入时在 DATETIME 字段中设置当前日期