Zum Inhalt springen

Visual Basic 6 - Datenbankanbindung mit Access


Empfohlene Beiträge

Geschrieben

Hallo

Ich bräuchte dringen Hilfe bei der Datenbankanbindung in VB6.

ich kenn mich ein wenig in VB aus, aber bin ein totaler anfänger im coding und kenn mich überhaupt nicht aus.

Ich habe jetzt eine Datenbank erstellt und versucht mit ADODC unter dem provider Jet.OLEDB.4.0 und dem folgenden code zu starten:

Dim cn As New ADODB.Connection

Dim conStr As String

conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\datenbank.mdb"

cn.Open conStr

Dim cmd As New ADODB.Command

cmd.ActiveConnection = cn

cmd.CommandText = "INSERT INTO Getränke('Getränkenummer', 'Getränkeart') VALUES('Value1', 'Value2')"

cmd.Execute

wenn ich starten will, zeigt er ein fehler beim komilieren: "außerhalb einer prozedur ungültig" und markiert die 3.coding zeile mit conStr.

ist der code falsch, oder fehlt etwas?, muss ich noch etwas in den Eigenschaften ändern oder in der Datenbank?

Kann mir bitte jemand helfen?

mfg

VB6er :(

Geschrieben

jo wie |roTekuGeL| sagt...

deinen code, solltest du ins form load packen, oder bei einem button click aufrufen!

außerdem, wenn deine connection nicht geht, probier mal das:

Dim cn As New ADODB.Connection

Dim conStr As String

cn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\datenbank.mdb"

cn.Open

Geschrieben

Hi,

schmeiß das ADODC Steuerelement in die Tonne, das bringt nur Ärger.

Zudem sollte man Objekte nicht mit "Dim XXX As New XXX" deklarieren,

weil hierbei

1. die Objekte bei "Set XXX = Nothing" nicht gelöscht werden

2. Du mehr Kontrolle im Quellcode hast (wann welche Objekte aktiv sind).

Der Mode sollte bei Access immer "adUseClient" sein.

So sollte es gehen



Dim cn       As ADODB.Connection

Dim conStr  As String


conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\datenbank.mdb"


Set Cn = New ADODB.Connection

With Cn

       .CursorLocation = adUseClient

       .Mode = adModeShareDenyNone

       .ConnectionString = conStr

       Call .Open

End With


' ausführen der Anweisung

Dim sSQL   As String

sSQL = "INSERT INTO Getränke('Getränkenummer', 'Getränkeart') " & _

           "VALUES('Value1', 'Value2')"


Call Cn.Execute(sSQL)

Geschrieben

hi,

danke erstmal für eure Hilfe

Ich hätte noch ein paar Fragen, falls ihr sie mir beantworten könnt.

1. Was ist der Unterschied zwischen ADODB und ADODC?

2. Wie bind ich das ganze mit ADODB an, muss man hier irgendwas einstellen, und welches Steuerelement muss man benutzen?

3. Wie stell ich das "adUseClient" ein ?

Geschrieben

Hi,

1.) Der Unterschied zw. ADODB und ADODC:

ADODC ist ein Steuerelement, welches zur Navigation und Bearbeitung der Daten

da ist, vergiss dies ganz schnell, da stößt man schnell an die Grenzen des Steuerelementes.

ADODB ist die Bibliothek für den DB-Zugriff und stellt Dir Objekte (wie Connection, Recordset) zur Verfügung.

2.) Einbinden tust Du es über die VB 6 IDE unter Verweise (Menü->Projekt->Verweise).

Dort gibt es den Eintrag "Microsoft Active Data Objects XXX", wobei XXX für die Version steht.

Ansonsten gute Literatur

Der große ADO Kurs:

http://www.activevb.de/tutorials/tut_adokurs/adokurs.html

Tipp 0440: ADO Zugriff auf Access 97 DB und Darstellung in ListView + DataGrid

http://www.activevb.de/tipps/vb6tipps/tipp0440.html

Sehr gutes Beispiel:

SQL_Adress (eine Adressverwaltung)

http://www.activevb.de/cgi-bin/upload/download.pl?id=2444

3.) Siehst Du in meinem Codebeispiel.

Hier nochmal eine Erklärung, warum kein "dim X As New XXX":

- Projekt aufmachen

- Modul hinzufügen

- code reinkopieren

- "menü->Projekt->Eigenschaften" Startobjekt auf "Sub Main" stellen

- STRG + G für Direktfenster und das Projekt starten


Private Sub Main()

    Dim DimAs As VBA.Collection

    Dim DimAsNew As New VBA.Collection


    Debug.Print "Collections vor dem Instanzieren:"

    Debug.Print vbTab & "DimAs    = " & TypeName$(DimAs)

    Debug.Print vbTab & "DimAsNew = " & TypeName$(DimAsNew)


    Set DimAs = New VBA.Collection

    Set DimAsNew = New VBA.Collection


    Debug.Print "Collections nach dem Instanzieren:"

    Debug.Print vbTab & "DimAs    = " & TypeName$(DimAs)

    Debug.Print vbTab & "DimAsNew = " & TypeName$(DimAsNew)


    Set DimAs = Nothing

    Set DimAsNew = Nothing


    Debug.Print "Collections nach dem Entladen:"

    Debug.Print vbTab & "DimAs    = " & TypeName$(DimAs)

    Debug.Print vbTab & "DimAsNew = " & TypeName$(DimAsNew)

End Sub

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