Neuigkeiten:

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

Mobiles Hauptmenü

Verschiedene Felder per Variable durchsuchen

Begonnen von I985, Januar 15, 2016, 09:44:51

⏪ vorheriges - nächstes ⏩

I985

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!

MaggieMay

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.
Freundliche Grüße
MaggieMay

MzKlMu

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

Gruß Klaus

el_gomero

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

Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MzKlMu

Hallo,
Zitatdas Feld "104500" (Feldname)
offensichtlich ist die Kostenstelle ein Feldname und das wäre eben die falsche Herangehensweise.
Gruß Klaus

MaggieMay

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.
Freundliche Grüße
MaggieMay

DF6GL

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....
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MzKlMu

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
Gruß Klaus

I985

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ß!