ADO记录集addnew datetime字段失败

时间:2014-05-31 07:58:54

标签: mysql vba datetime ado recordset

这是(非常简单)问题:

我打开一个MySql表作为ADO记录集(以例如" product"命名)。我们假设该表有两个INT字段(例如" int1"," int2"),它们都没有默认值,所以当我添加一个新记录时记录集,我必须提供这些。

到目前为止,代码工作正常,这就是:

product.AddNew Array("int1", "int2"), Array(1, 2)

(代码的其他一些细节:

oConn.CursorLocation = adUseClient
product.Open sqlstr, oConn, adOpenStatic, adLockBatchOptimistic, adCmdText
Set product.ActiveConnection = Nothing)

好的,所以问题是,如果我使用on datetime typed列扩展表,一切都会失败,尽管我尝试了各种我能想象的格式。

product.AddNew Array("int1", "int2", "test"), Array(1, 2, "2014-01-01")
product.AddNew Array("int1", "int2", "test"), Array(1, 2, "20140101")
product.AddNew Array("int1", "int2", "test"), Array(1, 2, "'2014-01-01'")
product.AddNew Array("int1", "int2", "test"), Array(1, 2, dateserial(2014,01,01))

等等......

出现错误信息: 运行时错误' -2147467259(80004005)': 数据提供程序返回E_FAIL状态

那么,使用日期时间类型字段添加新记录的方式是什么,没有默认值?

谢谢,再见, 的Istvan

好的,那是有点儿的! 我发现它与日期时间格式无关。我正在尝试做的是将新记录添加到PrestaShop 1.4' ps_product'表,作为ADO记录集打开(见上文) 该表有3个字段,没有默认值,但即使我使用正确的格式,我仍然会收到上面相同的错误消息

所以这不起作用:

tmp = ps_product.Fields("date_upd").Value
ps_product.AddNew Array("id_tax_rules_group", "date_add", "date_upd"), Array(1, tmp, tmp)

任何(新的)想法? :)

谢谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我认为您可以直接将日期作为日期传递。