Hallo ACCESS-Experten,
mein Problem in Access 2003 (wahrscheinlich nicht versionsabhängig):
Ich arbeite eine SQL-Leseschleife ab und muss zu jedem einzelnen Satz ggf. mehrere Sätze in eine andere Tabelle schreiben. Probematisch ist, dass das SQL des INSERT die Abarbeitung der Leseschleife stört. Es wird immer nur der erste Satz verarbeitet. Ausschnitt aus dem Programm (ich habe das vereinfacht - im Original gibt es deutlich mehr Funktionen, die allerdings nichts mit meinem Problem zu tun haben):
Private Sub PrepareNames()
Dim SQL As String
Dim db As Database
Dim RS As Recordset
' Ausschalten des Bestätigungsdialoges
Application.SetOption "confirm action queries", 0
Set db = CurrentDb
Set RS = db.OpenRecordset("Bestand")
On Error GoTo 0
RS.MoveFirst
While Not RS.EOF
BuildNames RS!ID, \_
RS!NameVN, \_
RS!VornameVN, \_
RS!NameVP, \_
RS!VornameVP
Wend
RS.Close
End Sub
Private Sub BuildNames(ID As Long, \_
NameVN As String, \_
VornameVN As String, \_
NameVP As String, \_
VornameVP As String)
Dim SQL As String
Dim db As Database
Set db = CurrentDb
' Aufbau des Namens-Index
If Len(NameVN) \> 0 Then
SQL = "INSERT INTO SuchName " & \_
"(Satznummer, Suchbegriff, Rolle) VALUES(" & \_
Str(ID) & ", """ & LTrim(RTrim(NameVN)) & """, """ & \_
"VN"")"
DoCmd.RunSQL (SQL)
End If
If Len(VornameVN) \> 0 Then
SQL = "INSERT INTO SuchVorname " & \_
"(Satznummer, Suchbegriff, Rolle) VALUES(" & \_
Str(ID) & ", """ & LTrim(RTrim(VornameVN)) & """, """ & \_
"VN"")"
DoCmd.RunSQL (SQL)
End If
If Len(NameVP) \> 0 Then
SQL = "INSERT INTO SuchName " & \_
"(Satznummer, Suchbegriff, Rolle) VALUES(" & \_
Str(ID) & ", """ & LTrim(RTrim(NameVP)) & """, """ & \_
"VP"")"
DoCmd.RunSQL (SQL)
End If
If Len(VornameVP) \> 0 Then
SQL = "INSERT INTO SuchVorname " & \_
"(Satznummer, Suchbegriff, Rolle) VALUES(" & \_
Str(ID) & ", """ & LTrim(RTrim(VornameVP)) & """, """ & \_
"VP"")"
DoCmd.RunSQL (SQL)
End If
End Sub
Wie bekomme ich es hin, in einer SQL-Leseschleife einen bzw. mehrere SQL-Inserts auszuführen, ohne dass die Leseschleife zurückgesetzt wird?
Vielen Dank im Voraus
ThoK