Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Record source einer ComboBox in VBA bestimmen. Nicht über die Eigenschaften.

Begonnen von Umbauwfb, August 01, 2022, 19:29:25

⏪ vorheriges - nächstes ⏩

Umbauwfb

Hallo,
ich möchte mit VBA - nicht über Eigenschaften/Daten - die Datenherkunft einer ComboBox festlegen.

Die Bestimmung der Record Source erfolgt
-   Beim Click auf die ComboBox
-   mit  einer if-Funktion über ein
-   verdecktes Schalter-Textfeld des Formulars, das in diesem Moment einen bestimmten Inhalt hat
-------------------------------------
ComboBox: cbxProjekt
Schalter-Textfeld: txtCounter (Inhalt wird im vorlaufenden Code festgelegt)

Momentaner SQL-Code der ComboBox
Eigenschaften >  Daten > Datensatzherkunft:

SELECT ProjektT.ID, ProjektT.ProjektName
FROM ProjektT
GROUP BY ProjektT.ID, ProjektT.ProjektName
ORDER BY ProjektT.ProjektName;

Die momentan in den Eigenschaften der ComboBox zugewiesene Datensatzherkunft möchte ich beim anclicken der ComboBox ersetzen. Sinn des Ganzen ist, den Inhalt der ComboBox auf den im Vorfeld in anderen Filterfeldern des  Formulars insgesamt gefilterten reduzierten Inhalt (gruppiert) zu reduzieren. Das ist sehr schwierig zu erklären...

Mir fehlt lediglich die Ansprache der ComboBox in VBA mit der entsprechenden Vorgabe der Record source

Beginn des Codes z.B.:

If txtCounter = 2 then
'Hier soll die angepasste Record source für die ComboBox folgen:

SELECT wird im Code festgelegt
FROM wird im Code festgelegt
GROUP BY wird im Code festgelegt
ORDER BY wird im Code festgelegt
Else

Frage 1: Wie mache ich die Ansprache der ComboBox
Frage 2: Ist der Click-Event der richtige Event

Vielen Dank für die Hilfe

Grüße aus Lüneburg
Harry


DF6GL

Hallo,


Wenn ich das richtig interpretiere, soll die Datensatzherkunft des Kombis beim Erhalt des Fokus verändert werden..:

Sub cmbBox_Enter()
Dim StrSQL As String

'Hier den SQL-String passend zusammensetzen
strSQL = "Select Feld1, Feld1 from tblDeineTabelle Group by DasGruppierFeld Order by DasSortierFeld"


<edit>
 Me! cbxProjekt.Rowsource = strSQL
</edit>


End Sub

ebs17

Flüchtigkeitsfehler.
Me.Rowsource = strSQLMe referenziert auf das Formular (und würde RecordSource als Datenherkunft verwenden).

Besser:
Me.cboXY.RowSource = strSQL
Mit freundlichem Glück Auf!

Eberhard


Beaker s.a.

Hallo,

Zitatden Inhalt der ComboBox auf den im Vorfeld in anderen Filterfeldern des  Formulars insgesamt gefilterten reduzierten Inhalt (gruppiert) zu reduzieren.
Von einem Filter ist jedoch weder bei dir noch in Antworten etwas zu sehen.
Keine Kritik an Franz oder Eberhard, die haben das sicher auch bemerkt.
Da gehört eine WHERE-Klausel rein, die aus/mit den anderen Filterfeldern
zusammen zu setzen ist.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Umbauwfb

Vielen Dank für die Hilfe,

Rowsource ist das Zauberwort, das ich nicht kannte...

Jetzt komme ich erst einmal weiter...

Grüße aus Lüneburg
Harry

Umbauwfb

Zitat von: Beaker s.a. am August 02, 2022, 12:49:42Hallo,

Zitatden Inhalt der ComboBox auf den im Vorfeld in anderen Filterfeldern des  Formulars insgesamt gefilterten reduzierten Inhalt (gruppiert) zu reduzieren.
Von einem Filter ist jedoch weder bei dir noch in Antworten etwas zu sehen.
Keine Kritik an Franz oder Eberhard, die haben das sicher auch bemerkt.
Da gehört eine WHERE-Klausel rein, die aus/mit den anderen Filterfeldern
zusammen zu setzen ist.

gruss ekkehard

Danke für den Kommentar,
der Filter stand hier nicht zur Debatte...den habe ich gottseidank im Griff...
ich wusste nicht, wie man die Datenherkunft der ComboBox mit VBA anspricht...
Rowsource...

Gruß
Harry