PDA

Vollständige Version anzeigen : Ereignis im Spaltenkopf auslösen


AnnaM
18.10.2011, 20:25
Hallo,

ich möchte in der Tabellenansicht eines Formulars beim Doppelklicken in den Spaltenkopf eines von mehreren Feldern ein Ereignis auslösen und den Feldnamen des angeklickten Feldes als Variable in der Ereignisprozedur verwenden.

Kann mir jemand einen Tip geben?

LG :rolleyes:
Anna

Storch
18.10.2011, 21:48
Hallo Anna,

meines Wissens gibt es für Spaltenköpfe in der Datenblattansicht keine Ereignisse, so das ein Click oder Doubleclick nicht möglich sind.

Wenn jemand mehr weiß als ich dann bitte ich um Verbeserung.

Alternativ könntest DU die Daten in ein Listview laden. Dieses stellt entsprechende Ereignisse wie Column_Click bereit.

tutulla
19.10.2011, 10:00
Hallo, Anna,

ich setz in den Kopf meiner Endlos-Frms (nicht die Datenblattansicht :eek: ) einen cmd-Button(Acc 2007) oder ein Label-Feld (Acc 2003), formatier' das mit Schriftart Marlett und beschreibe es mit "v" (für Sortiervorgänge). Platziert wird das Steuerelement linksbündig mit der Spaltenüberschrift und es ist ca. 3 mm breiter sein als die Spaltenüberschrift des Endlosfrms.
Beim cmd-Btn kannst Du die Active-Control-Prop auswerten, allerdings kannst Du den Cmd-Btn erst ab 2007 transparent setzen, glaub ich jedenfalls ;) .
Beim Lbl-Feld musst Du wohl den Feldnamen mitgeben, wenn Du nicht die Mausposition auswerten willst. Müsste aber wohl auch gehen.

Alternativ hat Access-im-Unternehmen mal was gemacht, was Dir vielleicht entgegen kommt:
http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=762
Vielleicht kannst Du davon etwas brauchen :) .

Liebe Grüße
tutulla / Heike

Fred_BS
19.10.2011, 10:33
Hallo Anna,

wenn es ein Endlosformular ist, gibt es für die Label in der Spaltenüberschrift ein DblClick - Ereignis, das Du verwenden kannst. Ich benutze das z. B. zum Sortieren der Anzeige nach der jeweiligen Spalte:
Private Sub IMP_NR_Bezeichnungsfeld_DblClick(Cancel As Integer)
On Error GoTo IMP_NR_Bezeichnungsfeld_DblClick_Error
Static UD As Boolean

UD = Not UD

Me.OrderBy = "IMP_NR" & IIf(UD = True, "", " DESC")
Me.OrderByOn = True
DoEvents

On Error GoTo 0
Exit Sub

IMP_NR_Bezeichnungsfeld_DblClick_Error:

MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure IMP_NR_Bezeichnungsfeld_DblClick of VBA Dokument Form_PCC_Antragsliste"
End Sub

Statt dieser Sortierung kannst Du natürlich eine x-beliebige Prozedur oder Funktion aufrufen und dabei den Namen der Datenspalte, der ja auf Basis der Überschrift leicht zu bestimmen sein sollte, als Parameter mitgeben.

HTH
Fred

AnnaM
20.10.2011, 15:19
Hallo Storch, tutulla und Fred_BS,

danke für die brauchbaren Tips/Hinweise!

LG
Anna