| Workshop zur Benutzung SGrid2-Controls unter MS-Access |
|
|
|
| Workshops - Workshops ActiveX-Controls | |||||||||||||||||||||||||||||
| Sonntag, den 22. März 2009 um 13:00 Uhr | |||||||||||||||||||||||||||||
|
Tags: Dieser Workshop soll nur eine kurze Anleitung sein und Hinweise bei der Benutzung des Controls
unter MS-Access ab Version 2000 sein und ist bei weitem nicht vollständig. Die Hinweise beziehen sich auf die Bsp-DB des beiliegenden Downloads. Einführung: Das SGrid2-Control ist ein Datagrid von vbAccelerator Eigentlich ist dieses Grid für VB5/6 geschrieben worden. Aber es kann auch unter MS-Access Jetzt wird sich mancher fragen, ja ein Datagrid na und, in Access habe ich doch das Listenfeld und Voraussetzungen: Das Bsp ist unter A00-A07 lauffähig. Das Control ("vbalSGrid6.ocx") selbst ist in der Setup-Datei enthalten.' Im Setup sind noch ein weiteres OCX und zwei DLL's enthalten Dann kommt noch vbAccelerator ImageList Control and Class v2.0 zum Einsatz. Einfügen des Controls in ein Formular.
Formularentwurf Menü -> Einfügen -> ActiveX-Steuerelement In der Liste das Control auwählen (roter Rahmen) und OK klicken. Der blaue Rahmen ist die Imagelist.
![]() Setzen der Icons in der Imagelist
Aufruf:
![]() Grundeinstellungen im 1. Register sind Größe der Icons und deren Farbtiefe
![]() Dann können im 2. Register die Icons hinzugefügt werden
![]() Code Grundeinstellungen
Eigentlich wird das Grid genau wie jedes andere Control im Code angesprochen.
Nun hat aber Access die Eigenart von externen Controls die Eigenschaften und Methoden nich per
Intellisense anzuzeigen. Das kann aber auch realisiert werden. Im Modulkopf deklarieren wie eine Variable:
Im Load Ereignis des Forms wird die Variable gesetzt und im Entladen wieder gelöscht.
Private Sub Form_Load() Danach kann dann auf die Intellisense-Funktion zugegriffen werden.
![]() Alle Bsp-Codes beziehen sich auf die Bsp-DB dieses Workshops
Kommen wir nun zum eigentlichen Füllen des Grids
Initialisierung des Grids
Als ersten müssen dem Grid ein paar Grundangaben mitgeteilt werden.
- Spalten und deren Eigenschaften
- Zuweisen der Imagelist
- allgemeine Einstellungen
Hier für nehmen wir eine Prozedur die 5 Spalten erstellt:
Ich gehe nur kurz auf die wichtigsten Parameter der AddColumn-Methode ein
Genaueres im Objektkatalog. 1. Parameter: Eindeutige Schlüsselfeldbezeichnung
2. Parameter: Bezeichnung des Spaltenkopfs die im Grid erscheinen soll 3. Parameter: Ausrichtung der Spaltenbezeichnung 5. Parameter: Spaltenbreite
6. Parameter: Spalte sichtbar 10. Parameter: Formatstring 12. Parameter: Feldtyp für die Sortierung Jetzt würde das Ganze nach dem Aufruf der Prozedur "InitialiseGrid()" so aussehen.
![]() Nun fehlen noch die Daten.
Auch hier kommt ein Prozedur zum Einsatz. Diese öffnet ein Recordset und damit werden
die Daten dem Grid hinzu gefügt. Wenn Ihr dann alles in das Load-Ereignis packt sieht das Grid nach dem Öffnen so aus.
Private Sub Form_Load() ![]() Aber das noch nicht ganz dass was wir wollen.
Also weiter. Jetzt wollen wir aber das die einzelnen Felder nach bestimmten Kriterien formatiert
und Icons der entsprechenden Kategorie zugeordnet werden. Dafür bohren wir die Prozedur "addData()" auf. Setzen der Icons für die entsprechende Kategorie
Wobei hier zu beachten wäre das der Index der Icons aus der Imagelist, entgegen
der Anzeige im Imagelistcontrol, bei 0 beginnt. Im nächsten Schritt wollen wir die Spalte mit dem Preis formatieren.
Folgende Kriterien habe ich mal genommen. >100 Textfarbe Rot, Fett, Fontsize 14
>=20 und <100 Textfarbe Blau, Schrift normal
>=10 und <20 Textfarbe Schwarz, Zellhintergrund Gelb, Schrift normal <10 Textfarbe Schwarz, Zellhintergrund Grün, Schrift normal Zum Setzen der Fonts ist zusätzlicher Code erforderlich.
Für jede Änderung wäre eine neue Zuweisung der Variable "Fnt" erforderlich bzw. zusätzliche Variablen. Dim Fnt As Font Jetzt noch die Farben. Wichtig ist hier das die Farben (Text und Hintergrund) als Hex-Werte
gesetzt werden müssen. If rss!Einzelpreis >= 100 Then Somit sieht die komplettierte "addData()" Prozedur so aus:
Und das ist das Ergebnis:
![]() Kommen wir nun zu einigen zusätzlichen Möglichkeiten des Grids.
Auslesen eines Zellinhaltes auf den geklickt wurde
Hier kommt das Ereignis "SelectionChange" des Grids zum Einsatz.
Private Sub vbalGrid1_SelectionChange(ByVal lRow As Long, ByVal lCol As Long) Und das Ergebnis:
![]() Grid Leeren
Zum Leeren gibt es die Methode Clear
oSGrid.Clear Wobei die Clear-Methode noch ein zusätzlichen Parameter hat
Wird es so aufgerufen: oSGrid.Clear True Werden auch die Spaltenköpfe mit gelöscht.
Spalten aus- bzw. einblenden
Per VBA können Spalten zur Laufzeit aus- bzw. eingeblendet werden.
'Ausblenden der Spalte ID Spalten gruppieren
Eine der besten Eigenschaften des Grids ist das Gruppieren von Daten.
Diese kann per VBA oder in den Eigenschaften des Grids eingestellt werden.
Per Code:
oSGrid.AllowGrouping = True oder im Form:
![]() Dort wird auch der Text festgelegt der im Kopfbereich erscheinen soll.
![]() Dann kann mittels Drag 'n Drop eine Spalte in in diesen Bereich gezogen werden.
![]() Im weiteren können auch weitere Spalten hinzu gefügt werden.
![]() Das Ergebnis sähe dann so aus:
![]() Auch ganze Spalten können mit Drag 'n Drop im Grid zur Laufzeit getauscht werden.
Alle Spalten behalten trotzdem den gleichen Spaltenindex. Gruppierte Spalten alle ein- bzw. ausblenden
Es ist nun möglich per VBA alle gruppierten Ebenen ein- bzw auszublenden
Dafür sind 2 Prozeduren erforderlich die dann aufgerufen werden.
Einblenden:
Private Sub ExpandAllGroups() ![]() Ausblenden:
Private Sub CollapseAllGroups() ![]()
|
|||||||||||||||||||||||||||||
| Aktualisiert ( Donnerstag, den 04. November 2010 um 08:08 Uhr ) | |||||||||||||||||||||||||||||
Login
Latest News
- 26 October 2011 Aktuelle Servicepacks Office
- 04 September 2011 Arbeiten mit EXIF-Tags
- 18 June 2011 Errechnen einer IBAN mit Access
- 08 June 2011 Nächste freie Nummer/Zahl ermitteln
- 30 May 2011 Verwaltung eines Skatturniers
Latest Comments
- Zwischenablage in MS-Access nu...
Hallo Raul, auch Dir danke für den Hinweis. Werde ... Mehr...
10.04.12 11:11
von TommyK - Zwischenablage in MS-Access nu...
Hallo Tommy, ich kann das von haarwurm bestätigen.... Mehr...
10.04.12 10:38
von Raul Katos - Userverwaltung II
Hallo Donni, wir machen mal hier weiter: http://ww... Mehr...
15.01.12 17:10
von TommyK - Userverwaltung II
Hallo Tommy, irgendwie habe ich das wohl nicht ric... Mehr...
15.01.12 16:31
von Donni - Userverwaltung II
Hallo Donni, dann setze in den Eigenschaften von "... Mehr...
15.01.12 09:45
von TommyK
Latest Downloads
Latest Forum Posts
-
-
- Datum problem
- In MS-Access - Fragen und Antworten
- at 16:44 on Mai 22, 2012 (CEST)
-
-
-
- zwei Tabellen in Abfrage verbinden - Probleme
- In MS-Access - Fragen und Antworten
- at 07:51 on Mai 16, 2012 (CEST)
-
-
-
- Änderung des Standarddruckers mittels VBA
- In MS-Access - Fragen und Antworten
- at 08:45 on Apr 13, 2012 (CEST)
-
-
-
- Serien-PDF-Dateien erstellen mit Code von Lebans
- In MS-Access - Fragen und Antworten
- at 17:30 on Apr 07, 2012 (CEST)
-
-
-
- Frage zu Unicounter
- In MS-Access - Fragen und Antworten
- at 08:24 on Mär 29, 2012 (CEST)
-
Download Statistik
41 Kategorien |


















