Listenbox

Hallo,
ich habe eine Listenbox, in die ich den Ihalte von mehrere Spalten aus der Oracle-Tabelle einfüge. Die Inhalte der Spalten verkette ich mit &.
Ich kann sie auch ohne Probleme anzeigen. Ich möchte aber, daß die Spalten in der Listenbox untereinander ordentlich angezeigt werden.
Das heißt, sie sollen so ausehen:
Nummer Strasse PLZ Ort Land
00001 Bahnhofstr 65000 Frankfurt Deutschland
010256434 Basicstr AE6345 London Großbritanien

Zur Zeit sieht es aber so aus

Nummer Strasse PLZ Ort Land
00001 Bahnhofstr 65000 Frankfurt Deutschland
010256434 Basicstr AE6345 London Großbritanien

Was muß ich machen in der Listenbox?

Gruß

R.

Hallo.

Das heißt, sie sollen so ausehen:

Nummer Strasse PLZ Ort Land
00001 Bahnhofstr 65000 Frankfurt Deutschland
010256434 Basicstr AE6345 London
Großbritanien

Zur Zeit sieht es aber so aus

Nummer Strasse PLZ Ort Land
00001 Bahnhofstr 65000 Frankfurt Deutschland
010256434 Basicstr AE6345 London
Großbritanien

Irgendwie kann ich den Unterschied nicht erkennen :wink: Vermutlich solll es so aussehen :

Nummer Strasse PLZ Ort Land
00001 Bahnhofstr 65000 Frankfurt Deutschland
010256434 Basicstr AE6345 London Großbritanien

Wenn Du die einzelnen Felder einfach mit & verkettest, werden diese entsprechend dem definierten Format aneinandergeklatscht. Ich würde in der Listbox mit mehreren Einzelfeldern für Nummer, Straße usw. arbeiten. Die andere Möglichkeit wäre, vor der Ausgabe der einzelnen Felder in die Verkettung jedes einzelne Feld auf eine Einheitslänge zu bringen und dann erst die Verkettung mit & vorzunehmen.

In VBA wäre das in etwa (wenn der längste Ortsname 12 Stellen hätte)

While Len(Ort)und analog für die anderen Felder.

Immer vorausgesotzen, dass ich die Problemstellung richtig erfasst habe (wie gesagt, aus Deiner Darstellung kann ich optisch nix ableiten) ...

Gruß Eillicht zu Vensre
While Len(Ort)

Jupp, so würde ich es im ersten Ansatz auch machen. Allerdings gibt es dafür auch die Space-Funktion:

    Ort = Ort & Space(12-Len(Ort))

Man könnte darüber hinaus die "12" erstmal ermitteln, indem man das längste Element in jeder Spalte sucht (und findet). So mache ich für gewöhnlich variable Ausgaben mit fester Spaltenbreite.

Kristian

Hallo,

Ich möchte aber, daß
die Spalten in der Listenbox untereinander ordentlich
angezeigt werden.

sieh Dir doch mal das MsFlexGrid an. Damit sieht es besser aus und die Überschrift läuft beim Scrollen nicht aus dem Bild.

Gruß, Rainer

Hallo,
danke für eure Hilfe. Ichhabe aber nur ein Problem.
Ein Buchstabe und ein Bland sind ja nicht gleich bereit.
Beipiel:
Ulm
Frankfurt
Diese beide Städte stehen nicht untereinander, denn die Blanks nicht so bereit sind wie die Buchstaben.
Ich nutze die Funktion MID(ort,1,12) und dann mir der folgeneden Schleife füge
ich Blanks hinzu:
while len(ort) [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Hat Jemand eine Idee?

ja, nimm keine Listbox! Die ist nicht für Tabellen gedacht, dafür gibt es das Flexgrid.

Gruß, Rainer

Achso, Voraussetzung ist natürlich, dass Du einen Proportinal-Zeichensatz verwendet. Normalerweise wird Courier New genommen. Einziger Nachteil ist, dass der naturgemäß recht breit ausfällt.

Kristian

Hi,
danke für Antwort, aber was ist „Flexgrid“. In der Hilfe für AUTOCAD-VB 6.0 finde ich nix darüber?

Gruß

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

danke für Antwort, aber was ist „Flexgrid“.

Ein VB-Steuerelement für Tabellen.

In der Hilfe für
AUTOCAD-VB 6.0 finde ich nix darüber?

Autocad? Du verwendest VBA? Da kenne ich mich nicht so gut aus.
In VB gibt es normaler Weise im Menü den Punkt ‚Projekt‘ und da ‚Komponenten‘ und da solltest Du ‚Microsoft Flexgrid Control‘ finden. Häkchen ran, auf OK und Du hast ein weiteres Steuerelement.

… ich habe aber gerade bei mir nachgesehen und bemerkt, daß auch die Liste eine Eigenschaft ‚Columns‘ hat. Die ist nicht so flexibel wie das Flexgrid, es sind immer alle Spalten gleich breit, notfalls sollte das aber auch weiter helfen. Nur wie man damit umgeht habe ich noch nicht durchschaut. ;-( Ich bestel aber garade damit und melde mich, wenn ich es verstanden habe.

Gruß, Rainer

Hi,
ja, arbeite mit Autocad-VBA. In der Liste „Verweisen“ habe ich auch den Eintrag „Microsoft Flexigrid…“ leider nicht gefunden.
Ja, die Spalten, die ich in der Listenbox zeige, sind unterschiedlich groß.

Gruß

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,
habe die schriftart von Arial auf „Corier New“ geändert, es ist aber jetzt so, wie ich es wollte. Ich muß nur sehen, wie ich mit den Formatierungen richtig mache.
Ich habe Zahlen mit Hochkoma und habe sie als Currency definier. Ich dachte, daß ich statt 0 immer 0.00 sehe (automatisch), aber es war nicht der Fall. Dann habe ich das Kommando Format benutzt zahl=Format(zahl,2). 2 steht für 2 Nachkommastellen, aber bekomme auch immer Fehlermeldungen. Nun muß ich es sehen, wie ich das Problem noch lösen kann.

lg

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

habe die schriftart von Arial auf „Corier New“ geändert, es
ist aber jetzt so, wie ich es wollte.

Ach so, ich dachte, du bestehst auf Truetypefonts, weil Du das betont hattest …

Ich muß nur sehen, wie
ich mit den Formatierungen richtig mache.
Ich habe Zahlen mit Hochkoma und habe sie als Currency
definier. Ich dachte, daß ich statt 0 immer 0.00 sehe
(automatisch), aber es war nicht der Fall. Dann habe ich das
Kommando Format benutzt zahl=Format(zahl,2). 2 steht für 2
Nachkommastellen, aber bekomme auch immer Fehlermeldungen. Nun
muß ich es sehen, wie ich das Problem noch lösen kann.

Das ist mal leicht. :wink:

Format(zahl, „#0.00“)

Versuch’s mal damit, das funktioniert :wink:

Gruß, Rainer

Hallo,

ja, arbeite mit Autocad-VBA. In der Liste „Verweisen“ habe ich
auch den Eintrag „Microsoft Flexigrid…“ leider nicht
gefunden.

das ist traurig, aber zu ändern. :wink:
Ich darf Dir ein Beispielprogramm schicken, in dem ein Flexgrid enthalten ist. Nachdem Du das bei Dir installiert hast, steht Dir das Flexgrid auch zur Verfügung. Völlig legal. Soll ich … ?

Gruß, Rainer

Hi,
nein, das ist egal, welche Schriftart ich nehme. das hat ja so geklappt. :smile:
Habe mit zahl=Format(zahl,"#0.00") versucht, sehe ich keine Änderung. Also, die Zahl 12 wird immer noch wie 12 und nicht 12.00 angezeigt.
Zahl ist als Currency definiert.

Gruß

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

nein, das ist egal, welche Schriftart ich nehme. das hat ja so
geklappt. :smile:

OK.

Habe mit zahl=Format(zahl,"#0.00") versucht, sehe ich keine
Änderung. Also, die Zahl 12 wird immer noch wie 12 und nicht
12.00 angezeigt.
Zahl ist als Currency definiert.

was passiert, wenn Du schreibst:
List1.Additem Format(Zahl,"#0.00")
???
Ich habe das getestet, bevor ich das gepostet habe.
Sicherheitshalber aber noch die entsprechende Passage aus der Hilfe:

Dim Zeit1, Datum1, ZF1
Zeit1 = #17:04:23#
Datum1 = #January 27, 1993#

' Aktuelle Systemzeit im langen Zeitformat des Systems bestimmen.
ZF1 = Format(Time, "Long Time")

' Aktuelles Systemdatum im langen Datumsformat des Systems bestimmen.
ZF1 = Format(Date, "Long Date")

ZF1 = Format(Zeit1, "h:m:s") ' Liefert "17:4:23".
ZF1 = Format(Zeit1, "hh:mm:ss AMPM") ' Liefert "17:04:23".
ZF1 = Format(Datum1, "dddd, mmm d yyyy") ' Liefert "Mittwoch,
 ' 27. Januar 1993".
' Wird kein Format angegeben, so wird eine Zeichenfolge geliefert.
ZF1 = Format(23) ' Liefert "23".

' Benutzerdefinierte Formate.
ZF1 = Format(5459.4, "##,##0.00") ' Liefert "5.459,40".
ZF1 = Format(334.9, "###0.00") ' Liefert "334,90".
ZF1 = Format(5, "0.00%") ' Liefert "500,00%".
ZF1 = Format("BANANE", "") ' Liefert "BIRNE".

Hast Du nicht versehentlich statt des Punktes ein Komma gesetzt? Dann funktioniert es nämlich nicht. :wink:

Gruß, Rainer

Hi,
Komisch, so geht es, wenn ich nach additem mit format(…) einbaue. Ich habe ja nur vorher in ein variable gespeichert und dann hatte liste1.additem variable
Ich kann es nicht verstehen, warum so nicht ging, aber so geht es, aber Hauptsache geht es.

ich danke Dir und einen schnöen Tag!

Rezaei

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Komisch, so geht es, wenn ich nach additem mit format(…)
einbaue. Ich habe ja nur vorher in ein variable gespeichert
und dann hatte liste1.additem variable
Ich kann es nicht verstehen, warum so nicht ging, aber so geht
es, aber Hauptsache geht es.

mit der Ursache bin ich unsicher. Ich vermutem daß es damit zusammen hängt, daß in der Veriablen eine Zahl steht und Du einen String hineinschreiben willst.

Dim w As String
Zahl = 5
w = Format(Zahl,"#0.00")

sollte auch funktionieren. (Nicht getestet!)

Gruß, Rainer