hallo allerseits,
ich hab da ein mords Problem mit meiner Transaktion. Ich verstehs glaub ich einfach nicht. Ich möchte in 3 verschiedene Tabellen Werte eintragen. Mit den SELECT Anweisungen hole ich mir die nächsten freien Zeilen in der DB. Das funktioniert mittlerweile. Jetzt möchte ich die ermittelten Werte natürlich auch in die DB schreiben. Aber da fängt mein Prog an zu meckern. Entweder ist "rs_SQL_3.Close" nicht auf ein geschlossenes Objekt anwendbar, oder aberwenn ich .Close weglasse dann meckert es beim öffnen des "rs_SQL_4" das ich mit meinem Cursortype keine mehrfachen Recordsets öffnen kann.??? Kann mir jemand einen schups oder einen Sprung geben???
danke schonmal.
Seebi.
Sub import_Auswahl(Kontakt As ContactItem)
Dim SQLStatement1 As String
Dim SQLStatement2 As String
Dim SQLStatement3 As String
Dim SQLStatement4 As String
Dim SQLStatement5 As String
Dim new_pa_id As Integer
Dim new_adb_id As Integer
Dim objConnectionDB As ADODB.Connection
Dim rs_pa_id As ADODB.Recordset
Dim rs_adb_id As ADODB.Recordset
Dim rs_SQL_3 As ADODB.Recordset
Dim rs_SQL_4 As ADODB.Recordset
Dim rs_SQL_5 As ADODB.Recordset
Set objConnectionDB = CreateObject("ADODB.Connection")
objConnectionDB.Open frmExchangeOLWizard.p_sDSN
'On Error GoTo Rollback
objConnectionDB.BeginTrans
SQLStatement1 = "SELECT MAX(pa_id) + 1 FROM tm_partei "
Set rs_pa_id = New ADODB.Recordset
rs_pa_id.Open SQLStatement1, objConnectionDB
new_pa_id = rs_pa_id.Fields(0)
rs_pa_id.Close
SQLStatement2 = "SELECT MAX(adb_id) + 1 FROM tm_adress_basis "
Set rs_adb_id = New ADODB.Recordset
rs_adb_id.Open SQLStatement2, objConnectionDB
new_adb_id = rs_adb_id.Fields(0)
rs_adb_id.Close
SQLStatement3 = "INSERT INTO " + ("tm_partei") + _
" (pa_id, pa_pers_vorname," & _
"pa_pers_name)" + _
" VALUES('" + CStr(new_pa_id) + _
"','" + Kontakt.FirstName + "'," & _
"'" + Kontakt.LastName + "')"
Set rs_SQL_3 = New ADODB.Recordset
rs_SQL_3.Open SQLStatement3, objConnectionDB
rs_SQL_3.Close
SQLStatement4 = "INSERT INTO " + ("tm_adress_basis") + _
" (adb_id, pa_id, adt_id," & _
"adb_strasse, adb_plz_str," & _
"adb_ort, adb_tel1, adb_fax," & _
"adb_email)" + _
" VALUES('" + CStr(new_adb_id) + _
"', '" + CStr(new_pa_id) + "','" _
+ CStr(1) + "','" + _
Kontakt.HomeAddressStreet + "','" _
+ Kontakt.HomeAddressPostalCode + _
"','" + Kontakt.HomeAddressCity + _
"'," + _
"'" + Kontakt.HomeTelephoneNumber _
+ "','" + Kontakt.HomeFaxNumber + _
"','" + Kontakt.Email1Address + _
"')"
Set rs_SQL_4 = New ADODB.Recordset
rs_SQL_4.Open SQLStatement3, objConnectionDB
rs_SQL_4.Close
SQLStatement5 = "INSERT INTO " + ("tx_partei_relation") + _
" (pa_id_from, pa_id_to," & _
"reltyp_id)" + _
" VALUES('" + CStr(new_pa_id) + _
"','" + CStr(2) + "','" + CStr(3) _
+ "')"
Set rs_SQL_5 = New ADODB.Recordset
rs_SQL_5.Open SQLStatement3, objConnectionDB
rs_SQL_5.Close
objConnectionDB.CommitTrans
Rollback:
objConnectionDB.RollbackTrans
End Sub |