Ok Danke, das habe ich bis hierschon gelesen und sogar verstanden.
Ich folgenden Code altmodisch geschrieben, in dem ich Daten per Array in einen Datensatz hinzufüge.
Die benutzung von Array's habe ich bei ADO.Net noch nicht gefunden.
Public Sub Daten_schreiben(ByVal DBPath As String, ByVal Table As String, _
ByVal Felder As Object, ByVal Daten As Object, ByVal Row As Integer, _
ByVal ToIndex As Integer)
' Die Auslegung der Sub zielt darauf verschiedene Datenbank und
' verschiedene Tabellen zu befüllen
DB = New ADODB.Connection
With DB
.Provider = "Microsoft.ACE.OLEDB.12.0;Data Source=" & DBPath
.Open(DBPath)
End With
rs = New ADODB.Recordset
rs.Open(Table, DB, ADODB.CursorTypeEnum.adOpenDynamic, _
ADODB.LockTypeEnum.adLockOptimistic)
Try
'Datensatz hinzufügen (das Array Felder wird unten in
' "Felder_zählen" befüllt, das Array "Daten" wird im restlichen
' Code mit Daten befüllt)
rs.AddNew(Felder, Daten)
rs.Update()
Catch ex As Exception
If Err.Number = -2147217887 Then
' wenn vorhanden weitere Aktion starten oder abbrechen (Code
' kommt später hier rein)
MsgBox("Die Equipmentnummer ist bereits vorhanden." & vbNewLine _
& "Bitte wählen Sie eine Aktionen im folgenden Dialog.", vbOK)
Else
MessageBox.Show(ex.Message)
End If
End Try
rs.Close()
DB.Close()
End Sub
Public Function Felder_zählen(ByVal DBPath As String, ByVal Table As String)
DB = New ADODB.Connection
With DB
.Provider = "Microsoft.ACE.OLEDB.12.0;Data Source=" & DBPath
.Open(AppPath & "\Kunden.mdb")
End With
rs = New ADODB.Recordset
rs.Open(Table, DB, ADODB.CursorTypeEnum.adOpenDynamic, _
ADODB.LockTypeEnum.adLockOptimistic)
Colcount = rs.Fields.Count - 1 'Auswertung, viele Spalten die Tabelle
' hat
ReDim arrFeld(0 To Colcount) 'Vorbereitung des Variant
'Füllen des Array's mit Spaltenüberschriften
For J = 0 To Colcount
arrFeld(J) = rs.Fields(J).Name
Next
rs.Close()
DB.Close()
End Function
End Module |