2016-02-01 1 views
0

Я пробовал приведенный ниже код, 1) Button3_Click() ... Для добавления новой записи нет сообщения об ошибке, но запись не добавляется в базу данных 2) Button2_Click() ... Для записи обновления отображается сообщение об ошибке «Не удалось загрузить тип« ADODB.FieldsToInternalFieldsMarshaler »из сборки« WindowsApplication1, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null ».VB 2012: Добавить новый, Изменить запись MSACCESS с использованием набора записей ADO

Может ли кто-нибудь помочь в этом.

Public Class Form1 



Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    'update 1st record 
    Dim rs As New ADODB.Recordset 

    Dim cn As New ADODB.Connection() 
    cn.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=Test.mdb;" 
    cn.Open() 

    rs.Open("SELECT * FROM Users", cn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockBatchOptimistic) 


    rs.MoveFirst() 
    rs.Fields("EmpName").Value = "AAAAA" 
    rs.Fields("EmpId").Value = "222" 
    rs.UpdateBatch() 

    rs.Close() 
    cn.Close() 
End Sub 

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 
    'add new Record 

    Dim rs As New ADODB.Recordset 

    Dim cn As New ADODB.Connection() 
    cn.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=Test.mdb;" 
    cn.Open() 

    rs.Open("SELECT * FROM Users", cn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockBatchOptimistic) 

    Dim fieldsArray(1) As Object 
    fieldsArray(0) = "EmpName" 
    fieldsArray(1) = "EmpId" 
    Dim values(1) As Object 
    values(0) = "4" 
    values(1) = "as" 

    rs.AddNew(fieldsArray, values) 
    rs.UpdateBatch() 

    rs.Close() 
    cn.Close() 
End Sub 

End Class

ответ

0

Смотрите мой код, который я тестировал, и она работала: Table1 имеет два поля. Я добавляю строку с двумя значениями.

Dim cnn As New ADODB.Connection 
    Set cnn = CurrentProject.Connection 
    Dim rs As New ADODB.Recordset 
    Set rs = New ADODB.Recordset 
    rs.Open "Table1", cnn, adOpenKeyset, adLockOptimistic 

    rs.AddNew 
    rs.Fields(1) = "a" 
    rs.Fields(2) = "b" 
    rs.UpdateBatch 
+0

Я думаю, что это VBScript, требуют этого для VB2012 –

+0

Нет, это УВА ADODB такие же всегда. –