Hallo zusammen,
habe folgendes Problem: Ich lese mit meinem VB-Programm eine *.csv Datei ein, um einige Daten in die Datenbank zu importieren. Funktioiert..., Dazu erstelle ich immer wieder eine neue Datenbank mit DAO. Das funktioniert auch super. Auf die Datenbank greife ich dann über ADO Connection. Funktioniert auch gut.
Beim ersten Mal lässt sich die Datenbank auch löschen. Nur wenn ich eine zweite *.csv öffnen will, erscheint eine Meldung, dass die DB nicht gelöscht werden kann, weil ein anderer Prozess drauf zugreift. Sobald ich das Programm schliesse und es neu öffne, kann man die DB wieder löschen.
So öffne ich die Datenbank:
Public Function DatenbankConnect()
On Error GoTo Fehler
Set ADOcn = New ADODB.Connection ' neue ADODB-Verbindung als
' ADOcn
Set ADOrs = New ADODB.Recordset ' Setzen eines neuen
' Recordsets
' Datenbankpfad
DBPfad = App.Path & "\NefkomRechnungen.mdb"
' Provider auswählen + Datenbankpfad
With ADOcn
.CursorLocation = adUseClient
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security" & _
"Info = False;Data Source=" & DBPfad
.Open
End With
'Recordset für alle Tabellen, es kommt drauf an, welche strQuelle
' ausgewählt wird (strQuelle = Tabellenname)
With ADOrs
.ActiveConnection = ADOcn
.Source = "Rechnungen"
.CursorType = adOpenStatic
.LockType = adLockPessimistic
.Open
End With
Exit Function
Fehler:
MsgBox "Fehler in DatenbankConnect: " & Err.Description, vbExclamation, _
"Fehler im Modul - DatenbankConnect"
End Function
[/code
]<pre><code>Private Sub Form_LostFocus()
On Error GoTo Fehler
Datenbank_schliessen
Exit Sub
Fehler:
MsgBox Err.Description, vbExclamation, "Fehler in Form1 - Form_LostFocus"
End Sub Public Function Datenbank_schliessen()
On Error GoTo Fehler
'Datenbank schließen
rstTabelle.Close
DB.Close
Set rstTabelle = Nothing
Set DB = Nothing
Exit Function
Fehler:
MsgBox Err.Description, vbExclamation, "Fehler in Form1 -" & _
"Datenbank_schliessen"
End Function Public Function Text_einlesen()
On Error GoTo Fehler
Dim i
Dim Daten() As String
Dim SpezDateiname As String
SpezDateiname = App.Path & "\NefkomRechnungen.mdb"
Form2.Show ' Status Anzeige
ExcelNefkom
Spezifikation_Erstellen SpezDateiname
Textdatei_Importieren SpezDateiname, App.Path & "\csvdatei.csv"
Unload Form2
Exit Function
Fehler:
If Err.Number = "3204" Then
If ADOrs.State = "1" Then
ADOrs.Close
Set ADOrs = Nothing
Datenbank_schliessen
End If
MsgBox "ADOrs.State: " & ADOrs.State
Kill SpezDateiname
Spezifikation_Erstellen SpezDateiname
Textdatei_Importieren SpezDateiname, App.Path & "\csvdatei.csv"
Unload Form2
Exit Function
Else
MsgBox Err.Description, vbExclamation, "Fehler in Form1 - Text einlesen"
MsgBox "Fehlernummer: " & Err.Number
End If
End Function Kann mir vielleicht bei diesem Problem jemand helfen?
Nach db.Close wird der Code auch nicht weiter ausgeführt und Set db = Nothing bringt auch nicht den erhofften Erfolg.
Ich will ja nur die Datenbank löschen, um eine neue erstellen zu können.
Vielen Dank schon mal für eure Hilfe.
Gruss
Agnes
------------------------------------
Wenn wir heut gemeinsam starten
und wir alle viel erwarten,
denken wir an jedem Tag daran,
dass man es nur schaffen kann,
wenn wir fest zusammen stehen
und den Weg gemeinsam gehen. |