我在访问时在VB中更新SQL表时转换日期时遇到问题:这是我的代码:
'Excel format date conversion
strSQL = "UPDATE tblBlotterINTLControl " & _
"SET tblBlotterINTLControl.TradeDate = CVDate(TradeDate), " & _
"tblBlotterINTLControl.SettleDate = CVDate(SettleDate);"
DoCmd.RunSQL strSQL
我为每一行都收到错误:“类型转换错误” 我的表格格式正确,请帮助谢谢
编辑: 我不得不说SELECT请求有效但UPDATE请求没有!为什么?如何?
答案 0 :(得分:0)
尝试使用CDate
代替CVDate
。
CVDate实际上返回一个类型为vbDate的Variant,仅用于向后兼容性。也许这就是导致问题的原因。
答案 1 :(得分:0)
Access表tblBlotterINTLControl中TradeDate和SettleDate字段的数据类型是什么?
SELECT TypeName(TradeDate) AS TypeOfTradeDate, TypeName(SettleDate) AS TypeOfSettleDate
FROM tblBlotterINTLControl;
请将该查询粘贴到Access中的新查询的SQL视图中,运行它并向我们显示您的回复。
我问的原因是因为UPDATE查询中的SET语句困扰我。
SET tblBlotterINTLControl.TradeDate = CVDate(TradeDate)
如果TradeDate字段是Date / Time数据类型,则在其上使用CVDate()函数无法完成任何操作。
如果TradeDate字段是文本数据类型,则CVDate()将为您提供变体日期,但您无法将该日期/时间值存储回文本字段。
也许你最好使用Format()函数。这是我从立即窗口复制的示例:
? Format("2011/01/01", "d mmm yyyy")
1 Jan 2011