netfireman Geschrieben 12. April 2002 Geschrieben 12. April 2002 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.
Tiana Geschrieben 12. April 2002 Geschrieben 12. April 2002 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
netfireman Geschrieben 12. April 2002 Autor Geschrieben 12. April 2002 Danke, hat mir gut geholfen. Ich habe noch drei Fragen. 1. Wie gebe ich den Inhalt der Tabelle in ein DATACombo aus? 2. Wie gebe ich den Inhalt der Tabelle in die einzelnen Felder des Datagrib aus? 3. Wie kann ich die eingabe in einem Textfeld speicher?
Tiana Geschrieben 12. April 2002 Geschrieben 12. April 2002 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden