Anfügefrage Hilfe!

Hallo, ich habe einige Probleme mit der Anfügeabfrage. Und zwar soll wird die Anfügeabfrage per VBA gestartet CurrentDb.Execute „NAME“.
Die Anfügeabfrage soll alle IDs(Schlüsselfeld) der Personen(Personetabelle) bei dem ein Datum(steht in einem Textfeld) kleiner wie das Dienstendedatum ist(steht in der Personentabelle), in eine neue Tabelle einfügen. In der neuen Tabelle stehen dann nur die IDs der aktuellen(die im Dienst sind) Personen drinnen.

Ich habe dazu eine Abfrage erstellt, bei das Kriterium so aussieht:
Feld: PersonenID Dienstende
Tabelle: tbl_Pers tbl_Pers
Sortierung:
Anfügen: PersID
Kriterien: >[Forms]![frm_NJ]![txt_NJ]

Brauche Dringend Hilfe

Hallo SEAS,

ich habe einige Probleme mit der Anfügeabfrage. Und
zwar soll wird die Anfügeabfrage per VBA gestartet
CurrentDb.Execute „NAME“.

hmm, ich starte so was immer mit:
docmd.openquery „Abfragename“

Die Anfügeabfrage soll alle IDs(Schlüsselfeld) der
Personen(Personetabelle) bei dem ein Datum(steht in einem
Textfeld)

Datum in Textfeld? ok, wenn’s einen Sinn macht…ich denke mal nicht. Außerdem wirst du ggf. Probleme bekommen, wenn die IDs schon vorhanden sind.

kleiner wie das Dienstendedatum ist(steht in der
Personentabelle),

Äpfel mit Birnen vergleichen geht auch in Access nicht.
Wenn beide Werte ein Datum sind, funktioniert auch der Vergleich!

in eine neue Tabelle einfügen. In der neuen
Tabelle stehen dann nur die IDs der aktuellen(die im Dienst
sind) Personen drinnen.

nö, du hast eine Anfügeabfrage die immer neue Datensätze hinzufügt!
Du solltest die Zieltabelle vorher leeren.

Ich habe dazu eine Abfrage erstellt, bei das Kriterium so
aussieht:

mit PRE - Tags sieht das Ganze besser aus:

> Feld: PersonenID Dienstende  
> Tabelle: tbl\_Pers tbl\_Pers  
> Sortierung:  
> Anfügen: PersID  
> Kriterien: \>[Forms]![frm\_NJ]![txt\_NJ]

und was steht im Feld [Forms]![frm_NJ]![txt_NJ]? ein Datum? Dann vergiss es, das funktioniert nie.

Du kannst natürlich für den Vergleich beide Werte in das Datumsformat konvertieren. Besser wäre allerdings, die Felder generell als Datumsfelder zu deklarieren.

Ich rate mal: kommen die Daten aus einer Exceltabelle?

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Nein, die Daten kommen aus keiner Exceltabelle.

Ich muss einfach nur die aktuellen Datensaätze(Personen die jetzt im Dienst sind) von einer Tabelle in die andere Tabelle kopieren. In der Zieltabelle soll einfach nur die IDs der „aktuellen“ Personen drinstehen. Dazu wird das Dienstendedatum mit dem Datum verglichen, dass in einem Textfeld steht. Das Textfeld ist in den Eigenschaften beim Punkt Format als Datum,kurz deklariert.

Was ist der Fehler?

mfg

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Baue deinen Code so um:
Erzeuge bspw. einen Button mit dem Namen: Daten_Anfügen und bearbeite das Clickereignis nach.

Private Sub Daten_Anfügen_Click()
Dim SQL as String
Dim strDatum as String
'wenn du mit einer MDB arbeitest verwende diese Zeile sonst
'den anderen Befehl
strDatum="#" & format(Forms!frm_NJ!txt_NJ,„mm/dd/yyy“) & „#“
'wenn du mit einer ADP arbeitest verwende diese Zeile sonst
‚den anderen Befehl
‚strDatum="‘" & Forms!frm_NJ!txt_NJ & "‘"

SQL=" Insert into NeueTabelle (PersonenID) Select PersonenID from tbl_Pers where Dienstende [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo SEAS,

Nein, die Daten kommen aus keiner Exceltabelle.

ok, dann lag ich mit meiner Vermutung falsch.

Ich muss einfach nur die aktuellen Datensaätze(Personen die
jetzt im Dienst sind) von einer Tabelle in die andere Tabelle
kopieren.

das habe ich verstanden

In der Zieltabelle soll einfach nur die IDs der
„aktuellen“ Personen drinstehen.

also, wie vorher schon erwähnt, erst mal alles löschen

Dazu wird das Dienstendedatum
mit dem Datum verglichen, dass in einem Textfeld steht.

ja, und hier liegt der Fehler

Das Textfeld ist in den Eigenschaften beim Punkt Format als
Datum,kurz deklariert.

Was ist der Fehler?

dein Datenbankfeld mit deinem „Datum“ ist ein Textfeld. D.h. der Inhalt (also dein „Datum“) wird nicht als solches erkannt und kann für einen Vergleich nicht genutzt werden.

Du mußt in der Tabelle den Feldtyp auf DATUM ändern.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)