Löschabfrage > Fehler 3061

09/11/2008 - 18:42 von Winfried Sonntag | Report spam
Hi all,

ich muß Daten in eine Archiv-DB auslagern, die alten will ich löschen
lassen. Wenn ich die untenstehende Abfrage im Editor ausführen möchte,
kommt eine Parameter Abfrage mit der Überschrift:
AuftràgeWerkstatt.Datum. Geb ich hier das Datum ein <#01.01.2002#,
wird mir die richtige Anzahl Datensàtze ausgegeben und auch gelöscht.

"DELETE [Positionen Werkstatt].[Positions ID], [Positionen Werkstatt].[Positions Nr], " & _
" [Positionen Werkstatt].[Angebot ID], [Positionen Werkstatt].Stückzahl, " & _
" [Positionen Werkstatt].Stückpreis, [Positionen Werkstatt].EinzelpreisGes, " & _
" [Positionen Werkstatt].TatEinzelpreisGes, [Positionen Werkstatt].[Produkt ID], " & _
" [Positionen Werkstatt].Artikel, [Positionen Werkstatt].Einkaufspreis, " & _
" [Positionen Werkstatt].[Serien Nr], [Positionen Werkstatt].[Liefer Nr], " & _
" [Positionen Werkstatt].[Rechnung Nr], [Positionen Werkstatt].Einzelrabatt, " & _
" [Positionen Werkstatt].[Abzuziehende Einheiten], [Positionen Werkstatt].intKonto, " & _
" [Positionen Werkstatt].extKonto, [Positionen Werkstatt].EURO_Abrechnung, " & _
" [Positionen Werkstatt].MWSTJaNein FROM [Positionen Werkstatt] WHERE " & _
" ((([Positionen Werkstatt].[Angebot ID])=" & ingAngebotsID & ") and (([AuftràgeWerkstatt].[Datum]) <#1/1/2002# ));"

Wie krieg ich den o.g. SQL-String per VBA ausgeführt?

Bitte keine Anmerkungen zu den Leerzeichen oder Umlauten in den Feld-
oder Tabellennamen. Ich hab die DB übernommen, bin grade am ausmisten,
umbenennen. Das was ihr da oben seht, ist harmlos zu dem, was
ansonsten noch so vorhanden ist. ;-(

Ach ja, Access 2003 incl. SP3 + Patch, die DB ist noch im A2K-Format.
Vielen Dank schon im voraus.

Servus
Winfried
Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
KnowHow.mdb: http://www.freeaccess.de/knowhow.asp
Access-FAQ: http://www.donkarl.com/AccessFAQ.htm
Access-Stammtisch: http://www.access-muenchen.de
 

Lesen sie die antworten

#1 Thomas Möller
09/11/2008 - 19:02 | Warnen spam
Hallo Winfried,

Winfried Sonntag schrieb:
ich muß Daten in eine Archiv-DB auslagern, die alten will ich löschen
lassen. Wenn ich die untenstehende Abfrage im Editor ausführen möchte,
kommt eine Parameter Abfrage mit der Überschrift:
AuftràgeWerkstatt.Datum. Geb ich hier das Datum ein <#01.01.2002#,
wird mir die richtige Anzahl Datensàtze ausgegeben und auch gelöscht.

"DELETE [Positionen Werkstatt].[Positions ID], [Positionen Werkstatt].[Positions Nr], " & _
" [Positionen Werkstatt].[Angebot ID], [Positionen Werkstatt].Stückzahl, " & _
" [Positionen Werkstatt].Stückpreis, [Positionen Werkstatt].EinzelpreisGes, " & _
" [Positionen Werkstatt].TatEinzelpreisGes, [Positionen Werkstatt].[Produkt ID], " & _
" [Positionen Werkstatt].Artikel, [Positionen Werkstatt].Einkaufspreis, " & _
" [Positionen Werkstatt].[Serien Nr], [Positionen Werkstatt].[Liefer Nr], " & _
" [Positionen Werkstatt].[Rechnung Nr], [Positionen Werkstatt].Einzelrabatt, " & _
" [Positionen Werkstatt].[Abzuziehende Einheiten], [Positionen Werkstatt].intKonto, " & _
" [Positionen Werkstatt].extKonto, [Positionen Werkstatt].EURO_Abrechnung, " & _
" [Positionen Werkstatt].MWSTJaNein FROM [Positionen Werkstatt] WHERE " & _
" ((([Positionen Werkstatt].[Angebot ID])=" & ingAngebotsID & ") and (([AuftràgeWerkstatt].[Datum]) <#1/1/2002# ));"

Wie krieg ich den o.g. SQL-String per VBA ausgeführt?



Du kannst den SQL-String extrem kürzen. Du verzichtest auf das
Ausschreiben der Feldnamen und schreibst einfach
"Delete * FROM Tabelle WHERE Kriterium". In diesem Fall also:

"DELETE * " & _
"FROM [Positionen Werkstatt] " & _
"WHERE ((([Positionen Werkstatt].[Angebot ID])=" & ingAngebotsID & _
") and (([AuftràgeWerkstatt].[Datum]) <#1/1/2002# ));"


An dieser Stelle wird sichtbar, dass das Feld "Datum" (diesen Feldnamen
wirst Du bestimmt auch bald àndern ;-) ) aus der Tabelle
"AuftràgeWerkstatt" stammt. Diese Tabelle steht zur Tabelle "Positionen
Werkstatt" in keiner Beziehung. Fehlt da ein Join?


HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen