1stL@DY Geschrieben 4. April 2002 Teilen Geschrieben 4. April 2002 kann mir jemand vielleicht Tipps geben wie ich Daten aus einer ACCESS DB in eine ListBox bekomme ??? Also ich bin dabei eine SW zu entwickeln in VB welches auf Daten in ACCESS zugreifen SOLL, jedoch kriege ich das irgendwie nicht hin !!! mennnoooooo ... also kann mir da jemand helfen ??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TWI Geschrieben 4. April 2002 Teilen Geschrieben 4. April 2002 Irgendwie habe ich dein Problem noch nicht richtig verstanden. Bekommst Du unter VB den Connect zur DB nicht hin, oder hast Du nach dem Connect Probleme beim Einlesen der Daten in die ListBox ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
1stL@DY Geschrieben 5. April 2002 Autor Teilen Geschrieben 5. April 2002 wenn ich ehrlich sein soll kriege ich das überhaupt gar nicht hin !!! eigentlich wollte ich alles unter VBA programmieren, aber das hab ich nicht hinbekommen und ich sollte es später als exe. laufen lassen, daher jetzt VB . ich bräuchte den Quelltext dazu ... wie man das in etwa macht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Boro Geschrieben 5. April 2002 Teilen Geschrieben 5. April 2002 Also, was VB & Access angeht, da führen eigentlich viele Wege nach Rom. Ich schrieb dir mal auf wie ich dass normalerweise machen würde, die Syntax muss du aber nicht unbedingt eins zu eins übernehmen, die kann man auch ganz leicht variieren. Ich arbeite normalerweise mit ADO, das ist eigentlich dass beste, finde ich. Um damit arbeiten zu können, mußt du erstmal unter Projekte und Verweise und dort die Microsoft ActiveX Data Objekts 2.5 einbinden. Also, für die Verbindung in die Datenbank brauchst du erstmal ein Connection-Objekt, dass deklarierst du am besten Public, denn das brauchst du sehr oft. Syntax : Public NameVerbindung as new ADODB.Connection. Anschließend rufst du dass Form_load Ereignis auf und initialisiert die Verbindung da. Syntax : NameVerbindung.open "Provider=Microsoft.jet.oledb.4.0.;Data Source=C:\PFADNAME\DATEINAME.mdb" Und schon bist du in der Datenbank drin. Um was auslesen zu können brauchst du noch ein Recordset-Objekt, das ist ein Zeiger auf die Tabelle innerhalb der Datenbank. Den deklarierst du auch als Public. Syntax : Public Recordsetname as New ADOB.Recordset. Dannach mußt du das Recordset noch initalisieren, das machst du am besten in dem Ereignis, das die Daten braucht. Syntax : rstrecordset.Open "TABELLENNAME", NAMEVERBINDUNG, adOpenDynamic, adLockOptimistic Jetzt zeigt dass Recordset auf den ersten Datensatz in der Tabelle die du angegeben hast und ist bereit dir die Daten auszugeben. Das kannst du testen indem eine Messagebox anzeigen läßt die den Wert ausgibt. Syntax msgbox Recordsetname!Spaltenname Achte dabei darauf dass du den Namen des Recordsets und den Namen des Feldes durch ein " ! " trennst. Der Spaltenname muss genau angegeben werden, sonst läuft es nicht. Dem Recordset kannst du auch SQL-Statemants mitgeben, aber das jetzt erstmal zweitrangig, oder ? So, dass sollte dir erstmal helfen, mir glühen jetzt nämlich die Finger !! So long ! Feivel :D Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Boro Geschrieben 5. April 2002 Teilen Geschrieben 5. April 2002 Es kommt darauf an welche Access-Version du hast, bei Access 97 mußt im Connection String statt 4.0 die alte Version 3.51 angeben, einfach austauschen, dann klappt´s ! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
1stL@DY Geschrieben 5. April 2002 Autor Teilen Geschrieben 5. April 2002 nur noch eins ... wie kann ich denn jetzt die einzelnen Daten in der ListBox ansprechen ??? zB wenn in der ListBox alle Daten aus der DB enthalten sind und ich will über xxx mehr infos haben (per MsgBox) wo gebe ich das an ??? oder wie kann ich xxx ansprechen ??? DANKE DANKE DANKE !!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rainbow Geschrieben 7. April 2002 Teilen Geschrieben 7. April 2002 du liest den Text der Listbox an der Stelle (über Index) aus und vergleichst ihn per Schleife mit dem Inhalt der Datenbank... Funzt prima... Hab ich auch so gemacht... gruß rainbow Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
1stL@DY Geschrieben 7. April 2002 Autor Teilen Geschrieben 7. April 2002 genau das kriege ich nicht hin. wie soll denn der code dafür lauten ??? ist es denn auch möglich dass zB Eintrag 4 in der ListBox5 ein MsgBox zugewiesen bekommt und wenn ich auf diesen 4. Eintrag klicke kommt dann diese MsgBox hervor ... wenn ja wie mache ich dass in VB ??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TWI Geschrieben 8. April 2002 Teilen Geschrieben 8. April 2002 @1stL@DY Hab da noch mal zwei Fragen: 1. hast Du eigentlich schon mal mit VB gearbeitet ? 2. was hältst Du davon Dir mal nen Buch zur Hand zu nehmen und einmal nachzulesen ? Hilft mehr, als sich alles von anderen vorkauen zu lassen; ist auch selbstständiger. Aber gut nun zu Deinem Problem: Also, den Index des angeklickten DS bekommst Du über die Funktion Listbox.ListIndex. Diese Funktion liefert Dir den Index des DS zurück. Den Text des ListBoxeintrages bekommst Du über die Funktion ListBox.List(Index). Die Anzahl der Einträge in Deiner Listbox bekommst Du über ListBox.ListCount. In all diesen Fällen musst Du die Bezeichnung Listbox mit der Bezeichnung Deiner Listbox ersetzen. Bsp. Zaehler as Integer Anzahl as Integer Zaehler = 0 Anzahl = 0 Anzahl = Listbox.ListCount For Zaehler = 0 to Anzahl - 1 if Listbox.List(Zaehler) = "blablabla" ... else ... end if Next Zaehler Hoffe das hilft Dir erstmal Gruss TWI Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BlearSun Geschrieben 25. April 2002 Teilen Geschrieben 25. April 2002 Den Weg wurde ich nicht nehmen, weil das saumäßig auf die Performance geht, was eigentlich nciht sein muss. Bilde dir ein Collection-Objekt und in der Moment wo du dir in eine "For-Schleife" die Daten in dem Combo-Box einträgst, kannst du auch kannst du auch die dazugehörige ID in diesem Collection-Objekt speichern. Danach kannst du bezugnehmen auf aktuelle Index des Combo-Boxes auch auf die zugehörige ID-Nummer in dem Collection-Objekt zugreifen und die ID abfragen. Angenommen, benutzer wählt ein Eintrag in dem Combobox. Index ist N. So suchst du dann in deinem Collection-Objekt. Nach dem Collection-Eintrag INDEX N! Ob es nun n+1 oder n-1 ist weiss ich im kopf nicht, habs schon lagn nicht mehr gemacht. Ausprobieren. Wichtig dabei, ist dass die Reihenfolge sich während der Laufzeit nicht ändert!!! Wenn ja, dann wäre wahrscheinlich die Schleife die einzige Möglichkeit.? Ich denke, aber dass es sowieso kein Sinn macht die Reihenfolge im Nachhinein zu ändern! Denn man holt sich die Daten sortiert aus der Datenbank und trägt sie in ein Combo-Box ein. Und anhand diese ID kanns tdu die die restliche Infos aus der Datenbank holen. Und wenn du die Verbindung zur DAtenbank nicht mehr haben willst, (aus performancegründen) dann kannst du dir ja dein Recordset behalten und nach diese ID-Nummer dann später filtern. also poRS.Filter = "ID_Nr = '112'". so in etwa. Das entlastet nicht nur deine Applikation. Ist auch technisch viel sauberer als wenn du in irgendwelche Schleifen, nach datensuchst. Und selbst dann, wenn du wirklich gezwungen bist, dein Recordset nach einem Bestimmten Datensatz zu durchsuchen, kannst du ja die Filter-Eigenschaft von Recordset verwenden. Ist schneller und sauberer. poRS.Filter = "" setzt dann auch dein Filter wieder zurück und kriegst danach alle Datensätze angezeigt. MfG Blear Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.