How to properly add new records to empty recordset manually?

后端 未结 3 1486
自闭症患者
自闭症患者 2021-01-02 01:15

How to add new records to a new & empty ADODB.Recordset manually?

Right now, here\'s what I\'m doing that isn\'t working:

Dim rs as ADODB.Records         


        
相关标签:
3条回答
  • 2021-01-02 01:42

    In-place:

    rs.AddNew "SomeFieldName", "SomeValue"
    

    Or in-place multiple fields

    rs.AddNew Array("SomeFieldName", "AnotherFieldName"), Array("SomeValue", 1234)
    

    Or using separate vars

    Dim Fields As Variant
    Dim Values As Variant
    
    Fields = Array("SomeFieldName")
    Values = Array("SomeValue")
    rs.AddNew Fields, Values
    

    Edit: This is how to synthesize a recordset for the AddNew sample above

    Set rs = new Recordset
    rs.Fields.Append "SomeFieldName", adVarChar, 1000, adFldIsNullable
    rs.Fields.Append "AnotherFieldName", adInteger, , adFldIsNullable
    rs.Open
    

    I'm usually using a helper function CreateRecordset as seen this answer.

    Update 2018-11-12

    You can also use field indexes as ordinals instead of field names as strings for the fields array like this

    rs.AddNew Array(0, 1), Array("SomeValue", 1234)
    
    0 讨论(0)
  • 2021-01-02 02:01

    With an open connection Conn:

    sSql="INSERT into mytable (somefieldname, anotherfieldname) values  ('Somevalue','Anothervalue')"
          Conn.Execute sSql
    
    0 讨论(0)
  • 2021-01-02 02:03
    set rs = new ADODB.Recordset
    rs.Open "Select SomeFieldName, AnotherFieldName FROM MyTable", myConnection, adOpenDynamic, adLockOptimistic
    
    rs.AddNew
    rs("SomeFieldName").Value = "SomeValue"
    rs("AnotherFieldName").Value = 1
    rs.Update
    
    rs.AddNew
    rs("SomeFieldName").Value = "AnotherValue"
    rs("AnotherFieldName").Value = 2
    rs.Update
    
    rs.Close
    
    0 讨论(0)
提交回复
热议问题