Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Visual Basic 6 - Datenbankanbindung mit Access

Empfohlene Antworten

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 :(

Private (oder Public) Sub Test ()

End Sub

pack das da mal rein ( das in den klammern ist optional auszuwechseln ;) )

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

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)

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 ?

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.