Extreme Veteran
Beiträge: 566
| Hallo,
Sprechen wir von Makro oder VBA?
Per Makro:
Du musst die SQL-Anweisung, am besten aus der SQL-Ansicht der Abfrage, in das Makro kopieren, am besten ohne Zeilenumbrüche:
Aktion: AusführenSQL
SQL-Anweisung: INSERT INTO tbl_9500_export_word ( Sort, FeldIndex, wert ) SELECT abfr_4000_mitgl_liste.Beschreibung AS sort, 1 AS FeldIndex, abfr_4000_mitgl_liste.[01_Gesch] AS wert FROM abfr_4000_mitgl_liste WHERE abfr_4000_mitgl_liste.[01_Gesch]>""
Das Argument darf max. 256 Zeichen lang sein. Da wie bereits erwähnt ORDER BY beim INSERT wirkungslos ist, kannst du es weggelassen.
Per VBA:
Die Prozedur sollte so aussehen:
Dim Db As DAO.Database
Set Db = CurrentDb
Db.Execute "INSERT INTO tbl_9500_export_word ( Sort, FeldIndex, wert ) " _
" SELECT abfr_4000_mitgl_liste.Beschreibung AS sort, 1 AS FeldIndex, abfr_4000_mitgl_liste.[01_Gesch] AS wert " _
" FROM abfr_4000_mitgl_liste " _
" WHERE abfr_4000_mitgl_liste.[01_Gesch]>'';", dbFailOnError
Set Db = Nothing
Die .Execute-Methode des Datenbankobjekts gibt keine Warnmeldungen aus, insofern kannst du dir das Aus- und Einschalten der Warnungen sparen.
Bitte beachten: in der VBA-Variante muss man die Anführungszeichen in der WHERE-Bedingung entweder verdoppeln oder durch einfache Hochkommas ersetzen. Ich habe im Beispiel letzteres gemacht.
----- Gruss - Peter |