Supportnet / Forum / Datenbanken
Wert aus Kombinationsfeld in Parameterabfrage übernehmen
Frage
hey Leute,
hab mal wieder ne Frage. Kann man den Wert aus einem Kombinationsfeld für einen Wert einer Parameterabfrage integrieren. Ich möchte im Hauptformular einen Namen aussuchen, der dann in der Parameterabfrage eines Unterformulares automatisch eingesetzen. Geht das? Wäre super, wenn mir jemand sagt wie?
Danke!!!!!!!!!
Antwort 1 von takeshi
Hallo Martin.
Also wenn ich das richtig verstanden habe müsste es mit einer globalen Variable funktionieren, die in die Abfrage eingesetzt wird. Als erstes fügst du ein neues Modul ein indem du die Variable definierst und gleichzeitig die Funktion dazu erstellst.
Als nächstes musst du Variable mit den benötigten Daten füllen. Wir wechseln nun in dein gewünschtes Formular in dem der Name ausgewählt wird. Dort füllst du dann die Variable mit dem ausgewählten Namen des Kombinationsfeld. Den Code musst du natürlich dort hinpacken wo du ihn brauchst, zb eine Befehlsschaltfläche.
Aja du musst natürlich die Variable nun in die Abfrage stecken. Öffne die dem Unterformular zu Grunde liegenden Abfrage und füge dem gewünschten Feld unter Kriterien die Funktion ein, die wir früher geschrieben haben.
In unserem Fall
Func_Name()
du kannst natürlich damit jetzt anstellen was du willst und mit den verschiedensten Zeichen kombinieren. Aber Func_Name() beinhaltet nun den im Formular ausgewählten Namen. Also ich meine wenn du im Formular dann den CommandButton drückst wird die Funktion gefüllt.
Ich hoffe du hast verstanden was ich meine. Wenn nicht frag einfach.
Wenn jemand einen Fehler entdeckt hat, bitte korrigieren.
Gutes gelingen
mfg
takeshi
Also wenn ich das richtig verstanden habe müsste es mit einer globalen Variable funktionieren, die in die Abfrage eingesetzt wird. Als erstes fügst du ein neues Modul ein indem du die Variable definierst und gleichzeitig die Funktion dazu erstellst.
Public Var_Name as String
Public Function Func_Name as String
Func_Name = Var_Name
End Function
Als nächstes musst du Variable mit den benötigten Daten füllen. Wir wechseln nun in dein gewünschtes Formular in dem der Name ausgewählt wird. Dort füllst du dann die Variable mit dem ausgewählten Namen des Kombinationsfeld. Den Code musst du natürlich dort hinpacken wo du ihn brauchst, zb eine Befehlsschaltfläche.
Var_Name = Kombinationsfeld_Name
Aja du musst natürlich die Variable nun in die Abfrage stecken. Öffne die dem Unterformular zu Grunde liegenden Abfrage und füge dem gewünschten Feld unter Kriterien die Funktion ein, die wir früher geschrieben haben.
In unserem Fall
Func_Name()
du kannst natürlich damit jetzt anstellen was du willst und mit den verschiedensten Zeichen kombinieren. Aber Func_Name() beinhaltet nun den im Formular ausgewählten Namen. Also ich meine wenn du im Formular dann den CommandButton drückst wird die Funktion gefüllt.
Ich hoffe du hast verstanden was ich meine. Wenn nicht frag einfach.
Wenn jemand einen Fehler entdeckt hat, bitte korrigieren.
Gutes gelingen
mfg
takeshi
Antwort 2 von -Martin
Danke takeshi,
habe noch folgendes Problem: wie kann ich den Code an die Befehlsschaltfläche eingeben! Sehe nur die Möglichkeit, vorgegebene Optionen auszufüllen.
Übrigens habe ich jetzt kein Unterformular mehr, sondern versuche, alles in einem Formular auszuführen. Geht das?
habe noch folgendes Problem: wie kann ich den Code an die Befehlsschaltfläche eingeben! Sehe nur die Möglichkeit, vorgegebene Optionen auszufüllen.
Übrigens habe ich jetzt kein Unterformular mehr, sondern versuche, alles in einem Formular auszuführen. Geht das?
Antwort 3 von takeshi
Hallo
also was die Befehlsschaltfläche klickst du mit der rechten Maustaste drauf und wählst Eigenschaften aus. Dann klickst du die Registerkarte Ereignis an und suchst den Eintrag "Beim Klicken". Jetzt klickst du rechts daneben auf die den Button ...
Im folgenden Fenster wählst du dann den Code-Generator.
Den Code für die Befehlsschaltfläche fügst du dann zwischen den Sub und den End Sub Eintrag ein.
und zum Formular: Es macht überhaupt keinen Unterschied ob du ein Formular, Unterformular, Bericht, etc. verwendest. du musst jetzt aber einen Befehl hinzufügen damit das gewünschte Formular auch geöffnet wird.
Du fügst folgenden Code (natürlich angepasst) ein.
Das meiste vom Code wird automatisch eingefügt. Du musst jetzt die beiden Codes vergleichen und dementsprechend ergänzen.
Ich hoffe ich habe keinen Fehler drin.
gute gelingen
mfg
takeshi
also was die Befehlsschaltfläche klickst du mit der rechten Maustaste drauf und wählst Eigenschaften aus. Dann klickst du die Registerkarte Ereignis an und suchst den Eintrag "Beim Klicken". Jetzt klickst du rechts daneben auf die den Button ...
Im folgenden Fenster wählst du dann den Code-Generator.
Den Code für die Befehlsschaltfläche fügst du dann zwischen den Sub und den End Sub Eintrag ein.
und zum Formular: Es macht überhaupt keinen Unterschied ob du ein Formular, Unterformular, Bericht, etc. verwendest. du musst jetzt aber einen Befehl hinzufügen damit das gewünschte Formular auch geöffnet wird.
Du fügst folgenden Code (natürlich angepasst) ein.
Private Sub cmd_FormularÖffnen_Click()
On Error GoTo Err_cmd_FormularÖffnen_Click
Dim stDocName as String
Var_Name = Kombinationsfeld_Name
DoEvents
stDocName="FormularName"
DoCmd.OpenForm stDocName, acNormal
Exit_cmd_FormularÖffnen_Click()
Exit Sub
Err_cmd_FormularÖffnen_Click:
MsgBox Err.Description
Resume Exit_cmd_FormularÖffnen_Click
End Sub
Das meiste vom Code wird automatisch eingefügt. Du musst jetzt die beiden Codes vergleichen und dementsprechend ergänzen.
Ich hoffe ich habe keinen Fehler drin.
gute gelingen
mfg
takeshi
Antwort 4 von -Martin
Hallo Takeshi,
also ich habe jetzt den Button mit der Struktur:
Private Sub Befehl2_Click()
Var_Name = Kombinationsfeld_Name
End Sub
erstellt.
Vorher habe ich ein Kombinationsfeld erstellt, in dem die möglichen Namen enthalten werden. (Sie werden aus einer anderen Tabelle herangezogen.)
Das Unterformular behinhaltet das Feld, welches durch diese Auswahl gefüllt werden soll. Dafür habe ich in der Abfrage unter das entsprechende Feld bei Kriterien eingegben:
func_Name ().
Leider hat es nicht funktioniert!
also ich habe jetzt den Button mit der Struktur:
Private Sub Befehl2_Click()
Var_Name = Kombinationsfeld_Name
End Sub
erstellt.
Vorher habe ich ein Kombinationsfeld erstellt, in dem die möglichen Namen enthalten werden. (Sie werden aus einer anderen Tabelle herangezogen.)
Das Unterformular behinhaltet das Feld, welches durch diese Auswahl gefüllt werden soll. Dafür habe ich in der Abfrage unter das entsprechende Feld bei Kriterien eingegben:
func_Name ().
Leider hat es nicht funktioniert!
Antwort 5 von takeshi
Auf den ersten Blick glaube ich, dass du das Kriterium falsch geschrieben hast. Es muss genau so heißen wie im Code und die Klammern stehen ohne leerzeichen am Text dabei. also func_Name()
Da ich leider keine Zeit habe, es selbst zu testen kann ich dir auf die schnelle auch nicht sagen ob sonst etwas falsch ist.
Vielleicht kann sich ja mal ein anderer meine Tipps durchlesen und sagen ob er einen Fehler entdeckt
Da ich leider keine Zeit habe, es selbst zu testen kann ich dir auf die schnelle auch nicht sagen ob sonst etwas falsch ist.
Vielleicht kann sich ja mal ein anderer meine Tipps durchlesen und sagen ob er einen Fehler entdeckt
Antwort 6 von _Martin
Leider war es das auch nicht, habe alles so eingesetzt.
Vielleicht fällt Dir ja noch was ein.
Mein Ziel ist eigentlich, dass man einen Namen bie einer Parameterfrage nicht selbst eingeben muss, sondern auswählen kann. Das wäre für den Anwender sehr viel einfacher.
Trotzdem vielen Dank!
Vielleicht fällt Dir ja noch was ein.
Mein Ziel ist eigentlich, dass man einen Namen bie einer Parameterfrage nicht selbst eingeben muss, sondern auswählen kann. Das wäre für den Anwender sehr viel einfacher.
Trotzdem vielen Dank!
Antwort 7 von takeshi
Weißt du was? Ich habe gerade ein bisschen Zeit. Ich werde dir eine kleine Demo-Datenbank machen, in dem diese Funktion vorkommt und ne Anleitung dazugeben, wie du das in deine Datenbank einbauen
kannst ok?
musst mir nur deine e-Mail adresse geben
mfg
takeshi
kannst ok?
musst mir nur deine e-Mail adresse geben
mfg
takeshi
Antwort 8 von -Martin
martin_harz@web.de
vielen Dank
vielen Dank
Antwort 9 von SJ
Hallo _Martin,
kannst mal folgendes Probieren:
1.Kombinationsfeld erstellen in einem Formular
2.Erstelle eine Abfrage. Unter die Spalte die du eingrenzen willst folgendes in Kriterien eingeben:
Forms!(NAME_DEINES_FORMULARS!NAME_VOM_KOMBINATIONSFELD
3.Abfrage Speichern
4.In deinem Formular mit dem Kombinationsfeld ein Unterformular erstellen. Als Datenherkunft wähle die oben erstellte Abfrage
5.Als letztes beim Kombinationsfeld unter:
Eigenschaften/Beim Verlassen/Ereignisprozedur
Folgendes in die Prozedur einfügen: Me.NAME_DEINES_UNTERFORMULARS.Requery
MFG
SJ
kannst mal folgendes Probieren:
1.Kombinationsfeld erstellen in einem Formular
2.Erstelle eine Abfrage. Unter die Spalte die du eingrenzen willst folgendes in Kriterien eingeben:
Forms!(NAME_DEINES_FORMULARS!NAME_VOM_KOMBINATIONSFELD
3.Abfrage Speichern
4.In deinem Formular mit dem Kombinationsfeld ein Unterformular erstellen. Als Datenherkunft wähle die oben erstellte Abfrage
5.Als letztes beim Kombinationsfeld unter:
Eigenschaften/Beim Verlassen/Ereignisprozedur
Folgendes in die Prozedur einfügen: Me.NAME_DEINES_UNTERFORMULARS.Requery
MFG
SJ

