# access mdb auslesen bzw. verändern



## essar (25. November 2002)

Hi....

Ich möchte mit VisualStudio VB ganz einfach eine mdb auslesen und deren Tabelleninhalte verändern....

Ich habe schon mit ADODB herumgebastellt und bin leider zu keinen befiedigendem Ergebnis gekommen......

Auch wenn ich einen MS Provider einschalte kann ich das total vergessen...

kann mir jemand helfen


----------



## Dario Linsky (25. November 2002)

Wo liegt denn genau das Problem? Eigentlich ist das ganze relativ einfach, aber trotzdem etwas umfangreicher. Kriegst Du schon gar keine Verbindung zur Datenbank oder was funktioniert nicht?


----------



## essar (25. November 2002)

Naja ich hab meinen Provider Microsoft.Jet:OLEDB.4.0; schon mit angewendet aber ich bekomme keine Verbindung zu meiner Datenbank....

ich mache das so



Public Class Form1
    Inherits System.Windows.Forms.Form


#Region " Vom Windows Form Designer generierter Code "

    Public Sub New()
        MyBase.New()

        ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
        InitializeComponent()

        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen

    End Sub

    ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ' Für Windows Form-Designer erforderlich
    Private components As System.ComponentModel.IContainer

    'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
    'Sie kann mit dem Windows Form-Designer modifiziert werden.
    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
    Friend WithEvents Button1 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(112, 160)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(72, 32)
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "Button1"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1})
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)

    End Sub

#End Region

    Imports System.Data.OleDb
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim db As New ADODB.Connection(), rs As New ADODB.Recordset()
        db.Open("Provider=Microsoft.Jet:OLEDB.4.0; Data Source=../edm\db1.mdb")
        rs.Open("USER")

    End Sub
End Class


und das funktioniert nicht auch wenn ich die ADO 2.6 eingebunden habe


----------



## Dario Linsky (25. November 2002)

Gibt es irgendeine Fehlermeldung? Eigentlich sollte bei einem fehlgeschlagenen Verbindungsaufbau schon ein Fehler auftreten.

Ansonsten änder mal den Verbindungsstring:

```
db.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Dateiname)
```
... wobei Du für Dateiname besser die vollständige Pfadangabe inkl. Dateinamen der Datenbank angibst.


----------



## essar (26. November 2002)

HAlso ich bekomme diese Fehlermeldung:

Eine nicht behandelte Ausnahme des Typs 'System.Runtime.InteropServices.COMException' 
ist in WindowsApplication2.exe aufgetreten.

Zusätzliche Informationen: 
'C:\Dokumente und Einstellungen\Sven\Desktop\edmbh\applikation\WindowsApplication2\dh\db1.mdb' 
ist kein zulässiger Pfad. Stellen Sie sicher, dass der Pfad richtig eingegeben wurde und 
dass Sie mit dem Server, auf dem sich die Datei befindet, verbunden sind.


kannst du damit etwas beginnen?????


----------



## Dario Linsky (26. November 2002)

> Stellen Sie sicher, dass der Pfad richtig eingegeben wurde und
> dass Sie mit dem Server, auf dem sich die Datei befindet, verbunden sind.


... dann mach das doch einfach mal.


----------



## essar (26. November 2002)

Habsch überprüft und habe folgenden Fehler bekommen:

Eine nicht behandelte Ausnahme des Typs 
'System.Runtime.InteropServices.COMException' ist in WindowsApplication2.exe aufgetreten.

Zusätzliche Informationen: Die Verbindung kann nicht verwendet werden, um diesen Vorgang auszuführen.  
Sie ist entweder geschlossen oder in diesem Zusammenhang ungültig.


----------



## Dario Linsky (26. November 2002)

> Die Verbindung kann nicht verwendet werden, um diesen Vorgang auszuführen.
> Sie ist entweder geschlossen oder in diesem Zusammenhang ungültig.


Die Fehlermeldung ist normal, wenn das Verbindungsobjekt zur Datenbank (wahrscheinlich vom Typ ADODB.Connection) geschlossen ist.

Schieb den Code mal durch den Debugger und zeig mir die Zeile, an der der Fehler auftritt.


----------



## essar (26. November 2002)

Also wenn ich diese besagte Tabelle öffne....


mit : rs.open("Tabelle1")

dann kommt die o.g. Fehlermeldung


----------



## Dario Linsky (26. November 2002)

Klar, weil in dem Augenblick keine Verbindung zur Datenbank besteht, also kann auch keine Tabelle über diese Verbindung geöffnet werden.


----------



## essar (26. November 2002)

klar ich habe vergessen den Bezug auf meine schon geöffnete Datenbank herzustellen.....


ich teste das mal aus

werde dich auf dem laufenden halten


ps.: wenn dir was gutes dazu einfällt kanst ja mal schreiben


----------



## essar (26. November 2002)

habe aber ein leichte syntaxproblem wenn ich die felder auslesen möchte...???

a. ich kann leider nur lesen....
b. ich kann mich nicht wie gewohnt z.b. rs![Spaltenname] darauf beziehen

hast du vielleicht irgend einen gedanken???????


----------

