Commander_COM Geschrieben 14. August 2002 Geschrieben 14. August 2002 Hallo, Ich möchte aus einer tabelle text_tab diejenigen [stichwort] datensätze in einer Kombobox in access2000 ausgeben lassen, die von mitarbeitern einer bestimmten Abteilung geschrieben worden sind. Tabelle [text_tab] und Tabelle [benutzer] sind über den schlüssel ben_nr verbunden. Wie schreibe ich das in der SQL auswahl des Kombofeldes? Ich wähle vorher die Abteilung mit einer anderen Kombobox namens Abteilung_box aus. Vielleicht habe ichs etwas kompliziert ausgedrückt. in Text_tab steht das stichwort und die ben_nr. In Benutzer (tabelle) steht die Ben_nr als prim. key und die abteilung der mitarbeiter. wenn ich nun also in einer anderen kombobox die Abteilung auswähle, solls mir in einer anderen alle dazugehörigen stichworte anzeigen. Das riecht mir schon stark nach VBA, oder? Bei Änderung Code einfügen etc. Kann jemand helfen? thx Zitieren
g_nikolai Geschrieben 14. August 2002 Geschrieben 14. August 2002 schau mal im Thread etwas tiefer:Felder ausgeben da wird sowas ähnliches schon gemacht must nur das Füllen der Kombobox immer wieder neu machen je nachdem welche Abteilung gewählt wird. Zitieren
Commander_COM Geschrieben 14. August 2002 Autor Geschrieben 14. August 2002 danke für den Tipp, aber ich werde aus dem thread nicht schlau. Kann man das eigentlich nicht gleich in die Datensatzherkunftzeile der Kombobox schreiben? Die sieht jetzt so bei mir aus: SELECT [text_tabelle].[stichwort], [benutzer].[Abteilung] FROM benutzer INNER JOIN text_tabelle ON [benutzer].[ben_nr]=[text_tabelle].[ben_nr] WHERE ((([benutzer].[Abteilung])='Form_Aufgaben-Bereich.Bereich_Feld')); Leider wird in der Box noch nichts angezeigt. Was mache ich falsch? Wenns geht bitte idiotensicher erklären, kenne mich mit sowas noch nicht so aus. thx4urhlp Zitieren
tauron Geschrieben 14. August 2002 Geschrieben 14. August 2002 Moin ! du kannst das direkt in die Datensatzherkunftszeile schreiben, müsste dann in etwa so aussehen: SELECT text_tabelle.stichwort FROM benutzer INNER JOIN text_tabelle ON benutzer.ben_nr = text_tabelle.ben_nr Where benutzer.Abteilung =Bereich_Feld.value; Er schaut dann in der Combobox "Bereich_Feld" nach der Abteilung und gibt dann die Stichworte aus. Problem ist nur das er diesen Select nur einmal beim öffnen ausführt. Daher müsstest Du in der Combobox "Bereich_Feld" in den Eigenschaften unter Ereignis -> Nach Aktualisierung -> Ereignisprozedur den Vba-Befehl [Name deines Stichwort Feldes].Requery ausführen. Damit fragt er den Select nach einer Änderung der Abteilung wieder neu ab. Hoffe das hilft Dir ! Gruß Christian ------------------------------------------------------------ "All power corrupts. Absolute Power is kinda neat though..." "50.000 gold a year in child care and they call it a CULT ?!?" - Kel'Thuzad, Archlich Zitieren
Commander_COM Geschrieben 14. August 2002 Autor Geschrieben 14. August 2002 Leider geht imma noch nix. Der schreibt einfach nüscht in das Feld rein... Grübel... das muss doch irgendwie gehen, *verzweifel* edit: der bringtmir jetzt ne parameterbox wo ich Bereich_feld.Wert eingeben soll. Wenn ich dort die Abteilungsnamen selber eingebe, so funtioniert das. wenn alerdings was oben in dem feld drinsteht, dann erkennt er das irgendwie nicht und die stichwortbox bleibt leer. :confused: Und dasmit dem requery klappt auch net so ganz. der bringt irgendnen dummem OLE Fehler, wenn das VBA-Zeux da drin steht. Zitieren
tauron Geschrieben 14. August 2002 Geschrieben 14. August 2002 Die Parameter-Box kommt, weil er das Feld nicht findet. Du mußt "Bereich_Feld" mit dem Namen den Du der Abteilung-ComboBox gegeben hast ersetzen (Du musst auch unbedingt auf Groß/Kleinschreibung achten). hmm hast Du den .Requery Befehl direkt im Eigenschaftsfenster eingetragen ? Wenn ja musst Du dort auf [Ereignisprozedur] umstellen und den .Requery Befehl in Vba schreiben. Gruß Christian ------------------------------------------------------------ "All power corrupts. Absolute Power is kinda neat though..." "50.000 gold a year in child care and they call it a CULT ?!?" - Kel'Thuzad, Archlich Zitieren
g_nikolai Geschrieben 14. August 2002 Geschrieben 14. August 2002 erläuter mal demn Vorgang den Du erreichen möchtest oder sag mir ob ich das so richtig verstehe. Du möchtest in einer Kombobox eine Abteilung auswählen, dann soll eine andere Kombobox mit Daten gefüllt werden die von der vorher ausgewählten Abteilung gültig/erstellt sind?? guido Zitieren
Commander_COM Geschrieben 14. August 2002 Autor Geschrieben 14. August 2002 abhängig sind ist wohl der bessere ausdruck. genau. Ich will aus der tabelle text die stichwörter in die zweite kombobox schreiben, aber nur die darin erscheinen lassen, die verschiedene personen aus EINER ABTEILUNG, die ich in der ersten Box ausgewählt habe, dort hineingeschrieben haben. Klar? *lol* thx4hlp 1. Box : Abteilung: Küche 2. Box : Stichwörter: Frühstück, Mittag, Abend z.B. Zitieren
tauron Geschrieben 15. August 2002 Geschrieben 15. August 2002 Moin ! hmm hab das jetzt mal bei mir ausprobiert und da funzt es.. hier ist was ich eingetragen habe: Kombinationsfeld1: Name: "bereich_feld" Datensatzherkunft: "SELECT DISTINCT [benutzer].[Abteilung] FROM [benutzer];" Ereignis->Nach Aktualisierung: "Ereignisprozedur" Dann im VBA-Code: Private Sub bereich_feld_AfterUpdate() stichwort_feld.Requery End Sub Kombinationsfeld2: Name: "stichwort_feld" Datensatzherkunft: "SELECT text_tabelle.stichwort FROM benutzer INNER JOIN text_tabelle ON benutzer.ben_nr = text_tabelle.ben_nr Where benutzer.Abteilung =bereich_feld.value;" Die beiden wichtigen Sachen sind halt der Select im "stichwort_feld", der abhängig vom Inhalt des "bereich_feld" die Texte ausgibt, und der kurze VBA-Code zum "bereich_feld", der den Inhalt des "stichwort_feld" nach Änderung aktualisiert. Hoffe das hilft Dir weiter ! Gruß Christian ------------------------------------------------------------ "All power corrupts. Absolute Power is kinda neat though..." "50.000 gold a year in child care and they call it a CULT ?!?" - Kel'Thuzad, Archlich Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.