kombifeldabfrage
Hallo!!
Ich beschäftige mich seit kurzem mit Access 07 und bin dabei meine eigene Datenbank zu schreiben. Nun habe ich folgendes Problem:
Ich habe unter Anderem eine Tabelle namens Abteilung mit den drei Attributen Chefarzt, Krankenschwester und Medizintechnik. Weiterhin für Chefarzt usw eine eigene Tabelle mit Titel, Name usw.
Jetzt wollte ich in einem Formular über einem Kombifeld die Auswahl der Abteilung (Chefarzt usw.) umsetzen und je nach Auswahl mir die Daten des Chefarztes z.b. in einem listfeld (lfAnsprechpartner) anzeigen lassen!!
Das Kombifeld habe ch wie folgt mit VBA geändert:
Option Compare Database
Private Sub kfAbteilung_AfterUpdate()
Me.lfAnsprechpartner.Requery
End Sub
Müsste dohso aufen oder?
Aber wie kriege ich jetzt die Daten in das Listfeld? Habe schon mit SQL bei Datenherkunft versucht aber nicht so wirklichdie richtige Anweisung gefunden.. Wäre schön, wenn mir da jemand weiterhelfen könnte!!?
Mfg Florian
Antwort schreiben
Antwort 21 von Marie vom 09.12.2019, 14:48 Options
as von den tausend sachen ist denn
Zitat:
Like [forms].[Klinik].[kfAbteilung]));
Antwort 22 von floberlin vom 09.12.2019, 15:21 Options
Das is die ganze SQL!!
Warum kann das dann keiner nachvollziehen?
Und was ist mit nem Leerzeichen? das war doch gar nicht so oder?
Warum soll das nicht mein Ernst sein? Das war doch meine Frage!!! Wie soll ich es denn sonst machen?
Antwort 23 von Marie vom 09.12.2019, 15:26 Options
es kann nur ein einziges Feld
Zitat:
Like [forms].[Klinik].[kfAbteilung]));
sein
und das und nur das kommt hinter where, sonsz hast du doch gar keine bedingung.
Poste dann bitte die gesamte SQL
Antwort 24 von floberlin vom 09.12.2019, 15:44 Options
Das war die gesamte SQL:
SELECT Chefarzt.c_tTitel, Chefarzt.c_tName, Chefarzt.c_tVorname, Medizintechnik.m_tTitel, Medizintechnik.m_tName, Medizintechnik.m_tVorname, Krankenschwester.ks_tTitel, Krankenschwester.ks_tName, Krankenschwester.ks_tVornameFROM Medizintechnik, Krankenschwester, ChefarztWHERE ((Abteilungsabfrage.c_tTitel, Abteilungsabfrage.c_tName, Abteilungsabfrage.c_tVorname, Abteilungsabfrage.m_tTitel, Abteilungsabfrage.m_tName, Abteilungsabfrage.m_tVorname, Abteilungsabfrage.ks_tTitel, Abteilungsabfrage.ks_tName, Abteilungsabfrage.ks_tVorname) Like [forms].[Klinik].[kfAbteilung]) ORDER BY Chefarzt.c_tName, Medizintechnik.m_tName, Krankenschwester.ks_tName;
Ich hatte es so gemacht wie Ralf meinte:
Zitat:
SELECT daswasdumöchtest from woherdudasmöchtest WHERE (((DeineAbfrage.DeinFeld) Like [forms].[DeinFormular].[DeinKombifeld
Jetzt war meine Frage ob das richtig ist mit der Where-Klausel!!!?
Gruß Florian
Antwort 25 von Marie vom 09.12.2019, 16:08 Options
Krankenschwester.ks_tVornameFROM
jetzt fehlt hier ein Leerzeichen, falls das nicht im forum verloren ging,
Zitat:
ChefarztWHERE
ebenso hier
Zitat:
WHERE ((Abteilungsabfrage.c_tTitel, Abteilungsabfrage.c_tName, Abteilungsabfrage.c_tVorname, Abteilungsabfrage.m_tTitel, Abteilungsabfrage.m_tName, Abteilungsabfrage.m_tVorname, Abteilungsabfrage.ks_tTitel, Abteilungsabfrage.ks_tName, Abteilungsabfrage.ks_tVorname) Like [forms].[Klinik].[kfAbteilung])
und hier haste doch gar nix geändert, was soll den das?ß Es können doch nicht sämtliche hier genannten felder
Zitat:
Like [forms].[Klinik].[kfAbteilung])
sein. Begreif doch endlich.
Zitat:
WHERE (((DeineAbfrage.DeinFeld) Like [forms].[DeinFormular].[DeinKombifeld
dein Feld ist ein einziges Feld und nicht 10 wie bei Dir, die genau denselben Inhalt haben wie der im Kombi angeklickte Ausdruck.
gruß Marie
Antwort 26 von floberlin vom 09.12.2019, 16:28 Options
Ich denk ma, wir reden hier irgendwie wieder voll aneinander vorbei Marie!! Die Leerzeichen hat das Forum geschluckt...
Aber Du hast jetzt endlich meine Frage verstanden!! Genau das wollte ich doch wissen mit der WHERE-Klausel!! Ich kann also nur ein Feld angeben in
Zitat:
WHERE ((MeineAbfrage.MeinFeld)...
ist doch so oder?
Aber wie kann ich das dann schreiben, wenn ich diese 10 Felder auch mit der Eingabe im Kombifeld vergleichen will???
Gruß Florian
Antwort 27 von Marie vom 09.12.2019, 16:53 Options
du hast immer noch nicht verstanden wie das Kombifeld funktioniert.
Du hast eine einzige gebundene Spalte und die muss eindeutig sein und nur die vergleichst Du mit den Datensätzen in deiner Tabelle oder Abfrage.
Zitat:
Like [forms].[Klinik].[kfAbteilung]));
nur ein einziges feld in Abteilungsabfrage ist doch exakt identisch mit [forms].[Klinik].[kfAbteilung und das und nur das kommt hinter where und vor like.
Butterfliege Hildegunde hat die datensatznummer 175 und der im kombi angeklickte Datensatz hat die Nummer 175, also suchste die Hildegunde über die Datensatznummer, Deine Whereabfrage heisst dann: suche dieselbe Nummer in meiner Abfrage, wie die, die im kombi angeklickt wurde. Wenn Du das jetzt immer noch nicht verstanden hast, dann schau dir bitte ein beispiel in der nordwind an, denn ich weiss nimmer wie ich es Dir noch erklären sollte, dass nicht 10 unterschiedliche felder gleichzeitig like einem in deinem Kombi sein können.
Gruß marie
Antwort 28 von floberlin vom 10.12.2019, 11:59 Options
Hallo!!
Ahhh... Ok durch Hildegunde hab ich es verstanden!! ;)
Dann geht das also gar nicht so wie ich es mir so vorstelle...
Ich versuch es nochmal zu erklären.. Ich habe 3 Abteilungen (3 Tabellen) zur Auswahl in dem Kombifeld!! Jetzt möchte ich mir, je nach Auswahl des Kombifeldes (also der Abteilung), den Titel, den Namen und den Vornamen (also insgesamt 3 Spalten) im Listfeld anzeigen lassen!! Muss ich jetzt die 3 Spalten (Titel, Name, Vorname) zu einer machen, damit ich diese dann mit der WHERE-Klausel benutzen kann?
Gruß Florian
Antwort 29 von Marie vom 11.12.2019, 01:48 Options
Nein, Du kannst Dir anzeigen lassen was Du willst, darum geht es doch hier gar nicht mehr,
Es geht doch jetzt um das Anzeigen des ausgewählten Datensatzes.
Es geht einzig und alleine um Deine Where-Klausel und darum, dass Du ums verplatzen offensichtlich nicht verstehen willst, was Where ...... like... bedeutet!!
Versuchs halt nochmal irgendwo nachzulesen und auf deine Daten zu übertragen. Wenn Dir mal klar ist welches Feld die gebundene Spalte sein soll und ob das feld eindeutig ist, dann kannste gerne hier weiterfragen.
gruß Marie