Gibt es eine Möglichkeit nach rechts-align eine numerische Spalte in einem ListBox
-
30-09-2019 - |
Frage
Wir haben eine Standard-Access-List-Box mit mehreren Spalten. Gibt es eine Möglichkeit ganze Zahl oder Währung Spalten haben rechts ausgerichtet?
Lösung
Soweit ich weiß, nicht im traditionellen Sinne, nein. Ich glaube, es gibt einige Produkte von Drittanbietern, die dies zu tun, vielleicht in der Lage, aber es gibt keine nativen ColumnAlignment
Eigenschaften für Listboxen in allen Versionen, die ich verwendet habe (nicht Access 2007 verwendet, aber für das, was es wert ist).
Je nachdem, wie Sie das Listenfeld laden, Sie könnten verwenden, um eine Schrift mit fester Breite (wie Courier) und links-pad Ihre Zahlen mit der entsprechenden Anzahl von Räumen, zu emulieren rechten Ausrichtung . Es ist nicht ideal, aber es kann einen Versuch wert sein.
Andere Tipps
Nein. Der nächstgelegene ich gesehen habe, ist JustiCombo das ist eine Datenbankfunktionen zum Zentrum enthält und rechts rechtfertigen Daten für List und Combo-Boxen. Es kann proportionale Schriftarten verwenden, indem Sie die Schriftattribute und Zeichenbreite zu analysieren. Es stopft auch Räume in der Vorderseite der Felder der Datenzentrale / rechts gerechtfertigt erscheinen zu lassen. Es tat das Beste es könnte, aber man könnte ein paar Treppchen sehen. Aber dann vielleicht war ich zu kritisch zu sein.
Je nach Abfrage der Ausrichtung einer Spalte wird von der zugrundeliegenden Tabelle übernommen werden. So gehen Sie auf die Tabelle, wählen Sie die Spalte, in der Mitte / rechts / links ausrichten, und dann Textbox sollte die gleiche Ausrichtung haben. Das wird nicht funktionieren für berechnete Felder, aber es sollte für die meisten anderen.
- Konvertieren Sie die Listbox Combobox
- Nehmen Sie die Combobox, dass Sie mit der rechten Ausrichtung umgewandelt
- Konvertieren es wieder listbox
In VB ist:
Format(Format("10000", "0.00%"), "@@@@@@@@@@")
wo die Zahl der „@“ s die Breite des Feldes, in dem Recht, die Zeichenfolge zu rechtfertigen.
In VBA können Sie:
xFormat(Format("10000", "0.00%"), "@@@@@@@@@@")
wobei
Function xFormat(ByVal s, ByVal width As String) As String
Dim temp As String
Dim deltaL As Integer
deltaL = Len(width) - Len(s)
If deltaL > 0 Then
temp = Space(deltaL) & s
Else
temp = s
End If
xFormat = temp
End Function
So wie ich es gelöst war durch folgende Maßnahmen:
Zum File -> options -> Client settings -> General alignment
Ändern Sie die Einstellungen in den Textmodus, und es funktionierte für mich.