Zum Inhalt springen

Vb6


Lady1201

Empfohlene Beiträge

Hallo!

Ich habe da zwei Probleme mit VB6/ Access:

1. Ich soll in einer Listview die Möglichkeit bieten, durch einen Klick auf den Spaltenkopf den Inhalt der Liste zu sortieren. Habe aber leider keine Ahnung, wie ich das anstellen soll!

2. Möchte nur den in einer Listview markierten Datensatz bearbeiten (Ganze Zeile ist markiert). Der Datensatz soll über SQL in Teile zerlegt und in Textboxen oder ähnliches geschrieben werden. Den Teil mit SQL kann ich (hoffentlich) aus meinen bestehenden SQL-Anweisungen entwickeln, aber was muss ich im Code schreiben, damit ich genau den markierten Datensatz bekomme.

Gruss

Lady

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich benutze ein Listview in einem VB-Formular. Die Formulare sind sozusagen mit Access-Tabellen verknüpft. Ich gebe über ein Formular z. B. eine Taetigkeit ein, die wird in einer Access-Tabelle gespeichert und wenn man einen bestimmten Command-Button drückt in über ein ListView ausgegeben. Natürlich gebe ich neben der Taetigkeit noch weitere Daten ein, die ebenfalls gespeichert und zusammen mit der Taetigkeit in dem ListView ausgegeben werden. In dem ListView wird ein zusammengehörender Datensatz in einer Zeile ausgegeben. Ich möchte eben jetzt z. B. die Taetigkeiten alphabetisch ordnen, oder nach Datum, ...

Ist es jetzt verständlicher, was ich meine?

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

jep. Es ist verständlicher geworden. Allerdings arbeite ich nicht mit den verknüpften Objekten, sondern programmiere meistens mit Recordsets, da hättest Du dann die Möglichkeit über dein SQL-Statement eine Sortierung anzugeben.

Grúß, Tia

P.S. Tut mir leid, das ich Dir nicht weiterhelfen kann!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, aber ich glaube ich habe mich schon wieder falsch ausgedrückt!

Mit "Access und VB verknüpft" habe ich mehr "bildlich" gesprochen. Benutze auch ein Recordset. Mit verknüpften Objekten meinst du so was wie Data usw., oder?

Sorry, dass ich mich scheinbar immer nur so undeutlich ausdrücken kann, aber ich habe eben noch nicht viel in VB gearbeitet. Wir hatten es zwar mal in der Schule, aber was wir da gemacht haben ist einfach nur M...!

Gruss Lady

Link zu diesem Kommentar
Auf anderen Seiten teilen

HI,

ist ja kein Problem. Also ich gehe davon aus, dass du die Spalte deines ListViews mit der Eigenschaft OnClick versehen kannst. Bei OnKlick kannst Du dein Recordset aufsteigend nach der Spalte sortieren indem Du folgenden Befehl benutzt:

Recordset.Sort = "Spalte"

Ich hoffe, das hilft Dir weiter!

Gruß, Tia

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Danke Tiana, das Sortieren funktioniert! Hast du vielleicht eine Idee, wie ich meinem Programm sagen kann, dass ich den markierten Eintrag des ListViews verwenden will?

So was wie

ListViewEintrag.Ausgewählt ....

eben in der VB-Sprache.

Komme mit dem Teil leider überhaupt nicht weiter.

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

du kannst es mal mit folgendem Befehl versuchen:

if ListView.Selected(i)=true then

..

end if

i ist eine Zählvariabel, die den Index der angezeigten Elemente darstellt. Wenn Du dein Listview durchgehst und überprüfst, ob das Element ausgewählt ist, musst du eine Schleife bauen. Könnte so aussehen:

x=ListView.Listcount

Do until i>=x

if ListView.Selected=true then

String=listview.list(i)

end if

i=i+1

loop

Ich hoffe es funktioniert!

Gruß, Tia

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Tiana!

Leider funktioniert es so nicht. Habe aber gerade einen Einfall, wie es evtl. funktionieren könnte.

Ich möhte über die ID der Access-Tabelle, in der die Reihe, die ich markiert habe abgespeichert ist wieder an die Daten kommen.

Mein Vorhbaen:

- ID des markierten Eintrags herauslesen

- und dann die einzelnen Spalten der Accesstabelle über die ID ansprechen

Mal sehen, ob es auf diese Weise funktioniert! Ich werde es dann mal versuchen.

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

