Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: BotschafterSarek am September 05, 2014, 11:21:18

Titel: Feldnamen für eine Abfrage stehen in einer Tabelle
Beitrag von: BotschafterSarek am September 05, 2014, 11:21:18
Hallo zusammen,

ich habe eine Tabelle "Mailverteiler", die so aufgebaut ist:



Mitarbeiter des Einkaufs     mitarbeiter1
Mitarbeiter des Vertriebs     mitarbeiter2
... und so weiter

Nun habe ich eine Tabelle "Adressbuch", in der es (unter anderem) ein Ja/Nein-Feld namens "mitarbeiter1", ein Ja/Nein-Feld namens "mitarbeiter2" und so weiter gibt.

Weiterhin habe ich ein Formular, in der die Tabelle "Mailverteiler" als Datenquelle für eine Combobox dient. Das heißt, in der ComboBox kann ich einen Mailverteiler auswählen.

Was ich möchte:  Ich möchte mittels einer Abfrage alle Einträge der Tabelle Adressbuch anzeigen, bei denen der Wert des Feldes, dessen Name ich in der ComboBox ausgewählt habe, TRUE ist.

Geht das? Oder muß ich das statt mit einer Abfrage mit VBA machen?

(Ich weiß, dass diese Datenbank nicht vernünftig normalisiert ist! An die Struktur der Tabelle "Adressbuch" darf ich nicht ran!)


Danke im Voraus,
Sarek \\//_
Titel: Re: Feldnamen für eine Abfrage stehen in einer Tabelle
Beitrag von: MaggieMay am September 05, 2014, 16:28:50
Hallo,

du könntest den SQL-Code der Abfrage per VBA erzeugen und diesen bspw. dem Anzeigeformular zuweisen.

Beispiel:Dim strSQL As String
strSQL = "Select feld, feld2, ... From adressbuch Where [" & Me.kombifeld & "] = True"
DoCmd.OpenForm "frmAdressen"
Forms!frmAdressen.RecordSource = strSQL
Titel: Re: Feldnamen für eine Abfrage stehen in einer Tabelle
Beitrag von: BotschafterSarek am September 05, 2014, 17:46:38
Zitat von: MaggieMay am September 05, 2014, 16:28:50
du könntest den SQL-Code der Abfrage per VBA erzeugen und diesen bspw. dem Anzeigeformular zuweisen.

Klingt gar nicht schlecht. Aber: Das ganze soll nicht in einem Formular angezeigt werden, sondern als Bericht ausgegeben werden. Und wenn ich den Code wie folgt ändere:

DoCmd.OpenReport "Listendruck", acPreview
Reports!Listendruck.RecordSource = SQLcode


bekomme ich einen Laufzeitfehler 2191: Sie können die Eigenschaft Datenherkunft nicht in der Seitenansicht oder nach dem Start eines Druckvorgangs einstellen
Titel: Re: Feldnamen für eine Abfrage stehen in einer Tabelle
Beitrag von: DF6GL am September 05, 2014, 19:46:15
Hallo,


öffne den Bericht mittels Openreport und der Übergabe eines geeigneten Kriterium beim Where-Condition-Parameter:

DoCmd.OpenReport "Listendruck", acPreview,,Me!kombifeld & " = True"
Titel: Re: Feldnamen für eine Abfrage stehen in einer Tabelle
Beitrag von: BotschafterSarek am September 05, 2014, 20:43:53
Zitat von: DF6GL am September 05, 2014, 19:46:15
öffne den Bericht mittels Openreport und der Übergabe eines geeigneten Kriterium beim Where-Condition-Parameter:

DoCmd.OpenReport "Listendruck", acPreview,,Me!kombifeld & " = True"

Und dann? Wie kommt der Parameter in die Definition der Datenherkunft?

Titel: Re: Feldnamen für eine Abfrage stehen in einer Tabelle
Beitrag von: DF6GL am September 05, 2014, 20:54:41
Hallo,

???

Der Bericht enthält in seiner Datenherkunft eine Tabelle oder einen Abfrage. Die wird durch den Where-Condition-Parameter gefiltert.

Oder was meinst Du?
Titel: Re: Feldnamen für eine Abfrage stehen in einer Tabelle
Beitrag von: BotschafterSarek am September 06, 2014, 07:29:32
Zitat von: DF6GL am September 05, 2014, 20:54:41
Der Bericht enthält in seiner Datenherkunft eine Tabelle oder einen Abfrage. Die wird durch den Where-Condition-Parameter gefiltert.

Alles klar, habe ich gerade erfolgreich ausprobiert. Danke!