vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Verknüpfte Datenbanken 
Autor: vbfranz
Datum: 17.10.13 10:42

Hallo Leute,
ich habe zwei Datenbanken erstellt (in Access2003) mit VB6.

In DB2 gibt es eine gespeicherte Abfrage.
Die Db1 ist mit Db2 verknüpft.
Wenn ich nun die gespeicherte Abfrage der DB2 aufrufen möchte, bekomme ich eine komische Fehlermeldung: „Unzulässige SQL-Anweisung; „DELETE“, „INSERT“, “SELECT“ oder „UPDATE“ erwartet."

Muss ich dazu den Pfad und den Namen der Externen DB angeben?
Das sollte nicht sein, desshalb verknüpfe ich ja die Datenbanken!

Code der gespeicherten Abfrage in DB2:
Public Sub Hs_Liste()
    Dim cat As New ADOX.Catalog
    Dim cmd As New ADODB.Command   
    cat.ActiveConnection = connstr
    cmd.CommandText = "SELECT * FROM hs ORDER BY prdno,selno,objno"
    cat.Views.Append "hsliste", cmd
    Set cat = Nothing
End Sub
Code des Aufrufes aus DB1:
Public Function Liste(ByVal myConn As Connection) As ADODB.Recordset
    Dim Rs  As New ADODB.Recordset
    Rs.Open "[hsliste]", myConn, adOpenStatic, adLockBatchOptimistic
    Set Liste = Rs
End Function
Wenn ich hingegen einen „normalen“ Aufruf starte (aus DB1), funktioniert es.
Public Function Liste(ByVal myConn As Connection) As Recordset
    Dim sSQL    As String
    Dim Rs      As ADODB.Recordset
    sSQL = "SELECT * FROM hs ORDER BY prdno,selno,objno"
    Set Rs = New ADODB.Recordset
    Rs.CursorLocation = adUseClient
    Rs.Open sSQL, myConn, adOpenStatic, adLockBatchOptimistic
    Set Liste = Rs
    Set Rs.ActiveConnection = Nothing
End Function
Die Externe Tabelle wird in DB1 folgend definiert:
Public Sub CreateAnhang(ByVal sDB_PATH As String)
    Dim cat As New ADOX.Catalog
    Dim tbl As New ADOX.Table
    ' öffnen
    cat.ActiveConnection = connstr
    ' Tabelle definieren
    With tbl
        .Name = "hs"
        Set tbl.ParentCatalog = cat
        .Properties("Jet OLEDB:Create Link") = True
        .Properties("Jet OLEDB:Link Datasource") = sDB_PATH & "\DbVektor.mdb"
        .Properties("Jet OLEDB:Remote Table Name") = "hs"
    End With
    'Anhängen der Tabeele an die Auflistung
    cat.Tables.Append tbl
    Set cat = Nothing
End Sub
MyConn bzw. connstr ist immer der Connectionstring für die DB1!

Was mache ich falsch?

Bitte um Hilfe.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Verknüpfte Datenbanken1.893vbfranz17.10.13 10:42
Re: Verknüpfte Datenbanken898vbfranz17.10.13 22:08

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel