我一直在尝试动态添加到Recordset,但我无法这样做。 adodb.recordset的.addnew函数似乎不允许将任何类型的数组传递给它的fieldvalues,values参数。例如,如果在使用适当的字段值设置记录集后,请说:
FieldsArray = array("field1", "field2")
ValuesArray = array("val1","val2")
rs.AddNew FieldsArray, ValuesArray
这个有效!! 但如果你改为写
Dim fieldsarray(0 To 1) As String
FieldsArray(0) = "field1"
FieldsArray(1) = "field2"
ValuesArray = array("val1","val2")
rs.AddNew FieldsArray, ValuesArray
它失败了?!?! (更具体地说[运行时错误'3001':参数类型错误,超出可接受的范围,或彼此冲突])
为什么在.addnew参数中声明字段数组的方式很重要?有没有办法让后者工作?
答案 0 :(得分:4)
这是因为在第一个示例中,您声明了两个VARIANT
数据类型的数组,而在第二个示例中,您声明了STRING
数组。
AddNew函数需要一个变量数组。
在第二个示例中,将第一行更改为:
Dim fieldsarray(0 To 1) As Variant
它应该有用。