Hi, ich habe das Problem, dass ich beim Versuch, in eine ODBC- verknüpfte Tabelle (SQLite) mittels insert- Befehl zu füllen, eine Fehlermeldung "Systemressourcen nicht ausreichend" bekomme.
Da habe ich in meiner Einfalt gedacht, ich erzeuge eine interne Tabelle mit gewünschtem Inhalt und schiebe diese dann datensatzweise in die Tabelle.
Auf diese Weise bekomme ich aber den Fehler 3155. Ich vermute, dass es mit den Constraints in der Ziel- Datenbank zusammenhängt. Allerdings verrät mir das System nicht mehr, welche Constraints (wenn es überhaupt daran liegt) das Problem sind. Die lapidare Fehlermeldung "kann Datensatz nicht in verknüpfte ODBC- Tabelle einfügen" ist da wenig zielführend.
der wesentliche Code sieht wie folgt aus:
Private Function copy_cell(rownum As Integer, rsZiel As Recordset, rsQuelle As Recordset, Index As Integer) As String
Dim err_txt As String
On Error GoTo ErrorMessage:
copy_cell = ""
rsZiel.Fields(Index+1) = pcrsQuelle.Fields(Index)
Exit Function
ErrorMessage:
err_txt = "Zeile " & Str(rownum )
err_txt = err_txt & " [" & rsZiel.Fields(Index +1).Name & "] "
err_txt = err_txt & "<" & Err.Description & ">"
copy_cell = err_txt
Resume Next
End Function
private sub copy_table(TabelleZiel As String, TabelleQuelle As String)
Set rsZiel = dbx.OpenRecordset(TabelleZiel)
Set rsQuelle = dbx.OpenRecordset(TabelleQuelle)
zahl = 0
Do While Not rsQuelle.EOF
zahl = zahl + 1
rsZiel.AddNew
rsZiel.Fields(0) = zahl 'Primärschlüssel
'Spaltenweise Datensatz von Quelle nach Ziel kopieren
'ist im konkreten etwas komplizierter, da die Felder vielleicht nicht in der gleichen Reihenfolge vorliegen, aber das habe ich schon abgefangen
For Index = 0 To rsZiel.Fields.Count - 1
'in s steht was drin, wenn dabei ein Fehler aufgetreten wird (err.description ist dummerweise leer)
'wird im Original datensatzweise als Messagebox angezeigt
s = copy_cell(zahl, rsZiel, rsQuelle, Index)
Next Index
rsZiel.Update 'genau hier kommt die Fehlermeldung
rsQuelle.MoveNext
loop
Ich habe den Originalquelltext etwas vereinfacht, so dass das Wesentliche besser erkennbar ist. Aber ich vermute, lauffähig ist es so nicht. Ich hoffe, es macht sich dennoch jemand die Mühe :)
|