vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Re: Einzelne Recordset Felder in Listbox integrieren 
Autor: srcdbgr
Datum: 17.04.07 08:39

Ich bin mir nicht sicher, ob ich Dein Problem richtig verstanden habe. Es scheint mir, Du möchtest wissen, wie Du an einzelne Feldinhalte einer Datnbanktabelle ran kommst. Das könntest Du mit ADO bspw. so erledigen:
'Deklarationen
Dim meineVerbindung As ADODB.Connection
Dim MeinRecordset As ADODB.Recordset
Dim meinSqlStatement As String
 
'Verbindung zur Datenbank herstellen
Set meineVerbindung = New ADODB.Connection
With meineVerbindung
    If .State = adStateOpen Then .Close
    .Provider = "Microsoft.Jet.OLEDB.4.0" 'Access 2000/XP
    .Properties("Data Source") = meinPfad & "meineAccessDB.mdb"
    .CursorLocation = adUseClient
    .Open
End With
 
'SQL-Statement erstellen; 
'das Recordset soll alle benötigten Felder enthalten
meinSqlStatement = "SELECT Feld1, Feld2, Feld3 FROM meineTabelle" 
 
'Recordset erstellen und öffnen
Set meinRecordset = New ADODB.Recordset
With meinRecordset
    If .State = adStateOpen Then .Close
    .ActiveConnection = meineVerbindung
    .LockType = adLockOptimistic
    .Source = meinSqlStatement
    .Open
End With
Jetzt hast Du alle benötigten Feldinhalte in einem Recordset. Für den Zugriff auf die Felder gibt es mehrere Möglichkeiten.
Zuerst die Syntax für den Zugriff auf ein Feld des Recordsets über den Feldnamen:
meineVariable = meinRecordset.Fields("Feld1").Value
Und jetzt die Syntax für den Zugriff auf den Feldinhalt über einen Index:
meineVariable = meinRecordset.Fields.Item(meinIndex).Value
Im zweiten Fall beginnt der Index bei "0" und bezeichnet die Position des Feldes innerhalb des mit obigen SQL-Statements erstellten Recordsets. In unserem Beispiel hat also Feld1 den Index "0", Feld2 den Index "1", etc. Damit kannst Du die Feldwerte über eine Zählschleife satzweise bequem auslesen und zuweisen.

Wenn Du das Recordset nicht mehr benötigst, schließt Du es mit:
meinRecordset.Close
Danach räumst Du noch auf, d. h. das nicht mehr benötigte Recordset-Objekt zerstören und aus dem Hauptspeicher löschen:
Set meinRecordset = Nothing
Das gleiche gilt auch für Deine Verbindung. Die Brauchst Du aber erst dann zu schließen und zu killen, wenn Du keinen Zugriff auf dei Datenbank mehr benötigst. Ich mache es gerne so, dass ich bei der Initialisierung meines Programms die Verbindung herstelle und diese erst bei Programmende wieder schließe.

Über SQL kannst Du auch die Felder aus mehreren Tabellen in einem Recordset zusammenfassen. Für eine Einführung in SQL schau mal hier SQL-Tutorial.

Gruß,
Michael

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. (Brian W. Kernighan)

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Einzelne Recordset Felder in Listbox integrieren1.843s.Schlicher16.04.07 14:42
Re: Einzelne Recordset Felder in Listbox integrieren1.782srcdbgr17.04.07 08:39
Re: Einzelne Recordset Felder in Listbox integrieren1.366s.Schlicher17.04.07 10:57
Re: Einzelne Recordset Felder in Listbox integrieren1.825srcdbgr17.04.07 14:00

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel