繁体   English   中英

使用VBA中的ADODB无法使用SQL更新Excel命名范围中的日期字段

[英]Cannot Update Date Fields in Excel Named Range with SQL Using ADODB from VBA

我正在尝试运行VBA-SQL以更新excel表中的现有条目。 数据将移动到数据库,但是直到部署和测试一小组的内部应用程序之后才进行。 我已经能够通过连接更新文本(字符串)字段,但是日期字段不允许我更新。 只有日期字段是一个问题。 Microsoft.ACE API将其识别为日期格式。

代码如下,包括方法和代码中的各自错误,

Dim Cn As ADODB.Connection
Dim RS As ADODB.Recordset

DBFullName = ThisWorkbook.Path & "\" & ThisWorkbook.Name
Cnct = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & DBFullName & "';" & _
  "Extended Properties='Excel 12.0 Macro;ReadOnly=0;HDR=Yes'"
Set Cn = New ADODB.Connection
Cn.Open ConnectionString:=Cnct

‘ Method #1
 strSQL = “UPDATE StatusData SET [Last Update]=#2014-10-02 12:00:00# WHERE [Program Category]='Cat' AND [Program Name]='Prog' AND [LN] IS NULL AND [SN]='sn';”
Cn.Execute strSQL, RecordsAffected, adExecuteNoRecords

错误“无法更新'(表达式)'; 字段不可更新。”

‘ Method #2
strSQL = “SELECT * FROM StatusData WHERE [Program Category]='Cat' AND [Program Name]='Prog' AND [LN] IS NULL AND [SN]='sn';”
Set RS = New Recordset
RS.Open strSQL, Cn, adOpenDynamic, adLockOptimistic
RS.MoveFirst
RS.Fields("Last Update").Value = a '"#10/2/2014 04:00:00 PM#"

错误“无法更新字段。”

RS.Update
RS.Close
Cn.Close
Set RS = Nothing
Set Cn = Nothing

一旦将具有公式的单元格从字段中删除,方法1便会起作用。 公式是只读的,并且Microsoft和其他文章也记录了这些公式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM