Steel: Access schliesst nicht mehr nach Datenbankzugriff.

Nabend!

Ich beiss gleich irgendwo rein.
Seit Tagen schlage ich mit mit dem Problem rum, dass ich mit einer lokalen Acces DB einen Webserver aktualisieren muss. Ich nutze ADODB und dabei entsteht das Problem, dass Access nach einem Add oder Update nicht mehr schliesst. Alles laeuft noch und die Datenbank wird auch geschlossen nur Access muss per Taskmanager gekillt werden (es verschwindet nen Bruchteil einer Sekunde und erscheint sofort wieder).

Ich hab zuerst daran gedacht, dass irgendein ungeschlossenes Objekt noch macht, also hab ich nochmal explizit alles dichtgemacht und zerstoert. Das hat aber nichts gebracht. Auch eine Suche im Netz bringt nichts neues.

umgeschriebener postfaehiger Code:

Public Sub adduserfields()
    Dim myFields, myValues
    Dim db As DATABASE
    Dim lrs As Recordset, rs As ADODB.Recordset
    Dim myQuery As String, myUpdateQuery As String

' Query zum Auslesen der lokalen Tabelle (User Tabellenfelder) erstellen.
    myQuery = "SELECT * FROM LOKALETABELLE"

' Datenbankfelder festlegen
    myFields = Array("LAND", "ID", "FELD")

'lokale Datenbank festlegen, Query oeffnen und Zeiger auf den ersten Datensatz stellen
    Set db = CurrentDb
    Set lrs = db.OpenRecordset(myQuery)
    lrs.MoveFirst

'Connectionobjekt erstellen und Verbindung zum Server erstellen
    Set myConn = New ADODB.Connection
    myConn.Open "Driver={SQL Server};Server=SERVERNAME;Database=DB;UID=ID;PWD=PWD"

' ein Recordset fuer das Erstellen von Eintraegen und eines fuer Updates von eintraegen anlegen
    Set rs = New ADODB.Recordset
    Set urs = New ADODB.Recordset

rs.LockType = 3 'aLockOptimistic
    rs.CursorType = 1 'adOpenKeyset

' Query zum erfassen der Servereintraege in der Plantabelle festlegen
    myQuery = "Select * from WEBTABELLE"

'Recordset mit Plantabelle oeffnen
    'rs.Open myQuery, myConn

' Lokalen Query durchlaufen und alle Eintraege auf dem Server einfuegen.
    Do While lrs.EOF = False

myValues = Array(lrs("LAND"), lrs("ID"), lrs("FELD"))

rs.Open myQuery, myConn

rs.AddNew myFields, myValues '### wenn diese Zeile ausgefuehrt wird passierts ###
        'Eintraege speichern
        rs.Update
        rs.Close
        lrs.MoveNext
    Loop

'Eintraege speichern
    'rs.Update

' Objekte schliessen und entfernen
    'rs.Close
    lrs.Close
    myConn.Close

Set rs = Nothing
    Set lrs = Nothing
    Set myConn = Nothing

MsgBox ("Upload complete")

End Sub

Ich hab n bisserl rumgespielt mit dem Recordset rs. Es bleibt sich gleich ob ich es jedesmal oeffne oder nur einmal vor dem while. Ein Insertquery funktioniert. Das will ich aber eigentlich nicht. Wozu nutz' ich denn ADO, wenn ich doch wieder jede Usereingabe auseinandernehmen muss?

Hat irgendwer ne Idee? Im Grunde durchlaufe ich nur die lokale DB und schreibe jeden Datensatz in die WebDB. Und bevor wer fragt: aktuell 1 Datensatz mit ca 20 Feldern. Access 2003 und nen MS SQL Server als Webserver.

--
Trau Dich!