Sortierbutton mit Pfeil

Moderator: ModerationP

Sortierbutton mit Pfeil

Beitragvon Gast » 02. Dez 2020, 19:02

Hallo,
in einem Endlosformular soll die Spalte Datum sortiert werden können. Ein Label hat ja kein Ereignis, ich will also dazu einen Button nehmen und versuche bisher vergeblich einen Pfeil nach oben/unten mit in die Caption zu bekommen. Der Pfeil vom Bildassistenten passt vertikal nicht genau zur Beschriftung. Außerdem bekomme ich den Wechsel nicht hin; evtl. ginge es über visible mit 2 Buttons. Scheint aber umständlich zu sein.
Asci hat keinen Pfeil. Am besten wäre wohl der Pfeil mit 2 senkrechten Strichen.
Ist das OK, aber wie bekommt man den mit in die Beschriftung?
Gruß Wolfram
Gast
 

Re: Sortierbutton mit Pfeil

Beitragvon Gast » 02. Dez 2020, 19:09

Hallo,
sehe gerade, dass ein Label doch ein Klick-Event hat, wenn es vom Textfeld gelöst ist.
Aber das Problem mit dem Pfeil bleibt dennoch.
Wolfram
Gast
 

Re: Sortierbutton mit Pfeil

Beitragvon Gast » 02. Dez 2020, 19:41

Hallo,
schau Dir mal die Textformate Webings und Wingdings an.
Da gibt es größtenteils Deine grafischen Elemente als simpel anzeigbare Texte.
Gast
 

Re: Sortierbutton mit Pfeil

Beitragvon Gast49 » 02. Dez 2020, 20:01

Hallo,

für meine Anwendungen habe ich mir diese Funktion (Auszug) gebastelt, wobei ich mit Arial beschrifte. Der Sortierbutton ist gleichzeitig Spaltenüberschrift (Name der Spalte) und Sortier-Icon (auf-/absteigend):
Code: Alles auswählen
c.Caption = Left(c.Name, Len(c.Name) - 6) & " " & ChrW(9650) 'aufsteigend

Code: Alles auswählen
c.Caption = Left(c.Name, Len(c.Name) - 6) & " " & ChrW(9660) 'absteigend


kannst Du damit etwas anfangen?
Gast49
 

Re: Sortierbutton mit Pfeil

Beitragvon Beaker s.a. » 03. Dez 2020, 12:17

Hallo Wolfram,
Außerdem bekomme ich den Wechsel nicht hin

Halte die aktuelle Sortierfolge ("ASC"/"DESC") in der Tag-Eigenschaft des Controls
fest.

gruss ekkehard
Ereignisorientierte Programmierung:
Alles, was geschieht, geschieht.
Alles, was während seines Geschehens etwas anderes geschehen
läßt, läßt etwas anderes geschehen.
Alles, was sich selbst im Zuge seines Geschehens erneut geschehen
läßt, geschieht erneut.
Beaker s.a.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1056
Registriert: 14. Jul 2012, 21:56
Wohnort: Bremen

Re: Sortierbutton mit Pfeil

Beitragvon Gast » 03. Dez 2020, 12:59

Hallo,
bei ? ChrW(9650)
kommt ein ?
Hängt es damit zusammen, dass ChrW nicht unterstützt wird?
Hilfe: Dies gilt nicht für Plattformen, auf denen Unicode nicht unterstützt wird.
Benötigt man dazu VBA oder kann man das auch in den Eigenschaften erreichen?
Danke
Gruß Wolfram
Gast
 

Re: Sortierbutton mit Pfeil

Beitragvon SGast » 03. Dez 2020, 13:54

Hallo,
bei ? ChrW(9650)
kommt ein ?
Meist du damit die Ausgabe im Debug-Fenster?
Das ist normal, denn das Fenster kann nur Ascii anzeigen.

Gruß Steffen
SGast
 

Re: Sortierbutton mit Pfeil

Beitragvon Gast » 03. Dez 2020, 17:26

Hallo,
ja. Als Code läuft es jetzt super. Danke dir.
Wie kommt man an die Zahlen?
Gruß Wolfram
Gast
 

Re: Sortierbutton mit Pfeil

Beitragvon Beaker s.a. » 03. Dez 2020, 17:53

Hallo Wolfram,
ChrW(9650) bzw. ChrW(9660) funzen problemlos, - die Anzeige ist ein kleiner
schwarzer Pfeil.
Ich habe das mal mit Listfeldern gemacht. Zum Sortieren habe ich Labels
verwendet. Um das für mehrere Spalten zu nutzen habe ich das in eine
öffentliche Sub gekapselt. Dieser wird das Sortierlabel und das Listcontrol
übergeben.
Code: Alles auswählen
Public Sub SpaltenSortieren( _
        ByVal ctlLabel As Control, _
        ByVal ctlListe As Control)
