Ich habe ein Access-Formular, das eine winzige Menge an Daten für einen bestimmten Datensatz anzeigt. Im Grunde gibt es nur den Namen auf der linken Seite und auf der rechten Seite eine Reihe von Rectangle-Steuerelementen, deren Hintergrundfarbe ich in der OnLoad() -Funktion des Formulars entsprechend den Ergebnissen einer Abfrage ändert, die mit der ID dieses Datensatzes als Parameter durchgeführt wurde.Zugriff auf Endlosformulare - wie individualisiert man die Kontrollen pro Datensatz?
Das alles funktionierte gut, habe meine ID/Name auf der linken und 31 Boxen auf der rechten Seite, farbig, wenn dieser Tag des Monats reserviert ist :) Aber natürlich kann diese Funktion völlig willkürlich sein, da es Code ist.
Dann entschied ich mich, auf 'Endlosformular' zu wechseln, um so viele Einträge wie möglich anzuzeigen. Aber leider sollte es nicht sein - alle Boxen wurden entsprechend der Abfrage/Funktion gefärbt, die nur für den ersten Datensatz ausgeführt wurde. Ich vermutete, dass dies der Fall ist, weil OnLoad() aber auch nicht auf OnCurrent() geändert wurde. Wie sich herausstellt, oder was ich gelesen habe, werden die Rectangle Intances über das gesamte Formular verteilt, und wenn ich die BackColor für eines von ihnen ändere, ändert sich das für dieses Feld für jeden Datensatz.
Ich möchte in der Lage sein, dies je nach einer Abfrage pro Datensatz zu ändern. Gibt es irgendeinen Weg? Bis jetzt konnte ich nur bedingte Formatierungen finden (die Funktion, die für Rechtecke noch nicht verfügbar ist und auch nicht genau meinen Bedürfnissen entspricht) und kludgy Access 97 Textbox-Hacks.
Vielen Dank im Voraus :)
Nein. Wenn Sie 2 Bedingungen haben (reserviert = rot, offen = grün), verwenden Sie zwei Bilder. Ihr Unterformular verwendet ein Bildsteuerelement anstelle des Rechtecks. Sie können die Bilder benennen, nachdem die Variable bereits verwendet wurde. Ich habe gerade nach meinem Artefakt gesucht. Es ist nicht hier. Aber eine Hilfe Suche auf "Bild" wird Sie sofort anweisen (beginnen Sie mit der Hilfe für Access, nicht VBA). – Smandoli
Ich bin ein C/C++ Lowlevel-Coder von Herzen/Beruf, eigentlich :) Was ich (offensichtlich) wollte, ist schnell zu hacken: 31 Kästchen in einer Reihe, zeigen Sie eine Farbe nach einem Codepath mit Datensätzen. Nicht elegant, aber sollte den Job machen. Das Problem besteht offensichtlich darin, dass die Steuereigenschaften nur einmal statt pro Datensatz gemeinsam verwendet/instanziert werden, was ich erwartet habe. Wie lösen Bilder das? Und bedeuten Sie mit Bildern für jede Permutation 31 verschiedene Bilder? Jedenfalls würde ich es bevorzugen, wenn die GUI-Ebene nur eine vektorisierte Form anstelle eines Bildes zeichnet.Bitte ausführlicher :) – nielsj
Entschuldigung für "kludging" herum mit den Kommentaren - kann mich nie entscheiden :) Ihre Lösung klingt gut. – nielsj