Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: I985 am Januar 15, 2016, 09:44:51

Titel: Verschiedene Felder per Variable durchsuchen
Beitrag von: I985 am Januar 15, 2016, 09:44:51
Hallo zusammen,

ich benötige bitte noch einmal Hilfe... Die Suche und Donkarl konnten bisher nur bedingt helfen.

Ich möchte gerne per Schleife Email-Adressen aus einer Tabelle suchen und zu einer neuen Outlook-Mail hinzufügen. In der Tabelle gibt es ein Feld mit der Email Adresse und je ein Boolean-Feld per Kostenstelle.

Per VBA soll nun das richtige Boolean Feld durchsucht werden. Also zum Beispiel bei welchen Email-Adressen das Feld "104500" (Feldname) den Wert True zurück gibt.

Nun soll die Suche in dem richtigen Feld stattfinden, indem das benötigte Feld per Variable angesprochen wird. Die entsprechende Kostenstelle wird in der Variablen "KSt" gespeichert.

Mein Ansatz ist:
Set MyRS = MyDB.OpenRecordset("SELECT Email FROM Email WHERE Email.&KSt" = -1)

Mir ist nicht so genau klar ob in dem Zusammenhang "&KSt" möglich ist.

Wenn ich das obige benutze bekomme ich die Fehlermeldung "Typenunverträglichkeit"... hab auch diverse andere Möglichkeiten getestet, was immer wieder zu Fehlermeldungen führte.

Wäre super wenn ihr mir bei der Lösung noch einmal helfen könntet.

Vielen Dank!
Titel: Re: Verschiedene Felder per Variable durchsuchen
Beitrag von: MaggieMay am Januar 15, 2016, 09:55:24
Hallo,

du musst den String mit der Variablen verketten.
So sollte es klappen:
Set MyRS = MyDB.OpenRecordset("SELECT Email FROM Email WHERE [" & KSt & "]")
Das "= True" (oder -1) ist verzichtbar, Bool'sche Datenfelder können nur True oder False sein.
Titel: Re: Verschiedene Felder per Variable durchsuchen
Beitrag von: MzKlMu am Januar 15, 2016, 09:58:51
Hallo,
ZitatIn der Tabelle gibt es ein Feld mit der Email Adresse und je ein Boolean-Feld per Kostenstelle.
dass das eine falsche, für Access ungeeignete Tabellenstruktur ist weißt Du ? Du kannst davon ausgehen, dass in dieser Art genutzte Ja/Nein Felder generell für Access unbrauchbar sind. Das ist Excel.
Daher hast Du auch nichts gefunden.

Hier sind noch Tabellen notwendig.

- Kostenstellen (alle, als Datensätze)
- EMailZuKostenstellen

In der letzten Tabelle wird in jeweils einem Datensatz eine EMailadresse einer Kostenstelle zugeordnet. Die Ja/Nein Felder entfallen ersatzlos. Die Kostenstellen müssen Feldinhalte sein, keine Feldnamen.

Zu den Ja/Nein Feldern siehe auch:
Microsoft Access Tips for Casual Users (http://allenbrowne.com/casu-23.html)

Titel: Re: Verschiedene Felder per Variable durchsuchen
Beitrag von: el_gomero am Januar 15, 2016, 10:02:27
Moin,

also ich hab das Problem ehrlich gesagt noch nicht verstanden. Deine Bezeichner scheinen auch suboptimal zu sein. Heisst wirklich ein Feld email in der Tabelle email? Dann solltest du das schleunigst umbenennen. Und das Feld Kostenstelle heisst hoffentlich nicht &Kst sonder nur Kst.

Die Daten würde ich in einer Abfrage ermitteln - dort hilft dir auch das GUI. Die gespeicherte Abfrage kannst du dem Recordset als Quelle übergeben. Wenn du dir das Statement der Abfrage dann anschaust wird das ungefähr so aussehen


SELECT MailAdresse FROM Tbl_email WHERE KSt = True

Titel: Re: Verschiedene Felder per Variable durchsuchen
Beitrag von: MzKlMu am Januar 15, 2016, 10:10:18
Hallo,
Zitatdas Feld "104500" (Feldname)
offensichtlich ist die Kostenstelle ein Feldname und das wäre eben die falsche Herangehensweise.
Titel: Re: Verschiedene Felder per Variable durchsuchen
Beitrag von: MaggieMay am Januar 15, 2016, 13:39:54
ZitatUnd das Feld Kostenstelle heisst hoffentlich nicht &Kst sonder nur Kst.
Nein, das war doch klar beschrieben, es gibt eine Spalte für jede Kostenstelle (und der Name entspricht der Kostenstellennummer), welche dann mit Ja oder Nein bzw. True/False ausgewählt werden kann.
Titel: Re: Verschiedene Felder per Variable durchsuchen
Beitrag von: DF6GL am Januar 15, 2016, 17:09:28
Hallo,


ZitatIn der Tabelle gibt es ein Feld mit der Email Adresse und je ein Boolean-Feld per Kostenstelle.

wenn der Tabellenaufbau genau so ist, wie er beschrieben wurde, ist er schlichtweg für eine dynamische DB unbrauchbar...

Natürlich kann er auch so bleiben, wenn man sich gerne Knüppel zwischen die Beine wirft....  ;)

Zudem bezweifle ich, ob damit wirklich die eigentlichen daran gestellten Anforderung erfüllt werden....
Titel: Re: Verschiedene Felder per Variable durchsuchen
Beitrag von: MzKlMu am Januar 15, 2016, 17:13:31
Hallo,
Zitatwenn der Tabellenaufbau genau so ist, wie er beschrieben wurde, ist er schlichtweg für eine dynamische DB unbrauchbar...
sag ich doch.  :D
Siehe Hinweise in #2
Titel: Re: Verschiedene Felder per Variable durchsuchen
Beitrag von: I985 am Januar 16, 2016, 11:40:34
Hallo zusammen,

direkt mit der ersten Antwort von MaggieMay hat perfekt funktioniert! Einen riesen Dank dafür!

Die Namen der Felder habe ich geändert. Also heißen jetzt nicht mehr sowohl die Tabelle als auch ein Feld darin "Email".

Das für die korrekte Abbildung der Daten nun eigentlich mehrere Tabellen benötigt werden, mag so sein. Da die Tabelle allerdings nur für diese eine Funktionalität benötigt wird - und diese jetzt funktioniert - werde ich es bei der derzeitigen Struktur belassen.

Noch einmal vielen Dank und besten Gruß!