2011-09-27 30 views
2

我一直試圖動態添加到記錄集,但我無法這樣做。 adodb.recordset的.addnew函數似乎不允許將任何類型的數組傳遞給它的fieldvalues,values參數。例如,如果在設置您的記錄集並輸入相應的字段值後,您會說:VBA記錄集:爲什麼我在.addnew的Fieldvalue參數中聲明我的數組很重要?

FieldsArray = array("field1", "field2") 
ValuesArray = array("val1","val2") 

rs.AddNew FieldsArray, ValuesArray 

This works! 但是,如果你不是寫

Dim fieldsarray(0 To 1) As String 
FieldsArray(0) = "field1" 
FieldsArray(1) = "field2" 
ValuesArray = array("val1","val2") 

rs.AddNew FieldsArray, ValuesArray 

失敗?!?! (更具體地說[運行時錯誤'3001':參數是錯誤的類型,超出了可接受的範圍,或者相互衝突])

爲什麼要這樣聲明字段數組。 addnew參數很重要?有沒有辦法讓後者能夠工作?

回答

4

這是因爲在第一個例子中您聲明VARIANT數據類型的兩個陣列,而在第二個例子中,你正在聲明STRING陣列。

AddNew函數期待變體數組。

在你第二個例子,你的第一行更改爲:

Dim fieldsarray(0 To 1) As Variant 

,它應該工作。

+0

<3是的,我很高興這是一個簡單的答案。謝謝:) – Mallow

+0

你如何找出預期類型的​​功能? – Mallow

相關問題