In einer Werteliste gibt es bis zu 100 Einträge zu möglichen Farben innerhalb der Anwendung
ID, Farbname, HexWert
1, blau, #0000EE
2, gelb, #EDFF21
N, xx, #xxxxx
Die Anzahl der Farbwerte in der Werteliste kann 1 bis 100 sein
Nun kommt es:
Der Anwender solle ein Formular frmFarbe öffnen und beim Öffnen soll mittels VBA nun Folgendes passieren:
1. Bestehende Controls löschen
2. Je Farbe in der Werteliste soll Access ein Kästchen in den Maßen 0,4 x 0,4 cm erstellen
Das Kästchen soll als Backcolor jeweils die Farbe aus der Werteliste annehmen
3. Die Anordung der Kästchen soll max 10 untereinander und max 10 nebeneinander betragen
Bei 100 Farben ergäbe sich ein buntes Quadrat von 10 x 10 Kästchen
4. Mit einem click auf das gewünschte Kästchen soll die Farbe dann in der Anwendung genutzt werden
Hat jemand eine Idee?
Hallo,
was verstehst Du unter "Werteliste"?
Eine Tabelle oder die Eigenschaft "Value List" eines Listenfeldes?
Bei Tabelle:
Erstelle alle Kästchen (Rechtecke) in der Form-Entwurfsansicht entspr. Deiner Vorstellung und benenne die Kästchen mit einer fortlaufenden Nummer, z. B. K1,K2,K3 etc.
Setze die Eigenschaft "Sichtbar" aller Kästchen auf nein.
Datenherkunft des Forms: leer (ungebundenes Form)
Im Form_Load-Ereignis wird ein Recordset mit Datenherkunft zur Tabelle durchlaufen und dabei die entspr. Kästchen ("K" & ID) mit der zugehörenden Farbe (HexWert) eingefärbt sowie auf "Visible = True" gesetzt.
Bei 4.: Jedes Kästechen erhält die passende Ereignisprozedur.
ok, und erst einmal vielen lieben Dank.
Meine "Werteliste" ist ein Sammelsurium an Werten, die jeweils einem bestimmten Typ zugeordnet sind, also eine LOV, eine List of Value, eine Nachschlagliste. An dieser Liste bedienen sich z.B. Kombinationsfelder etc.
Was das Kästchen angeht war ich auch schon soweit, aber als ich dann mein buntes Quadrat zusammengebastelt habe, stellte sich mir aus reinem Interesse die Frage, ob man so etwas in Acess nicht auch automatisiert machen könnte.
Ideen?
Andreas
Zitat von: DerTutNix am September 30, 2021, 09:27:48ob man so etwas in Acess nicht auch automatisiert machen könnte
Die einmalige Erstellung geht per Code recht einfach:
Schau dir in der Hilfe die Methode Application.createcontrol an.
Auch Events kann man per Code erstellen, aber in so einem Fall würde ich das mit einer Funktion im Formular umsetzen, die man natürlich auch per Code dem Control zuweisen kann.
Hallo,
ZitatMeine "Werteliste" ist ein Sammelsurium an Werten, die jeweils einem bestimmten Typ zugeordnet sind, also eine LOV, eine List of Value, eine Nachschlagliste. An dieser Liste bedienen sich z.B. Kombinationsfelder etc.
Im Access-Jargon: Es handelt sich dann hierbei um eine normale
Tabelle..
ZitatHat jemand eine Idee?
CreateControl & Co. sind Änderungen am Formulardesign. Solche funktionieren in einer ACCDE, die man an Dritte weitergeben dürfte, nicht mehr. Also könnte man mit der Überlegung beginnen, was tue ich da für wen.
Sowie: NACHDEM Du Dich mit Deinen Ideen ausgetobt hast, könntest Du einen Blick auf bestehende Lösungen werfen wie Access – Color Picker (https://www.devhut.net/2020/12/13/access-color-picker/)
Zitat von: ebs17 am September 30, 2021, 13:19:23CreateControl & Co. sind Änderungen am Formulardesign. ... ACCDE
Zur Laufzeit sollte man die Methoden gar nicht einsetzen, da Access es begrenzt wie oft man Controls in einem Form erzeugen kann.
Heißt also generell nur bei der Entwicklung einsetzen - Prinzip wie Franz erwähnt hat nur eben per Code, und da ist es eine optimale Lösung.
Wenn zur Laufzeit, könnte man auf ein Userform ausweichen, da klappt das dann auch bei ACCDE.
@DerTutNix,
was machst du eigentlich bei Punkt 4?