Nach Form_KeyDown immer DataGrid.SelBookmarks.Count = 0

26/03/2009 - 10:18 von Wilfried Dietrich | Report spam
Hallo,
hat Jemand einen Tipp.

Ich verwende auf einer Form ein DataGrid an dem ein RS
mit Set DataGrid.DataSource = RS gebunden ist und
mehrere CommandButton (u.a. F5) um Aktionen auszuführen.
Um nun mehrere Datensàtze für eine bestimmte Aktion zu selektieren,
klicke ich (oder der Benutzer) bei gedrückter Strg-Taste mit der
linken Maustaste auf den Recordselector der entsprechenden DS.
Dadurch wird ...SelBookmarks.Count > 0.
Wenn ich mit der Maus auf den Button (F5...) klicke, kann ich
...SelBookmarks benutzen.
Wenn ich aber auf der Tastatur die Taste F5 drücke und diesen
Event über
Private Sub Form_KeyDown(KeyCode As Integer,...)
Select Case KeyCode
Case vbKeyF5
...
End Select
End Sub
zum Auslösen der Aktion verwenden möchte, dann ist
...SelBookmarksCount immer = 0.

Ich frage jetzt die Tastatur nach der Taste F5 in
Private Sub DataGrid_KeyDown(...)
ab und kann so mit ...SelBookmarks in der Aktion arbeiten.
Ich habe aber in der Aktion als erstes eine Benutzerabfrage, in der
der Benutzer auch abbrechen kann. Tut er dies, ist seine Selektion wieder
verschwunden (...SelBookmarks.Count = 0, wegen Form_KeyDown(...)).
Leider benötige ich Private Sub Form_KeyDown(...)
noch für andere F-Tasten und Aktionen.

Was nun?
Wie kann ich Form_KeyDown(...) verwenden und
...SelBookmarks.Count > 0 behalten?

Für Eure Bemühungen schon mal vielen Dank.
Gruß
Wilfried
 

Lesen sie die antworten

#1 Peter Götz
26/03/2009 - 13:26 | Warnen spam
Hallo Wilfried,

Ich verwende auf einer Form ein DataGrid an dem
ein RS mit Set DataGrid.DataSource = RS gebunden
ist und mehrere CommandButton (u.a. F5) um
Aktionen auszuführen.
Um nun mehrere Datensàtze für eine bestimmte
Aktion zu selektieren, klicke ich (oder der Benutzer)
bei gedrückter Strg-Taste mit der linken Maustaste
auf den Recordselector der entsprechenden DS.
Dadurch wird ...SelBookmarks.Count > 0.
Wenn ich mit der Maus auf den Button (F5...) klicke,
kann ich ...SelBookmarks benutzen.
Wenn ich aber auf der Tastatur die Taste F5 drücke
und diesen Event über
Private Sub Form_KeyDown(KeyCode As Integer,...)
Select Case KeyCode
Case vbKeyF5
...
End Select
End Sub
zum Auslösen der Aktion verwenden möchte, dann ist
...SelBookmarksCount immer = 0.



Das DataGrid hört stàndig mit und reagiert auf bestimmte
Tasten nicht unbedingt wie erwartet.
Schau Dir mal in ADO DemoMu2002 - Beispiel im
Klassenmodul clsDGridExt den Code in den Prozeduren

Private Sub mvarDGrid_KeyDown()
Private Sub mvarDGrid_KeyUp()

an. Darin werden alle unerwünschten Tastensignale
aussortiert. Das müsstest Du in Deinem Code nachbilden
oder eben gleich wie in ADO DemoMu2002 das
Klassenmodul clsDGridExt() mit verwenden. Damit
hàttest Du dann auch die Möglichkeit Mehrfachauswahl
von Zeilen wie in Access via Tastatur (Umschalttaste +
KeyUp/KeyDown) oder via Maus (Strg + Zeilenheaderklick für
Mehrfachauswahl unzusammenhàngender Zeilen, bzw.
Umschalttaste + Zeilenheaderklick auf erste und letzte
Zeile für Mehrfachauswahl zusammenhàngender
Zeilenbereiche zu realisieren.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen