[VB2005] Aus DataGridView nach Access

Jacka

Erfahrenes Mitglied
Hallöchen zusammen!

Ich habe schon wieder ein Problem:
Mit VB 6.0 konnte ich meine Werte eigentlich recht schnell aus einer Tabelle in eine Access-Tabelle schreiben.
Code:
Set conn = New ADODB.Connection
With conn
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0"
    .Open dbpfad
End With

Set rs.ActiveConnection = conn
rs.LockType = adLockOptimistic

'Daten aus Array in Tabelle schreiben
    For i = 0 To Zeilenende
        rs.AddNew Array("Fodat", "MSno", "FID"), _
        Array(arrFodat(i), arrMSno(i), arrProzent(i))
    Next i

Nun möchte ich unter VB 2005 das Gleiche tun, nur aus einem DataGridView heraus.
Folgenden Weg habe ich gewählt:
Code:
 Dim dbpath As String = System.IO.Path.Combine("C:\Eigene Dateien\Projects\MISearch", "Produkte_Neu.mdb")
        Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & dbpath & ";")
        Dim i As Integer
        Dim sql As String
      
  conn.Open()
        cmd.ExecuteNonQuery()

        For i = 0 To Form2.DataGridView1.Rows.Count - 1
            If Form2.DataGridView1.Rows(i).Cells(0).Value = True Then
                With Form2.DataGridView1
                    sql = "INSERT INTO MS_Target (Fodat, MSno, FID) VALUES (" & .Rows(i).Cells(1).Value & ",'" & .Rows(i).Cells(2).Value & "'," & .Rows(i).Cells(4).Value & ") & sql & ";"
                  End With
            End If
        Next i

  Dim cmd As New OleDbCommand(sql, conn)
  cmd.ExecuteNonQuery()
conn.Close()

Jetzt bekomme ich jedoch jedesmal die Fehlermeldung, das ein Semikolon am Ende fehlt.. Da ist aber eins! Bei nur einer VALUE Zuweisung funktioniert es.
Woran kann das liegen? Gibt es vielleicht noch einen einfacheren Weg, um die Daten nach Access zu bekommen?

Vielen Dank und Grüße,
Jacka
 
Zuletzt bearbeitet:
Hi!

OK. Habe das ganze nun so gelöst.
Ist zwar hässlich, aber es funktioniert..

Code:
Dim dbpath As String = System.IO.Path.Combine("C:\Eigene Dateien\Projects\MISearch", "Produkte_Neu.mdb")
        Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & dbpath & ";")
        Dim i As Integer
        Dim sql As String
      
  conn.Open()
        cmd.ExecuteNonQuery()

        For i = 0 To Form2.DataGridView1.Rows.Count - 1
            If Form2.DataGridView1.Rows(i).Cells(0).Value = True Then
                With Form2.DataGridView1
                    sql = "INSERT INTO MS_Target (Fodat, MSno, FID) VALUES (" & .Rows(i).Cells(1).Value & ",'" & .Rows(i).Cells(2).Value & "'," & .Rows(i).Cells(4).Value & ") & sql & ";"
                        Dim cmd As New OleDbCommand(sql, conn)
                        cmd.ExecuteNonQuery()
                  End With
            End If
        Next i
 
conn.Close()

Viele Grüße,
Jacka
 
Zurück