Optimierung DB-Methode
31.12.2008 12:29:46
Rudolf
ich habe ein Code-Fragment geschrieben, mit der ich Daten aus einer Excel-Tabelle in eine Access-DB einlese. Funktioniert auch einwandfrei:
Private Sub CommandButton2_Click()
Dim DBFullName As String
Dim Cnct As String, Src As String
Dim Connection As ADODB.Connection
Dim Recordset As ADODB.Recordset
Dim Col As Integer
'Cells.Clear
' Database information
DBFullName = ThisWorkbook.Path & "\PMO.mdb"
' Open the connection
Set Connection = New ADODB.Connection
Cnct = "Provider=Microsoft.Jet.OLEDB.4.0; "
Cnct = Cnct & "Data Source=" & DBFullName & ";"
Connection.Open ConnectionString:=Cnct
' Create RecordSet
Set Recordset = New ADODB.Recordset
Recordset.Open "Tasks", Connection, adOpenKeyset, adLockOptimistic
Dim i As Long
ActiveSheet.Select
For i = 4 To Cells.SpecialCells(xlLastCell).Row ' alle Zeilen
If Cells(i, 5) = "" Or Cells(i, 5) = "tbd" Then
Else
With Recordset
.AddNew
.Fields("ParentTask").Value = Cells(i, 1).Value
.Fields("TaskID").Value = Cells(i, 2).Value
.Fields("Task").Value = Cells(i, 3).Value
.Fields("Org").Value = Cells(i, 6).Value
.Fields("TeamMember").Value = Cells(i, 5).Value
.Fields("StartDate").Value = Cells(i, 8).Value
.Fields("DueDate").Value = Cells(i, 9).Value
'add data for the other fields here
.Update
End With
End If
Next i
Recordset.Close
Connection.Close
End Sub
Ich hätte dazu nun zwei Fragen:
1) Kann man diese Prozedur noch optimieren bzw. effizienter gestalten?
2) Ich würde gerne den Inhalt der Tabelle Tasks löschen bevor ich die Werte von der Excel-Tabelle in die DB schreibe. Kann man das einfach realisieren?
rudi