Supportnet Computer
Planet of Tech

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.

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?

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.

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!


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

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!

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

Antwort 8 von -Martin

martin_harz@web.de

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


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: