wer kann helfen? Datenbankbenutzer Access 2003 Anfänger
in einem Formular habe ich under anderem 2 Datenbankfelder mit Datumseingaben
diese möchte ich miteinander vergleichen und dann einen Wert ausgeben.
1.Datenbankfeld (neuer Besuch)
2.Datenbankfeld (aktuelles Datum)
Frage könnte so ausehen
wenn (neuer Besuch) kleiner als (aktuelles Datum) dann gib den wert 10 aus wenn nicht dann 20 der Wert kann ein Zahlenwert oder auch Buchstaben sein
dieser Wert wird dann in einer verknüpften Datei mit einem geographischen INFO System in eine Farbkennzeichung für Kunden rot oder grün dargestellt
Frage: wie schaut die Formel aus?, wo wird sie eingetragen, wie schaut das Ausgabefeld aus das den Wert enthält
für Antworten Besten Dank
Hallo,
erstmal willkommen im Forum!
Für die Lösung deines Problems gibt es grundsätzlich verschiedene Lösungswege - je nach dem wie dein Tabellenkonzept dahinter aussieht.
Hier ein Lösungsweg, nach meiner Interpretation deiner Angaben:
In aktuellen Fall wirst du ein Formularfeld (Textbox) verwenden in das die Ergebnisse '10' oder '20' geschrieben werden sollen.
Um die beschriebene Übereinstimmung zu prüfen benötigst du das Feld [aktuelles Datum] NICHT, das aktuelle Tagesdatum lässt sich zu jedem beliebigen Zeitpunkt aktuell erfragen.
Das Feld [aktuelles Datum] kann aber in der Tabelle sehr wohl benötigt werden - ich spreche daher NUR vom Formular.
In der Annahme dass dein Ergebnisfeld 'txtErgebnis' benannt sein KÖNNTE folgenden Code ins Ereignis 'Nach Aktualisierung' des Formularfeldes 'txtNeuerBesuch':
(Formularentwurf ----> Feld txtNeuerBesuch ---> Ereignisse ---> Nach Aktualisierung ----> Auswählen von [Ereignisprozedur] im Dropdown --- klicken auf die 3 Punkte ---> du befindest dich nun im VB-Editor, Prozedur des Ereignisses AfterUpdate:
Folgenden Code zwischen
Private Sub ... und
End Sub KOPIERE nun bitte dahin
Private Sub txtNeuerBesuch_AfterUpdate()
If Me.txtNeuerBesuch > Date Then
Me!txtErgebnis = "10"
Else
Me!txtErgebnis = "20"
End If
End Sub
Wenn das Feld 'txtErgebnis' an ein Tabellenfeld gebunden ist, wird der Ergebniseintrag automatisch auch in die Tabelle übernommen.
Wechselst du nun in die Formularansicht und gibst ein Datum in das Feld txtNeuerBesuch ein und verlässt dieses Feld oder drückst ENTER,
dann wird deine Eingabe ausgewertet und das Ergebnis ins Fels txtErgebnis geschrieben.
Zitatdieser Wert wird dann in einer verknüpften Datei mit einem geographischen INFO System in eine Farbkennzeichung für Kunden rot oder grün dargestellt
...und welche DATEI ist das? Und wie bekommst du die Daten dorthin?
HTH
Hallo Access Guru, vielen Dank für deinen Lösungsvorschlag. Sobald ich etwas Luft habe mache ich mich an das umsetzen deiner Lösung
zu Zitat: die Datei ist eine Datenbank die von Map&Market erzeugt wurde die ich dann mit meine Kundendatenbank verknüpft habe.
melde mich wieder sobald ich es gelöst habe oder nicht mehr weiter weiß.
mfg Heinrich
Hallo Access Guru, hab es schon befürchtet ich bekomme es nicht hin, vieleicht habe ich mich auch falsch ausgedrückt.
Hier nochmal meine Aufgabenstellung etwas genauer
Ich habe eine Kundendatenbank in der neben anderen Feldern folgende sind
die Bezeichnung der Felder im Formular und Datenbank sind identisch
Letz-Bes Datum/Uhrzeit = wann ist der Kunde zuletzt besucht worden
Takt Zahl = Anzahl der Tage wann der Kunde wieder besucht werden soll
NB am Datum: Datum/Uhrzeit = neuer Besuch am,hier steht das Ergebniss aus Letz-Bes + Takt
Mapp text = hier sollte das Ergebnis stehen aus dem Vergleich "Aktueller Tag" und "NB am Datum:"
das Ergebnis kann eine Zahlenwert oder Wahr oder unwahr oder grün oder rot sein
Aktueller Tag: Datum/Uhrzeit wurde von mir nur angelegt zum Vergleichen, ist aber anscheinend nicht nötig?
der Vergleich müsste so aussehen
wenn (NB am Datum:) kleiner als (Aktueller Tag:) dann gib das Ergebnis in (Mapp) rot/wahr/oder zahl 10 aus
wenn nicht dann: grün/unwahr oder Zahl 20 jedefalls ein unterschiedliches Ergebnis
Diese Werte werden dann in die verknüpfte Datenbank von Mapp&Market übernommen, in der meine Kunden visuell dargestellt
sind, würde dann heissen grün alles i.0 noch nicht besuchen rot wird wieder Zeit den Kunden zu besuchen.
vielen Dank vorab für mögliche Antworten, bitte bedenkt in der Eingabe von Codes bin ich ein absoluter Anfänger
bitte genau erklären was zu tun ist.
Hallo,
Zitatder Vergleich müsste so aussehen
Gut, dann werde ich den Code so umstellen, dass deine Feldbezeichnungen berücksichtigt werden.
Allerdings bleibt noch die Frage, wie kommt der Eintrag ins Feld [NB am Datum]
Ich kann nicht jedes mögliche Ereignis berücksichtigen daher nehme ich jenes, das ausgelöst wird, wenn das Datum eingeben wird und das Feld verlassen wird.
(Formularentwurf ----> Feld NB am Datum ---> Ereignisse ---> Nach Aktualisierung ----> Auswählen von [Ereignisprozedur] im Dropdown --- klick rechts davon auf die 3 Punkte ---> du befindest dich nun im VB-Editor, Prozedur des Ereignisses AfterUpdate:
Folgenden Code zwischen Private Sub ... und End Sub KOPIEREN
(Private Sub ... und End Sub stehen bereits da, daher NICHT mitkopieren)
Private Sub NB_am_Datum_AfterUpdate()
If Me![NB am Datum] > Date Then
Me!Mapp = "grün"
Else
Me!Mapp = "rot"
End If
End Sub
Ich empfehle dir
DRINGEND die Feldnamen in deiner Tabelle und in deinem Formular zu ändern.
Keine
LEERZEICHEN, SONDERZEICHEN und/oder
UMLAUTE in Feldnamen,
KEINE reservierten Wörter als Feldnamen verwenden.
Wenn du die Feldnamen änderst musst du den Code oben natürlich an die neuen, geänderten Namen anpassen.
Wenn du obige Anleitung langsam und Schritt für Schritt abarbeitest sollte es keine Problem sein das Ding in Gang zu kriegen.
Ich kann es nicht einfacher gestalten, sorry -- aber ein paar Grundlegende Kenntnisse in der Bedienung vonn Access im Entwurfsmodus MUSS ich voraussetzen können.
Wenn's gar nicht geht, dann lade eine gezippte abgespeckte Version deiner DB hoch (Inhalt die betroffene Tabelle mit ein paar Beispieldaten und das betroffene Formular)
Vor dem Zippen die Datenbank über Extras .... Datenbank Dienstprogramme ... Komprimieren und Reparieren vorbereiten!
HTH
Danke Access Guru, Stand ein bisschen auf dem Schlauch, Feldnamen gändert. Manchmal dauerts halt ein bisschen, aber du hast ja viel Geduld. Bis zur nächsten Frage
Heinrich