Daten aus 2 verschiedenen Datenbanken

22/09/2008 - 20:59 von Susanne Senger | Report spam
Hallo, NG,

ich brauche lesenden Zugriff auf ein paar Tabellen, die in 2 verschiedenen
Access-DBs stehen. Von Access aus kann ich ja problemlos von einer DB auf
eine andere zugreifen, aber in VS 2008 kriege ich das nicht hin. Ich habe
unter Data Sources beide DBs stehen, aber ich kriege von einer DB keinen
Zugriff auf die andere Tabelle. Hat mir jemand einen Tipp?

Gruß aus München
Susanne
 

Lesen sie die antworten

#1 Peter Götz
23/09/2008 - 10:55 | Warnen spam
Hallo Susanne,

ich brauche lesenden Zugriff auf ein paar Tabellen,
die in 2 verschiedenen Access-DBs stehen.



Gibt es irgendwelche Beziehungen zwischen diesen
Tabellen, oder geht es einfach darum die Inhalte
dieser verschiedenen Tabellen unabhàngig voneinander
zu lesen?

Von Access aus kann ich ja problemlos von einer
DB auf eine andere zugreifen,



Was genau meinst Du damit?

aber in VS 2008 kriege ich das nicht hin. Ich habe
unter Data Sources



Wessen DataSources?

beide DBs stehen, aber ich kriege von einer DB keinen
Zugriff auf die andere Tabelle. Hat mir jemand einen Tipp?



Da Du offenbar zwei verschiedenen Datenbankdateien
(*.mdb) hast, liegt es nahe, erst mal zwei Connections zu
den beiden *.mdb zu erstellen, was für jede dieser beiden
etwa so aussehen könnte:


Dim FileName As String = "H:\Verzeichnis\DB.mdb"
Dim DBPwd As String = "DB-Passwort"

Dim CSB As New OleDbConnectionStringBuilder
With CSB
.Provider = "Microsoft.Jet.OLEDB.4.0"
.DataSource = FileName

' DBPasswort
If DBPwd.Length > 0 Then
.Add("Jet OLEDB:Database Password", DBPwd)
End If

' Connectionpooling ausschalten
.OleDbServices = -4

' DB im geteilten Modus öffnen
.Add("Mode", "Share Deny None")

' Pagelocking ab Access-Version 2000
.Add("Jet OLEDB:Database Locking Mode", 1)
End With

Dim Cnn As OleDbConnection = New OleDbConnection
Cnn.ConnectionString = CSB.ConnectionString
Try
Cnn.Open()
mCNN = Cnn

Catch Ex As Exception
MsgBox(Ex.Message, MsgBoxStyle.Exclamation)

End Try

Wenn Du nur Daten lesen willst, würde es genügen, dies
mit einem OleDbCommand und einem zugehörigen
OleDbDataReader zu tun.

Sollen Daten nicht nur gelesen, sondern evtl. veràndert
und anschliessend wieder in die jeweilige DB-Tabelle
zurückgeschrieben werden, bietet sich ein OleDbDataAdapter
an. Es geht aber auch ohne DataAdapter mit einem einfachen
OleDbCommand mit entsprechend passendem Command-
Text (Insert , Update , Delete ...)

Beschreibe einfach mal etwas genauer, was das eigentliche
Ziel ist.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen