VB 6.0: Welches Steuerelement benutze ich ?

Hallo Kollegas,

ich weiß mal wieder nicht weiter *schluchz* !!

Ich möchte eine Oberfläche realisieren, in der die
User Datensätze aus einer Datenbank markieren können.
Dabei dürfen die User jedoch keine Inhalte markieren
(eben nur die komplette Datenzeile!). Durch Betätigung
eines Buttons (bspw. Datensatz bearbeiten) soll der
User in einer neuen Form den Datensatz bearbeiten
können. Die Inhalte sollen dann in die Datenbank
zurückgeschrieben werden und aktuallisiert angezeigt
werden.

Wie mach ich das bzw. geht das überhaupt ???
Wenn ja welches Grid (von den vielen) benutze ich dafür
und wo bekomme ich Infos zu den vielen verschiedenen Grids ?

Vielen Dank für eure Hilfe !!

Gruß

Tom

Hi Tom!

Wenn du Anzeige und Bearbeitung strikt voneinander trennen willst (so wie von dir beschrieben), dann nimm einfach eine stinknormale Listbox. Ist zwar ein bißchen umständlich zu handhaben, aber erfüllt seinen Zweck. Und du bist ziemlich unabhängig von der Datensatzanzahl. Ich habe schmerzlich erfahren müssen, daß das MSFlexGrid z.B. bei mir in einem Dialog bei ca. 3000 Datensätzen mangels Speicher ausgestiegen ist. Ist reichlich blöd, wenn eine Tabelle ca. 120.000 Datensätze enthält und die Suchkriterien eine Antwortvolumen von etwa 5.500 Datensätze ergeben.

Grüße
Siegfried

Hallo Siegfried,

an eine Listbox habe ich auch schon gedacht. Nur …, wie
zeige ich dort unterschiedliche Spalten an ? Ich habe mal
gehört, sowas geht nur in MS-ACCESS.

Gruß

Tom

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

an eine Listbox habe ich auch schon gedacht. Nur …, wie
zeige ich dort unterschiedliche Spalten an ? Ich habe mal
gehört, sowas geht nur in MS-ACCESS.

  1. Datensatz aus der Datenbank einlesen
  2. die einzelnen Felder des aktuellen Datensatzes zu einem Textstring zusammenfügen; dabei entweder die einzelnen Datenfelder auf maximal erlaubte Länge ausrichten (z.B. mit führenden oder nachfolgenden Leerzeichen auffüllen) oder zwischen die einzelnen Felder das TAB-Zeichen setzen ( CHR$(9) bzw vbTab).
  3. Textstring in Listbox einfügen

Frage: wie liest du die Daten aus der Datenbank in dein Programm ein? Per direkt an die Datenbank gehängtes Dialogelement wie etwa das DataGrid oder per SQL?

Grüße
Siegfried

ich denke per SQL ADO vielleicht. Kenne mich noch nicht
ganz so gut damit aus. Wird bestimmt klappen. Bin nur
immer noch nicht so glücklich wie ich die Anzeige
realisieren soll.

mal guggn…

Gruß aus Nürnberg

tom

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

Hi Thomas !

Am besten geht’s mit einem FelxGrid. Mit einer Listbox wirst Du nicht glücklich, eher noch mit einer ListView, welche aber ein wenig komplizierter zu handhaben aber viel funktioneller ist.

Ciao
Mario

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

Hi Siegfried und Tom !

Naja, man kann es auch mit einer Listbox lösen, stimmt. Habt ihr aber gesehen, wenn man es mit vbTab trennt, wie die Spalten dann aussehen ? Wenn man eine proportional Schrift verwendet werden nämlich keine Spalten draus sondern nur breite Abstände. Und vorallem : Es steht daher nichts untereinander was untereinander gehört. Besser wird es mit einer nicht proportionalen Schrift wie Courier. Allerdings muß man dann darauf achten, falls mal eine Spalte zu breit wird, daß alle anderen Zeilen ebenso breit werden.
Aber wozu diese Umstände wenn es Controls wie Flexgrids oder ListViews gibt ???
Und mit Click Events auf den jeweiligen Controls bekomme ich immer exakt den Datensatz den man will !

Ciao
Mario

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

Hallo Mario,

ich bin auch Deiner Meinung und habe mich für das
ADO-DataGrid Steuerelement entschieden. Leider treten
dabei viele Probleme auf (was wohl nicht am Steuerelement
sondern eher an meiner Unwissenheit liegt).

Ich versuchs trotzdem .

Gruß

Tom

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