Zum Inhalt springen

VB und Access Datenbank mit ADO


netfireman

Empfohlene Beiträge

Hi,

ich habe ein Programm, bei dem Man beim Start eine Datenbank öffnet, wie kann ich jetzt den inhalt von einer Tabelle dieser Datenbank in ein Textfeld übergeben?:confused: Ich habe schon etwas mit ADO verbindungen gehört, aber keine ahnung wie das geht

Das Programm ist in VB 6 geschrieben und die Datenbank ist eine Access 2000 Datenbank.:(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

folgende Schritte:

1. Lege in einem Modul (mdlMain) folgende PublicVariabeln an:

Public c As Command

Public ssql As String

Public conndb As New ADODB.Connection

Public RSmeinRS As ADODB.Recordset

2. Schreibe in das Form_load deines Hauptformulares folgende Syntax, hierzu benutze ich immer (egal welche DB) eine ODBC-Datenquelle mit angabe von User und Passwort :

Set conndb = New Connection

conndb.CursorLocation = adUseClient

conndb.Open "NameODBCDatenquelle", "User", "Passwort"

Call subFillRS

3. Am besten schreibe eine eigene Sub, in der dein Recordset gefüllt wird:

Sub subFillRS()

ssql = "Select * from Tabelle"

Set RSmeinRS = New ADODB.Recordset

RSmeinRS.LockType = adLockOptimistic

RSmeinRS.ActiveConnection = conndb

RSmeinRS.Open (ssql)

End Sub

4. Übergebe die Daten an dein Textfeld:

Textfeld.text=RSmeinRecordset.fields("Spaltenname").value

Noch Fragen???

Gruß, Tiana

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Zu Frage 1:

combo.Clear 'Löscht den Inhalt

Do Until RsMeinRS.EOF = True

Combo.AddItem RsMeinRS.Fields("Spaltenname").Value

RsMeinRS.MoveNext

Loop

zu Frage 2:

Keine Ahnung, arbeite nicht mit dem Datagrid

zu Frage 3:

Auf der sicheren Seite bist Du mit folgendem Weg:

im mdlMain (Du erinnerst Dich) eine Varaiable mit dem Namen Flag anlegen (string)

Das Ereignis tetxfeldOnChange weist dem Flag den wert "neu" oder wie auch immer zu.

Wenn jemand auf z.B. einen Speichern- Button klickt folgendes ausführen:

If Flag= neu then

'Insert

ssql = "Insert INTO Tabelle (Feld1,Feld2) VALUES (' " & Textfeld.Text & " ', ' " & Textfeld2.text & "')"

else

'z.B. eine Update anweisung, wenn bestehnde Daten geändert wurden

End If

conndb.Execute (ssql)

Call subFillRecordset

Wenn Du so verfährst umgehst du eventuelle Probleme, die auftreten können, wenn Du z.B. mit einem Recordset.refresh arbeitest. Allerdings sollte dann die erste Befehlszeile deiner Sub FillRecordset lauten:

RSMeinRS.close

set RSMeinRS=nothing

Wenn Du mir deine Mail- Adresse gibst, kann ich Dir ja mal ein kleines DemoProgramm schicken, wo Du Code klauen kannst!

Gruß, Tiana

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...