【发布时间】: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?
标签: sql vba date ms-access query-parameters