'---------------------------------------------------------------------------------------
' Purpose   : sortiert die übergebene Liste entsprechend der angeklickten Spalte;
'           : - auf bzw. ab; - wird durch die Eigenschaft "Marke" (Tag) des Überschriften-
'           : Controls gesteuert
' Parameter :
'           : ctlLabel = Überschriften-Control (Label) des zu sortierenden Listfeldes
'           : Der Name MUSS dem Feldnamen in der zugrunde liegenden Tabelle/Abfrage
'           : entsprechen
'           : ctlListe = Listfeld
'---------------------------------------------------------------------------------------
    Dim strSQL As String
    Dim strRowS As String
   
    strRowS = ctlListe.RowSource
    'letztes ORDER BY abschneiden
    strSQL = Left$(strRowS, InStr(1, strRowS, "ORDER BY") - 1)
    'neues anhängen
    strSQL = strSQL & " ORDER BY " & ctlLabel.Name & " " & ctlLabel.Tag
    ctlListe.RowSource = strSQL
   
    If ctlLabel.Tag = " DESC" Then
        ctlLabel.Tag = " ASC"
        ctlLabel.Caption = Left$(ctlLabel.Caption, Len(ctlLabel.Caption & vbNullString) - 1) & ChrW(9650)
    Else
        ctlLabel.Tag = " DESC"
        ctlLabel.Caption = Left$(ctlLabel.Caption, Len(ctlLabel.Caption & vbNullString) - 1) & ChrW(9660)
    End If
 
 '   ctlListe.SetFocus
 '   ctlListe.Selected(0) = True

End Sub

Aufruf
Code: Alles auswählen
Call SpaltenSortieren( _
            ctlLabel:=Me.Controls("DeinSortierlabel"), _
            ctlListe:=Me.Controls("DeinListfeld"))

gruss ekkehard
Ereignisorientierte Programmierung:
Alles, was geschieht, geschieht.
Alles, was während seines Geschehens etwas anderes geschehen
läßt, läßt etwas anderes geschehen.
Alles, was sich selbst im Zuge seines Geschehens erneut geschehen
läßt, geschieht erneut.
Beaker s.a.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1056
Registriert: 14. Jul 2012, 21:56
Wohnort: Bremen

Re: Sortierbutton mit Pfeil

Beitragvon Bitsqueezer » 03. Dez 2020, 20:08

Hallo,

in Windows gibt es ein kleines Systemtool namens "Character Map" (schon seit den ersten Windows-Versionen), damit kannst Du alle Zeichen aller installierten Fonts ansehen und bekommst darüber auch die Zahl heraus.

In z.B. Windows 10 einfach bei aufgeklapptem Startmenü mal "char" tippen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7911
Registriert: 21. Jun 2007, 12:17

Re: Sortierbutton mit Pfeil

Beitragvon Gast » 06. Dez 2020, 15:14

Hallo,
danke
Zum Sortieren habe ich Labels verwendet.

Ich habe das gemacht. Aber bei einem Listfeld ist es vielleicht besser, die Spaltenüberschriften einzuschalten und dann den Klick auf eine Spalte zum Sortieren zu verwenden. Das bekam ich aber nicht zustande. Ich probierte auch
Code: Alles auswählen
DoCmd.RunCommand acCmdSortAscending
statt strgSQL.

alle Zeichen aller installierten Fonts ansehen und bekommst darüber auch die Zahl heraus.

Die wird unten z.B. als 0x70 gezeigt. Aber wie kommt man zu '9660'?
Auf https://bin-dez-hex-umrechner.de/ kann man sie nicht umrechnen.
Gruß Wolfram
Gast
 

Re: Sortierbutton mit Pfeil

Beitragvon Gast49 » 06. Dez 2020, 16:05

Ich habe mir eine Zahlentabelle tblANSII angelegt mit den Zahlen 1 bis 9999.

Auf diese habe ich eine Abfrage aufgesetzt:

Code: Alles auswählen
SELECT Zahl,
   IIf([Zahl]<256,Chr([Zahl]),ChrW([Zahl])) AS Zeichen
FROM tblANSII;


Das Ergebnis habe ich in einem mehrspaltigen Endlosformular angezeigt - je Spalte eine (relevante) Schriftart.

Beim Durchglättern dieses Formulars stieß ich auf diese Zeichen in Arial.
Gast49
 

Re: Sortierbutton mit Pfeil

Beitragvon Bitsqueezer » 07. Dez 2020, 01:31

Hallo,

9660 ist hex 25BC und genau das zeigt die Charmap beim Pfeil nach unten an.

0x70 ist 112 und das ist das kleine p....

Einen Dez/Hex/Bin-Umrechner hast Du auch in Windows eingebaut, einfach den Taschenrechner starten und im Menü auf "Programmierer" umschalten.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7911
Registriert: 21. Jun 2007, 12:17


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron