Office: (Office 2016) ODBC Verknüpfungen prüfen und evtl. automatisch herstellen

Helfe beim Thema ODBC Verknüpfungen prüfen und evtl. automatisch herstellen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte wenn ich meine Datenbank öffne alle MySQL ODBC-Verknüpfungen prüfen und wenn diese nicht vorhanden ist automatisch verknüfen. Die... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von edv-master, 7. Juni 2020.

  1. ODBC Verknüpfungen prüfen und evtl. automatisch herstellen


    Hallo,

    ich möchte wenn ich meine Datenbank öffne alle MySQL ODBC-Verknüpfungen prüfen und wenn diese nicht vorhanden ist automatisch verknüfen.

    Die Verknüpfungen sind in einer Tabelle (ExterneTabellen) die so aussehen sollte:

    ODBC-Datenquelle | TabelleServer | TabelleLokal
    Wismet.de (Unicode) | Artikel | Lokal_Artikel
    Wismet.de (Unicode) | Abmessungen | Lokal_Abmessungen
    ......

    (Die ODBC-Datenquelle (z.B. "Wismet.de (Unicode)") ist in den Windows-ODBC-Verknüpfungen (Systemsteuerung) bereits eingerichtet)

    Per VBA möchte ich nun prüfen ob die Tabelle "Lokal_Artikel" vorhanden ist,
    wenn ja, die Verknüpfung aktualisieren (falls neue Spalten hinzu gekommen sind oder sonstige Änderungen an der Struktur gemacht wurden)
    wenn nein, dann die Tabelle neu verknüpfen (ODBC-Quelle "Lokal_Artikel", Tabelle auf Server "Artikel", Tabelle Lokal "Lokal_Artikel")

    ...dies soll er mit allen Verknüpfungen machen die ich in der Tabelle (ExterneTabellen) vorgebe.

    :)
     
    edv-master, 7. Juni 2020
    #1
  2. Und was konkret ist dein Problem dabei?
     
    markusxy, 9. Juni 2020
    #2
  3. Mit welchen Befehl kann ich eine Tabelle per ODBC verknüpfen (ohne jedesmal eine neu ODBC-Verbindung anzulegen sondern die vorhandene zu nutzen)

    (ich bräuchte also eigentlich "nur" die Codezeile(n) zum verknüpfen und zu aktualisieren, den Rest sollte ich selbst hinbekommen.... - prüfen ob Tabelle vorhanden usw ist ja wieder einfacher - alternativ lösche ich erst alle Verknüpfungen (die in der Tabelle "ExterneTabellen" enthalten sind) und erstelle diese wieder neu.....)
     
    edv-master, 9. Juni 2020
    #3
  4. ODBC Verknüpfungen prüfen und evtl. automatisch herstellen

    Du meinst via DSN?

    Ein Weg ist via docmd.transferdatabase.

    https://docs.microsoft.com/en-us/off...ansferdatabase

    Wenn du nicht weißt, wie der Connectionstring lautet, dann einfach eine Verbindung erstellen und in der Tabelle MSysObjects nachschauen.

    Grundsätzlich würde ich aber davon abraten mit DSN zu arbeiten.
    Das Problem beginnt dann, wenn sich die Verbindung ändert.
    Ob du die DSN Datei angibst, oder gleich den Pfad zur DB ist auch schon wurscht.
     
    markusxy, 9. Juni 2020
    #4
  5. Hallo,

    falls jemand die Lösung benötigt, ich habs jetzt so gelöst:

    Private Sub Befehl0_Click()
    Dim ODBC_Driver
    Dim ODBC_Server
    Dim ODBC_Database
    Dim ODBC_User
    Dim ODBC_Password
    Dim ODBC_TabellenName
    Dim Lokaler_TabellenName

    ODBC_Driver = "MySQL ODBC 5.3 Unicode Driver" 'Muss angepasst werden, je nach dem welcher Treiber installiert ist
    ODBC_Server = "MeinMySQLServer.de"
    ODBC_Database = "MeineMySQLDatenbank"
    ODBC_User = "MeinMySQLBenutzername"
    ODBC_Password = "MeinMySQLPasswort"


    ODBC_TabellenName = "artikel"
    Lokaler_TabellenName = "www_" & ODBC_TabellenName

    If ExistODBCTable(Lokaler_TabellenName) = True Then DoCmd.DeleteObject acTable, Lokaler_TabellenName
    DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DRIVER={" & ODBC_Driver & "};server=" & ODBC_Server & ";database=" & ODBC_Database & ";" & "UID=" & ODBC_User & ";PWD=" & ODBC_Password & ";", acTable, ODBC_TabellenName, Lokaler_TabellenName
    End Sub

    Private Function ExistODBCTable(TableName)

    Dim tbl As TableDef
    For Each tbl In CurrentDb.TableDefs
    If tbl.Name = TableName Then
    ExistODBCTable = True
    Else
    ExistODBCTable = False
    End If
    Next tbl
    End Function
     
    edv-master, 9. Juni 2020
    #5
  6. Eine Frage hätte ich noch:

    kann man irgendwie den ODBC-Treiber auslesen (also in meinem Fall den Text "MySQL ODBC 5.3 Unicode Driver") - es kann ja sein das andere PC´s andere Treiberversionen installiert haben.....

    Gruß und Danke an alle die geholfen haben
    Stefan
     
    edv-master, 9. Juni 2020
    #6
  7. Seit 17 Jahren bist Du hier im Forum unterwegs ...
    Und schaffst es nicht, den Code ordentlich in Code-Tags und mit eingerückten Kontrollstrukturen zu präsentieren. *entsetzt
     
    hcscherzer, 9. Juni 2020
    #7
  8. ODBC Verknüpfungen prüfen und evtl. automatisch herstellen

    markusxy, 9. Juni 2020
    #8
  9. Danke für deinen "sehr netten" Hinweis, hab ich aber eigentlich so gehabt, die Formatierung ist beim Kopieren scheinbar irgendwie verloren gegangen - werd's dann überarbeiten ;-)....

    arbeite nur im Moment an dem ODBC-Treiber-Versions-Problem....
    Mein Problem hier ist im Moment noch was ich mache wenn mehrer (MySQL-)ODBC-Treiber installiert sind - wie ermittle ich den aktuellsten?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    edv-master, 9. Juni 2020
    #9
  10. mit "Formatierung":

    Code:
     
    edv-master, 9. Juni 2020
    #10
  11. Die Funktion ExistODBCTable solltest Du dir nochmal anschauen.
     
    CatboyJones, 9. Juni 2020
    #11