wenn du über das Listview in VB gehst kannst du einem Eintrag einen Key geben der immer einen Buchstaben enthalten muss. ich nehm immer als Key : "r" & lngItemID.

!!!Der Key muss immer eindeutig sein.!!!!

Wenn Du nun einen Eintrag aus der List und dieser makiert ist kannst du diesen Wert wieder auslesen.

Ich gehe wie folgt vor

dim lstItem as Listitem

FOR EACH lstItem IN ME.listview.listitems

IF lstItem.Selected=TRUE THEN

lngListID=mid(lstItem.key,2) '** auslesen des Keywertes ohne den Buchstaben

ENDIF

NEXT lstItem

Und so kann ich dann diesen Wert weiterverwenden.

Wenn man nun mehrere Werte makieren kann sollte man die Werte entweder nacheinander abarbeiten oder alle in ein Array füllen.

Gruß

Guido

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo!

Ich habe in der Access-Tabelle eine laufende Nummer als ID für jeden Datensatz. Möchte eben durch eine SQL-Anweisung diese ID abfragen, damit ich die einzelnen Einträge der Tabelle wieder über eine Textbox oder in einer Combo-Box ausgeben kann. Aber wenn ich ihm sage, er soll die ID der markierten Spalte herauslesen vergleicht er lediglich den ersten Eintrag der ListView, in meinem Fall den Benutzernamen mit der ID der Access-Tabelle! Und den Benutzernamen gibt es in der Tabelle natürlich mehr als einmal!!! Werde es morgen mal auf Guidos Art versuchen!

Noch ne Frage: Kann ich für eine Spalte der ListView ein Zahlenformat vorgeben? Die Stunden sollten in Industriestunden ausgegeben werden, d.h. z. B. 7,50. Aber der lässt bei der Ausgabe immer die Null weg! Ich habe es schon so versucht:

intzeit = Format$(intzeiteingabe, "00.00")

aber er gibt es weiter aus wie vorher, also 7,5.

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Stunden sollten in Industriestunden ausgegeben werden, d.h. z. B. 7,50. Aber der lässt bei der Ausgabe immer die Null weg! Ich habe es schon so versucht:

intzeit = Format$(intzeiteingabe, "00.00")

aber er gibt es weiter aus wie vorher, also 7,5.

versuch mal den Zahlenwert in eine String Variable zu speichern oder Du schreibst den Zahlen wert mit

Set lstItem = me.listview1.Listitems.add (,, Format$(intzeit, "00.00") )

in das Listview.

So solltst Du Dein Ziel erreichen

Gruß

Guido

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Guido!

Danke für den Tipp! Habe die Anweisung etwas umgestellt und jetzt funktioniert wenigstens die Zeitausgabe!

Werde später mal einen Kollegen wegen meines anderen Problems fragen, da komme ich nämlich absolut nicht weiter.

Melde mich noch mal, wenn ich eine Lösung habe :) bzw. wenn ich ein neues Problem habe :rolleyes: (was wahrscheinlicher wäre).

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Phil!

Habe leider die Vorgabe ein ListView zu verwenden, trotzdem danke für deinen Tipp, bin ja für alle Ratschläge offen!

Habe leider nur kurz VB in der Schule gehabt und dort haben wir so gut wie nichts gemacht! Keine OOP und nur "Spielereien", wie Berechnung eines Zinssatzes nach der Eingabe von Werten, also eigentlich nichts, wobei man wirklich was lernt. Vor allem, wenn man in der nächsten Stunde statt dem Zinssatz z. B. einen Durchschnitsswert berechnet, usw.....

Und will man nachlesen, wenn man solche Probleme wie das mit der ListView hat? In Büchern kannst du da lange suchen! Habe zumindest in 3 verschiedenen nicht passendes gefunden!

Also sorry, wenn ich euch mit Fragen nerve!

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von God_of_Hellfire

hi

wer macht denn so komische vorgaben?

wenn das geht schick mir dein project mal zu.

ansonsten kann ich dir Active VB empfehlen.

poste da mal ins forum

Hi!

Erst mal danke für deine Tipps und für deine Hilfe-Angebote. Bin gerade bei der Lösung des Problems um einiges weitergekommen. Melde mich aber bestimmt noch mal! Mein Programm ist ja noch lange nicht fertig und Probleme gibt es ja ständig!:(

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...