Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Vergleich Listenfeld mit Textfeld

Begonnen von AKKI1956, September 10, 2024, 16:19:29

⏪ vorheriges - nächstes ⏩

AKKI1956

Hallo Gemeinde,
Ich habe folgendes Problem

Mit
DoCmd.OpenForm "frm_android_Mail_Anmeldung"

If Forms![frm_android_Mail_Anmeldung]![bcc] = Forms![Kontaktdetails]!["E-mail Address"] Then

Me.Anmeldung_per_Mail_bestätigt = True
End If

Mit dem Code habe ich versucht 2 Felder zu vergleichen und wenn es stimmt, dann soll das Kontrollkästen (Anmeldung_per_Mail_bestätigt) auf Wahr gestellt werden.

Es kommt aber leider der Fehler 2465 kann "E-Mail Adress" nicht finden.
Ich habe den Namen kopiert, leider kein Erfolg.
Beide Formulare sind auf.
Beide Formulare habe den [ID] als Index.

Kann  mir jemand helfen

Gruß
Henry

Kann ich auch

MzKlMu

Hallo,
die AZ haben da nichts zu suchen.

= Forms![Kontaktdetails]![E-mail Address] ThenOb das logisch stimmt, kann ich nicht sagen.

PS:
Tu Dir einen Gefallen und vermeide unbedingt Feldnamen mit Sonder und Leerzeichen.

Statt "E-mail Address" einfach EmailAdress.

Mit diesen Leer und Sonderzeichen bist Du gezwungen solche Feldnamen immer in ein [] Klammerpaar einzuschließen.
Gruß Klaus

AKKI1956

Hallo Klaus,
Danke für die Antwort und schon geändert,
Wie kann ich denn 2 Felder miteinander vergleichen.
was muss ich in vba schreiben,
In Excel weis ich es
Wenn A1=B3 dann x4
Aber in VBA Access ????

Gruß
Henry

PhilS

Zitat von: AKKI1956 am September 10, 2024, 19:45:44Wie kann ich denn 2 Felder miteinander vergleichen.

was muss ich in vba schreiben,
Mit der Korrektur von MzKlMu sieht dein Ansatz eigentlich schon brauchbar aus.

Voraussetzung ist natürlich, dass die beiden Formulare (frm_android_Mail_Anmeldung und Kontaktdetails) auch geöffnet sind. Das erstere öffnest du ja in deinem Code, bei dem zweiten ist das für uns hier nicht erkennbar.

Bei einem Listenfeld ist außerdem noch zu beachten, dass es mehrere Spalten haben kann. Wenn der Wert mit dem du vergleichen willst, in der gebundenen (meist ersten) Spalte steht, sollte dein Code eigentlich funktionieren. Wenn du mit einer anderen Spalte vergleichen willst, verwendet die Column-Eigenschaft.

Angenommen [E-mail Address] ist die Listbox:
If Forms![frm_android_Mail_Anmeldung]![bcc] = Forms![Kontaktdetails]![E-mail Address].Column(X) Then
Wobei das X durch den Index der richtigen Spalte zu ersetzen ist.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MzKlMu

Hallo,
bitte das Vorhaben mal genauer beschreiben.
Im Titel hast du auch ein Listenfeld erwähnt.
Ein Listenfeld kann etwas anderes anzeigen als das was du vergleichen willst.
Gruß Klaus

Knobbi38

Hallo Akki,

ich kann mich Klaus nur anschließen. Normalerweise würde man eine Eingabe mit einem gespeicherten Wert vergleichen. Wieso sind hier bei einer Anmeldung überhaupt 2 Formulare beteiligt? Das ist erstmal so nicht nachvollziehbar.

Gruß Knobbi38

AKKI1956

#6
Moin,
ich hatte was geschrieben.
es ist nicht da

ich versuche es nochmal

gruß
henry

AKKI1956

Hallo Klaus und Knobbi38,
da es aus welchen Gründen auch immer meine Information nicht funktioniert versuche ich es nocheinmal.

Ich bin ehrenamtlich tätig und bringe älteren Menschen den Umgang mit dem Handy bei.
Da nicht jeder einfach kommen kann, haben wir die Daten in eine Excelliste aufgenommen.
Die Excelliste besteht aus Spalten zb. mit Handytype, Auswärtige Teilnehmer und und und.
Da es immer eine längere Zeit braucht mit einer Exceltabelle die Menschen auszusortieren die an der Schulung teilnehmen können, habe ich mir gedacht ich erstellen eine DB die auch mit Outlook zusammenarbeitet.

Ich habe dann die Access Vorlage Kontakt genommen und an unsere Bedürfnisse angepasst.
Dann sollte aus Access heraus auch eine Mail versendet werden können.
Dr. Google hat mir dann eine freie DB zum Download angezeigt.
Diese beiden DB´s habe ich zusammengeführt.

Ich kann jetzt die Teilnehmer in'[frm_android_Mail_Anmeldung]![bcc]' auswählen und an Outlook übergeben. Das funktioniert sehr gut.

Nun soll verglichen werden zwischen '[frm_android_Mail_Anmeldung]![bcc]'und  '[Kontaktdetails]![E-mail Address]', damit ich sehen kann ob eine Mail abgesendet wurden.
Bei Gleichheit soll das Kontrollkästen 'Me.Anmeldung_per_Mail_bestätigt = True' im Formular 'Kontaktdetails' auf Ja gesetzt werden.

Ich hoffe ich bringe etwas Licht ins Dunkle.

Ich den Kopf schütteln, ich bin nicht so bewandert in ACCESS VBA.

Da ich viel Arbeit reingesteckt habe, möchte ich die DB nicht Unfertig veröffentlichen.
Wenn sie läuft kann darüber nachgedacht werden, da ich sehr viel Hilfe von Außen bekommen habe.

Gruß
Henry


Knobbi38

#8
Hallo Henry,

diese Info macht einiges verständlicher. Ob das Erkennen einer gesendeten Mail in der Form wirklich so ideal ist, mag ich bezweifeln, aber ich kenne natürlich nicht die Details des Kontaktdetails-Formulars.

Nur so als Hinweis: man kann auch Teile von Outlook als externe Tabelle einbinden, so z.B. die "gesendeten Elemente" oder man fragt Outlook direkt per Automation ab.

Ich halte es immer für besser, Daten dort abzurufen, wo sie entstehen oder gespeichert werden, als über irgendwelche Steuerelemente auszulesen. So etwas kann früher oder später sehr viel Probleme verursachen, da Abhängigkeiten geschaffen werden, die von Außen nicht sofort erkennbar sind. Die "Pflege" einer Anwendung wird durch so etwas immens erschwert und für fremde Programmierer dann oft unmöglich gemacht.

Grüße Ulrich