Thema:

ODBC Verknüpfungen prüfen und evtl. automatisch herstellen

Die Seite wird geladen...
  1. ODBC Verknüpfungen prüfen und evtl. automatisch herstellen - Similar Threads - ODBC Verknüpfungen prüfen

  2. MS-SQL Tabelle per ODBC mit VBA verknüpfen

    in Microsoft Access Hilfe
    MS-SQL Tabelle per ODBC mit VBA verknüpfen: Hallo zusammen, bisher verwende ich in Access 2013 / 2016 die Funktion "Externe Daten" -> "ODBC-Datenbank" um Tabellen aus einer MS-SQL Datenbank zu verknüpfen. Das funktioniert soweit bestens....
  3. odbc via ssh Verbindung auf mariadb

    in Microsoft Access Hilfe
    odbc via ssh Verbindung auf mariadb: Hallo Leute, ich baue mittels Batch Datei und Putty aus meiner Datenbank einen SSL Tunnel zu einem Datenbakserver auf. Über diese Verbindung nutze ich dann odbc um auf die Datenbank zuzugreifen....
  4. SQL Server Tabelle via ODBC und VBA verknüpfen

    in Microsoft Access Hilfe
    SQL Server Tabelle via ODBC und VBA verknüpfen: Hallo Leute, ich habe schon gegoogelt, allerdings noch nichts 100% passendes gefunden. Ich will via VBA eine Tabelle verknüpfen, abhängig von dem was der User in einem Dropdownmenü auswählt, soll...
  5. ODBC Treiber Probleme unter Office365 auf Mac wg. Diskrete Anzahl (Pivot)

    in Microsoft Excel Hilfe
    ODBC Treiber Probleme unter Office365 auf Mac wg. Diskrete Anzahl (Pivot): Hallo, es tut mir leid, dass der Betreff sehr verwirrt, aber das tut es seit einigen Tagen bei mir auch ;) Ich habe folgendes Szenario. Kundenliste mit Kundennummer, Name, Klasse Umsatz,...
  6. ID aus SQL Recordset ermitteln - Geänderter Treiber?

    in Microsoft Access Hilfe
    ID aus SQL Recordset ermitteln - Geänderter Treiber?: ch habe ein akutes Problem beim Zugriff auf den SQL Server. Seit vielen Jahren nutze ich folgendes Prinzip. Im VBA lege ich einen neuen Datensatz in einem Recordset an. Da der SQL Server die...
  7. ODBC-Verknüpfung von Access mit Oracle-Tabellen

    in Microsoft Access Hilfe
    ODBC-Verknüpfung von Access mit Oracle-Tabellen: Hallo, ich benötige eine ODBC-Verbindung mit einer Oracle-Tabelle. Mit Ausnahme, natürlich der für mich am wichtigsten Tabelle klappt, das auch wunderbar. Eben diese eine Tabelle hat lt. der...
  8. Word 2003 ODBC Verknüpfung

    in Microsoft Word Hilfe
    Word 2003 ODBC Verknüpfung: Word 2003 kann nicht mehr auf ODBC Daten zugreifen. Fehlermeldung: "Es konnten keine Tabellenlisten von der Datenquelle bezogen werden" Mit Excel ist die Verknüpfung kein Problem. :!:...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden