Hallo,
ihr habt mir bisher schon super weiter geholfen (SuFu sei dank), aber nun habe ich ein Problem, das es sicher schon zig fach gibt, ich aber nicht in einem guten Suchbegriff formulieren kann.
Foldende Situation:
Access 2003 DB mit Endlosformular/Endlosliste zur Darstellung der DS einer Access-Abfrage (unter Abfragen definiert).
Im Endlosformular habe ich noch am Ende des Formularrandes ein kleines Quadrat gezeichnet mit weisser Füllung.
Ich versuche beim Laden des Formulars für jeder Zeile (also für jeden einzelnen dargestellten DS) per VBA ein SQL-Statement abzusetzen. Wenn dies zutrifft, soll das Quadrat am Zeilenende z.B. blau eingefärbt werden, wenn nicht, dann wieder weiss.
Dies klappt soweit auch alles super, aber nur für den allerersten DS, der angezeigt wird: trifft also die SQL-Abfrage beim ersten DS zu, so werden alle weiteren Quadrate der anderen DS genauso gefärbt, wie beim ersten.
Es scheint, als ob meine VBA-Abfrage nur einmal ausgeführt zu werden und dann nicht mehr. Es liegt vermutlich daran, dass die SQL-Farbänderungs-Funktion im "Sub Form_Load()" nur einmalig beim Formularstart ausgeführt wird. Setzte ich jedoch die SQL-Färbe-Funktion als eigene Sub und starte sie manuell mit z.B. Klick auf das zu färbende Quadrat, so werden ebenfalls alle gleichzeitig eingefärbt. ”
Ich habe leider keine Idee, wie ich die Abfrage für jeden Eintrag einzeln aufrufen kann bzw. jedes Quadrat individuell ansteuern kann, ohne dass sich die Felder des anderen DS ebenfalls ändern.
Hier mal der Code, für die eigene Sub (Indikator ist die Bezeichnung für das Quadrat):
Dank euch schonmal für eure Hilfe
ihr habt mir bisher schon super weiter geholfen (SuFu sei dank), aber nun habe ich ein Problem, das es sicher schon zig fach gibt, ich aber nicht in einem guten Suchbegriff formulieren kann.
Foldende Situation:
Access 2003 DB mit Endlosformular/Endlosliste zur Darstellung der DS einer Access-Abfrage (unter Abfragen definiert).
Im Endlosformular habe ich noch am Ende des Formularrandes ein kleines Quadrat gezeichnet mit weisser Füllung.
Ich versuche beim Laden des Formulars für jeder Zeile (also für jeden einzelnen dargestellten DS) per VBA ein SQL-Statement abzusetzen. Wenn dies zutrifft, soll das Quadrat am Zeilenende z.B. blau eingefärbt werden, wenn nicht, dann wieder weiss.
Dies klappt soweit auch alles super, aber nur für den allerersten DS, der angezeigt wird: trifft also die SQL-Abfrage beim ersten DS zu, so werden alle weiteren Quadrate der anderen DS genauso gefärbt, wie beim ersten.
Es scheint, als ob meine VBA-Abfrage nur einmal ausgeführt zu werden und dann nicht mehr. Es liegt vermutlich daran, dass die SQL-Farbänderungs-Funktion im "Sub Form_Load()" nur einmalig beim Formularstart ausgeführt wird. Setzte ich jedoch die SQL-Färbe-Funktion als eigene Sub und starte sie manuell mit z.B. Klick auf das zu färbende Quadrat, so werden ebenfalls alle gleichzeitig eingefärbt. ”
Ich habe leider keine Idee, wie ich die Abfrage für jeden Eintrag einzeln aufrufen kann bzw. jedes Quadrat individuell ansteuern kann, ohne dass sich die Felder des anderen DS ebenfalls ändern.
Hier mal der Code, für die eigene Sub (Indikator ist die Bezeichnung für das Quadrat):
Code:
Private Sub Indikator_faerben() Dim rst_indikator_1 As New ADODB.Recordset rst_indikator_1.Open CurrentProject.Connection.Execute( _ "SELECT Nz(Spalte1) + Nz(Spalte2) as Erg FROM Tabelle1 _ WHERE Kriterium1 Like '" & Date & "' AND ID Like '" & Me![ID] & "'") If rst_indikator_1.EOF Then Me.Indikator_1.BackColor = RGB(255, 255, 0) Else If rst_indikator_1.Fields("Erg") = 0 Then Me.Indikator_1.BackColor = RGB(255, 255, 0) Else Me.Indikator_1.BackColor = RGB(0, 0, 255) End If End If rst_indikator_1.Close Set rst_indikator_1 = Nothing End Sub
Comment