Freigeben über

Tabellenverknüpfungs-Manager ist durch Sicherheitsrichtlinie "Sperrung ActiveX" nicht mehr funktionsfähig.

Anonym
2022-03-23T09:58:37+00:00

Hallo Zusammen,

Seit kurzer Zeit funktioniert der Tabellenverknüpfungs-Manager in Office 2019 nicht mehr.

Ursache ist, dass die Sicherheitsrichtlinien erhöht wurden und ActiveX Steuerelemente und die Skripte daraus gesperrt wurden.

Somit betrifft das auch den Tabellenverknüpfungs-Manager.

Frage:

Gibt es eine Idee Tabellenverknüpfungen komfortabel mit VBA-Code zu bewerkstelligen.

Danke im Voraus

Andy

Microsoft 365 und Office | Access | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare
{count} Stimmen

4 Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2022-03-25T15:15:19+00:00

    Danke Peter,

    Manchmal braucht man nur den richtigen Anstoß.

    Funktionen der Pfade hab ich schon geschrieben.

    Auch über die MSysObjects mit dem Index "6" habe ich die bisher verlinkten Tabellen mit dem entsprechendem Pfad ausgelesen und in eine Funktion gekapselt. Dann noch mit dem msoFileDialogFilePicker verbinden und den Rest noch in VBA sollte dann auch klappen.

    hab noch was entsprechendes zu der Idee mit dem Formular gefunden

    https://access-im-unternehmen.de/Verschiedene_Backends_pflegen.

    Die Prozedur kann ich dann entsprechend anpassen, sogar mit CallBack im Ribbon und den

    Original Tabellenverknüpfungs-Manager dann auch rausschmeißen.

    Gruß Andrée

    0 Kommentare Keine Kommentare
  2. Anonym
    2022-03-25T14:08:44+00:00

    Hallo,

    Die Idee ist gut wenn ODBC-Driver installiert wären.

    Fällt aber Auf Grund ebenfalls von Gruppenrichtlinien weg.

    komfortabel meinte ich was eigentlich bisher der Tabellenverknüpfungs-Manager gut gemacht hat.

    Ausgangslage ist eine jeweils Desktop-Datenbank mit Front-End und 2 x Back-End.

    Beispiel: Benutzergruppe (1) hat Zugriff auf Netzablage A und Netzablage B ; Benutzergruppe (2) hat Zugriff auf A und C.

    In (A) liegt das eine Back-End mit 5 Tabellen ; In (B) und (C) jeweils das andere Back-End mit 18 Tabellen (gleiche Struktur aber mit unterschiedlichen Datensätzen.

    Die Benutzergruppe (1) und (2) haben aber keine gekreuzten Lese bzw. Schreibrechte auf den Ablagen.

    Da ich aber nur einmal das Front-End weiter entwickeln möchte muss ich dieses jeweils für jede Benutzergruppe neu verlinken.

    Jetzt kommt die nächste Benutzergruppe (3) mit Zugriff dann auf (A und D) deren Datensätze im 2. Back-End auf (D) dann leer sind.

    Nun ist die Aufgabe wie ich sinnvoll die Kuh vom Eis kriege und das ("acCmdLinkedTableManager" - gesperrt durch ActiveX) anders umgehen kann.

    Das mit SQL Server war nur ein Beispiel, da du über das Backend keine Angaben gemacht hattest. Wenn auch das BE eine accdb/mdb ist, sollte der Zugriff ohne weitere Hürden möglich sein. Die Syntax wäre in diesem Fall:

    DoCmd.TransferDatabase acLink, "Microsoft Access", "C:\Pfad\DeinBE.accdb", acTable, "TableNameInBackend", "TableNameInFrontent"

    Was du im weiteren beschrieben hast, leistet der Tabellenverknüpfungsmanager auch nicht, bzw. du müsstest pro Backend die Tabellen pro Vorgang auswählen. Nicht sehr komfortabel, wie ich finde.

    Wenn bei euch das Setup so ist, schreib dir doch ein eigenes Formular, mit dem du aus lokalen Tabellen ausliest, welche Gruppe wo Zugriff haben soll, welche Tabellen im Spiel sind und wo die BEs liegen. Dann verknüpfe selbst nach obigen Beispielen. Ich hab für eine Anwendung mal sowas geschrieben, was aber nur mit der Anwendung sinnvoll eingesetzt werden kann. So wie du die Anforderung beschrieben hast, sollte so ein Formular in ein paar Stunden fertig sein. Dafür würde ich nicht suchen gehen.

    Gruss - Peter

    0 Kommentare Keine Kommentare
  3. Anonym
    2022-03-25T12:37:00+00:00

    Danke für Nachricht.

    Die Idee ist gut wenn ODBC-Driver installiert wären.

    Fällt aber Auf Grund ebenfalls von Gruppenrichtlinien weg.

    komfortabel meinte ich was eigentlich bisher der Tabellenverknüpfungs-Manager gut gemacht hat.

    Ausgangslage ist eine jeweils Desktop-Datenbank mit Front-End und 2 x Back-End.

    Beispiel: Benutzergruppe (1) hat Zugriff auf Netzablage A und Netzablage B ; Benutzergruppe (2) hat Zugriff auf A und C.

    In (A) liegt das eine Back-End mit 5 Tabellen ; In (B) und (C) jeweils das andere Back-End mit 18 Tabellen (gleiche Struktur aber mit unterschiedlichen Datensätzen.

    Die Benutzergruppe (1) und (2) haben aber keine gekreuzten Lese bzw. Schreibrechte auf den Ablagen.

    Da ich aber nur einmal das Front-End weiter entwickeln möchte muss ich dieses jeweils für jede Benutzergruppe neu verlinken.

    Jetzt kommt die nächste Benutzergruppe (3) mit Zugriff dann auf (A und D) deren Datensätze im 2. Back-End auf (D) dann leer sind.

    Nun ist die Aufgabe wie ich sinnvoll die Kuh vom Eis kriege und das ("acCmdLinkedTableManager" - gesperrt durch ActiveX) anders umgehen kann.

    Gruß Andrée

    0 Kommentare Keine Kommentare
  4. Anonym
    2022-03-24T18:04:04+00:00

    Hallo,

    Was ist die Definition von "komfortabel"? ;-)

    Du hast folgende Möglichkeiten:

    • Tabelle neu verknüpfen (Beispiel f. SQL Server):

    DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;Driver=ODBC Driver 17 For SQL Server;Server=DeinServer;Database=DeineDB;Uid=User;Pwd=geheim;", acTable, "TableNameOnServer", "TableNameInAccess", , True

    • Bestehenden Link auffrischen:

    CurrentDb.TableDefs("DeineVerknuepfteTabelle").RefreshLink

    • Bestehende Tabelle neu verknüpfen:

    With CurrentDb.TableDefs("DeineVerknuepfteTabelle")

    .Connect = "ODBC;Driver=..." '(siehe oben)

    .RefreshLink

    End With

    Gruss - Peter

    0 Kommentare Keine Kommentare