Hallo.
Ich möchte gerne eine in einer Liste getroffene Auswahl via ok-button an ein kombinationsfeld übergeben, wodurch automatisch weitere werte automatisch in den nebenstehenden spalten ergänzt werden. Ist es möglich das so zu machen?
Code:
If Form_frm_ChooseSourceName.strChooseSourceFrom = „frm_Machine“
’ Bestimmung von wo aus ChooseSource geöffnet wurde
Then
Set l_rs = l_db.OpenRecordset(lv_sql)
Form_frm_Machine.cboSourceID = l_rs.Fields(„SourceName“).Value
’ SourceID = Bezeichnung des Kombinationsfeldes
Form_frm_Machine.SourceID = lstSourceTab.Value
'lstSourceTab ist der ausgewählte Wert im Listenfeld
der Quellenauswahl (chooseSource)
Form_frm_Machine.Visible = True
Me.Visible = False
Else
End If
Ich möchte gerne eine in einer Liste getroffene Auswahl via
ok-button an ein kombinationsfeld übergeben, wodurch
automatisch weitere werte automatisch in den nebenstehenden
spalten ergänzt werden. Ist es möglich das so zu machen?
mhmm, kann nicht folgen und den Sinn erkennen…
Code:
If Form_frm_ChooseSourceName.strChooseSourceFrom =
„frm_Machine“
’ Bestimmung von wo aus ChooseSource geöffnet wurde
Then
Set l_rs = l_db.OpenRecordset(lv_sql)
Form_frm_Machine.cboSourceID = l_rs.Fields(„SourceName“).Value
’ SourceID = Bezeichnung des Kombinationsfeldes
Form_frm_Machine.SourceID = lstSourceTab.Value
'lstSourceTab ist der ausgewählte Wert im Listenfeld
der Quellenauswahl (chooseSource)
Form_frm_Machine.Visible = True
Me.Visible = False
Else
End If
End Sub
Dieser Code wirft mehr Fragen auf als er klarstellt…
Beschreib mal ohne Code nur die Namen der beteiligten Formulare und Steuerelemente und wo sie sich befinden, wie auch die Datensatzherkünfte des Listen- und Kombifeldes.
Weiterhin: warum soll ein aus einem Listenfeld ausgewählter Wert in ein Kombifeld kopiert werden?
Vermutlich ist der ganze Ansatz eher von hinten aufgezäumt.
Hallo.
Mittlerweile bin ich ein Stück weiter. Zur Struktur:
Ich habe ein Formular in dem sich ein Kombinationsfeld befindet, welches Kunden aus der Tabelle_Kunden abruft. Diese Liste ist deutlich umfangreicher als die maximalen 65536 Einträge, sprich mein Dropdown zeigt maximal die Kunden bis Buchstabe H an. Deshalb öffnet sich jetzt beim Klicken auf das drop down ein Formular in dem ich die Suche einschränke. Den gewählten Ausdruck möchte ich über den Ok-Button in das Kombinationsfeld eintragen lassen oder es würde schon reichen wenn es da markiert werden würde, da bei auswahl aus dem kombifeld 3-4 weitere zelleneinträge automatisch ergänzt werden, ansonsten wäre es ja auch ohne kombifeld möglich. Gibt es eine simple funtion die auswahl aus dem suchdialog mit drücken des ok-buttons im kombinationsfeld zu markieren?
Mittlerweile bin ich ein Stück weiter. Zur Struktur:
Ich habe ein Formular in dem sich ein Kombinationsfeld
befindet, welches Kunden aus der Tabelle_Kunden abruft. Diese
Liste ist deutlich umfangreicher als die maximalen 65536
Einträge, sprich mein Dropdown zeigt maximal die Kunden bis
Buchstabe H an. Deshalb öffnet sich jetzt beim Klicken auf das
drop down ein Formular in dem ich die Suche einschränke.
nimm doch lediglich ein zweites Kombifeld, das alle Buchstaben von A-Z anzeigt und filtere danach das Kundenauswahlkombi…
Das nennt man abhängige Kombifelder und benötigt kein weiteres Form oder dergleichen.
oder nimm ein ungebundenes Textfeld, in das ein Teil des Kundennamens eingetragen wird und das Kundenkombi danach gefiltert wird.
Den
gewählten Ausdruck möchte ich über den Ok-Button in das
Kombinationsfeld eintragen lassen oder es würde schon reichen
wenn es da markiert werden würde, da bei auswahl aus dem
kombifeld 3-4 weitere zelleneinträge automatisch ergänzt
werden, ansonsten wäre es ja auch ohne kombifeld möglich. Gibt
es eine simple funtion die auswahl aus dem suchdialog mit
drücken des ok-buttons im kombinationsfeld zu markieren?
Markieren nützt nichts, wenn der entspr. Eintrag im Kombi nicht vorhanden ist…
Ja aber der Eintrag ist ja zu 100% im Datensatz enthalten, wird halt nur nicht angezeigt. Das Formular mit dem Ok-Button, also der Suchdialog existiert ja bereits und ist mit einem anderen Formular verknüpft. Jedoch wird logischerweise bei der Auswahl und dem Drücken auf Ok die Auswahl in diesem Formular angezeigt. Ich möchte praktisch eine Fallunterscheidung bewirken, bei der Ok-Button prüft aus welchem Formular aus der Suchdialog geöffnet wurde, und er dementsprechend den Wert in das Textfeld des einen Formulars oder in das gewünschte Kombifeld einträgt.
So nach dem Motto:
Wenn Suchdialog geöffnet von Formular Maschine, gibt ausgewählten Suchdialogwert in Kombibox in Formular Maschine aus.
Wenn Suchdialog geöffnet von Formular Quelle, gibt ausgewählten Suchdialogwert in Textfeld xyz in Formular Quelle aus.
Ja aber der Eintrag ist ja zu 100% im Datensatz enthalten,
wird halt nur nicht angezeigt. Das Formular mit dem Ok-Button,
also der Suchdialog existiert ja bereits und ist mit einem
anderen Formular verknüpft. Jedoch wird logischerweise bei der
Auswahl und dem Drücken auf Ok die Auswahl in diesem Formular
angezeigt. Ich möchte praktisch eine Fallunterscheidung
bewirken, bei der Ok-Button prüft aus welchem Formular aus der
Suchdialog geöffnet wurde, und er dementsprechend den Wert in
das Textfeld des einen Formulars oder in das gewünschte
Kombifeld einträgt.
Benutz das Openarg-Argument der Openform-Methode, um den Namen des aufrufenden Formulars an das Suchform zu übergeben (Zusätzlich könnte auch gleich der Steuelementname mit übergeben werden)
If not isnull (Me.Openargs) then
a=Split(Me.Openargs, „;“)
If Ubound (a) =1 then
Forms(a(0)).Controls(a(1))=Me!lstSourceTab.column(0)
End If
End If
’ docmd.close acForm, Me.Name
End Sub
So nach dem Motto:
Wenn Suchdialog geöffnet von Formular Maschine, gibt
ausgewählten Suchdialogwert in Kombibox in Formular Maschine
aus.
Wenn Suchdialog geöffnet von Formular Quelle, gibt
ausgewählten Suchdialogwert in Textfeld xyz in Formular Quelle
aus.
okay, fangen wir oben an
habe jetzt in dem formular machine einen button erstellt, der das suchformular öffnen soll mit folgendem code beim klicken
Private Sub Befehl21_Click()
DoCmd.OpenForm „frm_ChooseSourceName“ Me.Name&";txtSourceID", Windowmode:=acDialog
End Sub
frm_ChooseSourceName ist das Formular und txtSourceID das textfeld indem dann der Wert aus dem Suchformular später angezeigt werden soll…passt das soweit? sicherlich nicht oder? zeigt mir nämlich nen fehler an ^^
war mir nicht sicher ob das so richtig ist wie ich es gemacht habe, hat aber super geklappt, musste nur noch eine globale variable integrieren, die in den anderen formularen bereits verwendung fand
ging dann ohne openarg sondern doch per einfacher if-clause beim ok-button ganz großen Dank für die Ideen und Ratschläge