VB6er Geschrieben 1. Juni 2006 Geschrieben 1. Juni 2006 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 Zitieren
-roTekuGeL- Geschrieben 2. Juni 2006 Geschrieben 2. Juni 2006 Private (oder Public) Sub Test () End Sub pack das da mal rein ( das in den klammern ist optional auszuwechseln ) Zitieren
k4fu Geschrieben 2. Juni 2006 Geschrieben 2. Juni 2006 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 Zitieren
DevHB Geschrieben 2. Juni 2006 Geschrieben 2. Juni 2006 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) Zitieren
VB6er Geschrieben 2. Juni 2006 Autor Geschrieben 2. Juni 2006 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 ? Zitieren
DevHB Geschrieben 2. Juni 2006 Geschrieben 2. Juni 2006 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 Zitieren
Empfohlene Beiträge
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.