Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

wenn dann Bedingung?

Begonnen von heinrich-enrico, Januar 23, 2011, 14:13:49

⏪ vorheriges - nächstes ⏩

heinrich-enrico

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

database

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

heinrich-enrico

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

heinrich-enrico

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.



database

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

heinrich-enrico

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