Guten Tag
Ich habe ein Formular gemacht, in dem ich über eine Abfrage Daten eingebe, jeden Tag gibt es einen neuen Datensatz, der bereits automatisch das aktuelle Datum eingetragen hat.
Die bereits eingegebenen Daten sehe ich auch auf demselben Formular in einem Listenfeld.
Sehe ich aber einen Fehler oder ist etwas nicht eingegeben, kann ich nicht mehr auf den entsprechenden Datensatz zugreifen, nicht einmal mehr auf den des vorigen Tages, die Fehlermeldung: Sie können nicht zum angegebenen Datensatz springen erscheint.
Mit der Funktion "DoCmd.GoToRecord , , acLast" in der Ereignisprozedur komme ich nicht hin, es gibt die obige Fehlermeldung und mit den Cursortasten auf /ab erscheint er auch nicht im Eingabeteil, so dass ich ihn korrigieren kann.
Gibt es eine Funktion ähnlich "Gehe zum letzten Datensatz" --> gehe zum zweitletzten Datensatz so etwa "DoCmd.GoToRecord , , acLast-1" ?
Danke für Eure Mithilfe
Vigor
Hallo,
wie heißt die SQl der Abfrage?
Liefert die als solche Datensätze?
Hallo
Ich habe alles mit den vorhandenen Mitteln des Access 2002 gemacht, also nirgends selbst Code geschrieben.
Wo würde ich den SQL code finden?
Gruss
Vigor
Hallo,
SQL-Strings sind auch kein (VBA)-Code..
Schau mal zunächst in der Eigenschaft "Datenherkunft" des Forms nach.
Wenn dort ein "SQL-String" (ähnlich: Select Tabelle1.Feld1, Tabelle1.Feld2 from Tabelle1) steht, dann poste den (mit Copy&Paste).
Wenn dort ein Abfragename steht, dann geh in das Datenbankfenster und öffne von dort diese Abfrage in der Entwurfsansicht. Im Fenster Ansicht/SQL-Ansicht findest Du den SQL-String der Abfrage. Poste dann diesen.
Weiterhin sind die Eigenschaften des Forms unter Eigenschaften/Daten von Interesse...
Hallo
Ich habe den String gesucht und auch gefunden (Achtung Chemie) Ist eine Abfrage
SELECT ARA_NK.[NK Datum], ARA_NK.[NK NPDOC mg/L], ARA_NK.[NK Extinktion 400 nm], ARA_NK.[NK Ammonium mg/L NH4-N], ARA_NK.[NK Nitrit-N mg/L], ARA_NK.[NK Nitrat-N mg/L], ARA_NK.[NK Phosphat-P mg/L], ARA_NK.[NK Gesamt-N mg/L], ARA_NK.[NK org-N], ARA_NK.[NK Cu mg/L], ARA_NK.[NK Ni mg/L], ARA_NK.[NK Cr mg/L], ARA_NK.[NK Bemerkungen]
FROM ARA_NK
WHERE (((ARA_NK.[NK Datum])=Date()) AND ((([ARA_NK].[NK Datum])>Date()-15)<"actDatum"));
Angehängt ist noch ein Printscreen der Eigenschaften des Formulares.
Besten Dank schon mal für Deine Mühe
Gruss
Vigor
[Anhang gelöscht durch Administrator]
Hallo,
die "Where-Condition" dieser Abfrage kann so nicht stimmen..
Was soll darin ...<"actDatum"... bedeuten? Ein Datum kann nicht mit einem String verglichen werden, bzw. es kann nicht auf eine "Variable" mit dieser Methode zugegriffen werden.
Vermutlich ist im Abfrageentwurf ein Kriterium an die falsche Stelle gesetzt oder überhaupt falsch benutzt worden .
(btw: es wäre vorteilhaft, bei den Benamsungen dringend darauf zu achten, keine Leer- oder Sonderzeichen zu benutzen)
Hallo
Danke für den Hinweis, ich habe die Abfrage noch einmal angeschaut und dann ausserhalb des sichtbaren Fensters noch einen Eintrag gefunden, woher der kommt weiss ich aber nicht.
Der richtige where String ist:
FROM ARA_NK
WHERE (((ARA_NK.[NK Datum])=Date()));
Allerdings auch nach der Korrektur ist das Problem noch unverändert.
Gruss
Vigor
Hallo,
die Abfrage liefert aufgrund dieser Where-Condition nur den oder die DS mit dem Datum von "Heute", so dass deswegen im Formular auch keine anderen angezeigt/bearbeitet werden können.
Um bestimmte andere oder alle DS anzuzeigen, muß der Datenherkunft des Form eine entspr. andere Abfrage , bzw. direkt die Tabelle zugewiesen werden.
Guten Morgen
Ich habe die Where-Bedingung mal abgeändert und schaue nun was alles beeinflusst wird, die ersten Abfragen sind mal ganz gut herausgekommen.
Where ">Datum()-10"
Danke für die Hilfe
Vigor