Office: (Office 2016) Access-Datenbank in VBA auslesen

Helfe beim Thema Access-Datenbank in VBA auslesen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, eine kurze Wasserstandsmeldung: Es klappt prinzipiell, aber ich habe ein Problem mit dem Schreibschutz. Ich hoffe, dabei könnt ihr mir helfen.... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Jubeldibub, 23. April 2020.

  1. Access-Datenbank in VBA auslesen


    Hallo,

    eine kurze Wasserstandsmeldung: Es klappt prinzipiell, aber ich habe ein Problem mit dem Schreibschutz. Ich hoffe, dabei könnt ihr mir helfen.

    Meine zentral abgelegte Access-Datenbank verfügt über 6 verknüpfte Excel-Tabellen (je eine auf einem Tablet) und bezieht über diese Tabellen die aktuellen Daten von den Tablets. Soweit klappt das gut.

    Die 6 Exceltabellen sind freigegeben. Mein VBA-Code im Excel tut folgendes:
    - Speichern der freigegebenen Excel-Datei (um Änderungen zu aktualisieren)
    - Refresh der externen Quellen (um die Daten aller Spieler aus der Access-Datenbank abzurufen)

    Problem ist nun, dass ich beim Speichern der Tabelle einen Fehler auslöse. Es heißt dann, diese (freigegebene) Tabelle sei gesperrt und ich soll es später noch mal versuchen.
    a.) Mich wundert generell, dass eine freigegebene Excel-Tabelle überhaupt gesperrt sein kann.
    b.) Warum sperrt meine Access-Datenbank ihre verknüpften Tabellen dauerhaft? Wenn ich die freigegebene Excel-Datei manuell speichere, funktioniert alles einwandfrei. Speichere ich über VBA erhalte ich die Fehlermeldung.
    Gibt es eine Einstellung in Access, die verhindert, dass verknüpfte Tabellen gesperrt werden?
     
    Jubeldibub, 27. April 2020
    #16
  2. Nachtrag: Tatsache. Es ist die Access-Datenbank. Ich habe es eben auch noch mal manuell nachstellen können.

    Wenn ich die Access-Datenbank öffne, die darin enthaltene verknüpfte Excel-Tabelle (die freigegeben ist) im Access aufmache und dann die ebenfalls im Excel geöffnete freigegebene Excel-Tabelle speichern will, bekomme ich dieselbe Meldung wie per VBA:
    "Die Datei ist gesperrt. Versuchen sie es später nochmal."

    Kann ich irgendwie dafür sorgen, dass Access eine verknüpfte Tabelle nur lesend öffnet und sie nicht für alles andere sperrt?
     
    Jubeldibub, 27. April 2020
    #17
  3. Das Eine hat nicht mit dem Anderen zu tun.
    Der erste der eine Datei öffnet bestimmt alles.
    Im Prinzip musst du mittels DBEngine.OpenDatabase zu jeder einzelnen Excel Datei ein DAO Database Verbindung öffnen, und die Einstellungen entsprechend festlegen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 27. April 2020
    #18
  4. Access-Datenbank in VBA auslesen

    Das verstehe ich nicht. Die Excel-Datei ist freigegeben. In meinem VBA-Code gehe ich wie folgt vor:
    1.) Ich öffne die freigegebene Datei mit Excel.
    2.) Dann ändere ich Werte innerhalb der Datei.
    3.) Dann speichere ich die freigegegebene Excel-Datei, um die Änderungen auch anderen zugänglich zu machen.
    4.) Dann refreshe ich den externen Zugriff auf die Access-Datenbank (das ist meines Erachtens der Moment, an dem der Zugriff durch Access erfolgt). Nun soll sich Access die (neuen) Daten aus der freigegebenen Datei in die Abfrage ziehen und die gebündelten Werte (aus den verschiedenen verbundenen freigegebenen Excel-Tabellen) wieder zurückspielen.
    Access ist während der ganzen Zeit nicht geöffnet. Der Kontakt entsteht also "nur" über den externen Abruf der Access-Daten im Excel.

    Problem ist nun, dass ich bei Schritt 3 bereits die Meldung bekomme, dass die Datei gesperrt ist. Und diese Meldung bekomme ich nur, wenn ich die Datei in der Access-Datenbank verknüpfe. Also offenbar sperrt Access diese Datei dauerhaft, weil eine Verknüpfung besteht. Und das wundert mich etwas, zumal Access die Datei eigentlich nur lesen und keinen Schreibschutz auslösen müsste. Und selbst wenn sie schreibend darauf zugreift, hätte ich nicht erwartet, dass eine freigegebene Datei gesperrt werden kann, nur weil Access darauf zugreift.

    Leider kenne ich mich damit bisher nicht aus. Könntest du das etwas genauer erklären? Wo stelle ich so etwas ein? Wo öffne ich diese Verbindung?
     
    Jubeldibub, 27. April 2020
    #19
  5. Hallo Jubeldibub,

    meine Ansicht dazu kennst du ja bereits, aber nochmal:
    Die Schriite 1-4 sind genau die Schritte, die du machen mußt, aber nicht mit einer lokalen Excel Datei, sondern direkt mit der Access-DB. Warum der Umweg über die Excel Datei, wenn du doch in Schritt 4 sowieso den Abgleich machst?
    Der direkte Weg ist immer der bessere.

    Ulrich
     
    knobbi38, 27. April 2020
    #20
  6. Hi Ulrich,

    Weil ich das "Reinrufen" in Access per VBA aus dem Excel heraus für relativ kompliziert halte und ich gehofft hatte, es mit den hauseigenen Mitteln von Access (verknüpfte Tabellen) umgehen zu können.

    Das heißt, dein Rat wäre, dass ich von den Tablets aus einen direkten Schreibzugriff auf die Tabelle in der Access-Datenbank mache und dort direkt die Werte so umstelle, wie ich es möchte?
    Und anschließend dann die gebündelten Daten aller Spieler per "externe Daten abrufen" in die Excel-Mappe zurückhole?
     
    Jubeldibub, 28. April 2020
    #21
  7. Hallo,

    genauso habe ich das gemeint und bereits in #14 vorgeschlagen.
    Was du als "Reinrufen" bezeichnest, wird standardmäßig von jedem Access Frontend gemacht.

    Gruß Ulrich
     
    knobbi38, 28. April 2020
    #22
  8. Access-Datenbank in VBA auslesen

    Hallo,

    leider habe ich noch nicht ganz verstanden, was mit dem Frontend und Backend genau gemeint ist. Also mir ist klar, was die Worte bedeuten, aber kann man ein solches Frontend/Backend als Standardfunktion in Access anlegen? Oder soll es einfach nur meine Datei bezeichnen, die in einer Access-Datenbank etwas verändert (wobei dieses Verändern dann einfach ein individuell gebastelter VBA-Code ist)?
     
    Jubeldibub, 28. April 2020
    #23
  9. einfach mal suchen: frontend und backend erklärung
     
  10. Hallo,
    Gehört das hier nicht eigentlich ins Excel-Forum?

    @Jubeldibub
    Bin mir nicht sicher ob ich diesen Link schon mal gepostet habe
    Zugreifen auf Daten via DAO (Data Access Objects) | Excel
    Voraussetzung dafür ist ein korrektes, normalisiertes Datenmodell in Access.
    Das Importieren/Verknüpfen von Excel-Tabellen in Access dient normalerweise
    dazu die importierten Daten in dieses DM zu übertragen, und ist Teil eines
    Access-FE. Du willst aber ein Excel-FE und ein Access-BE. Letzteres hat dann
    keinerlei Funktionalitäten und speichert nur die von Excel gelieferten Daten.
    Da gibt es dann auch keine Schreibkonflikte auf Datei-Ebene mehr, nur noch
    die in Access eingestellten (Sperrung auf DS-Ebene).
    Bevor du also weitermachst musst du deine Daten in ein korrektes Datenmodell
    übertragen. Sobald das steht, kannst du mit deinen Excel-FEs per DAO/ADO auf
    die Daten zugreifen (lesen/schreiben). Bei der Umsetzung helfen dir dann
    sicher auch die Spezialisten aus dem Excel-Forum.
    gruss ekkehard
     
    Beaker s.a., 29. April 2020
    #25
Thema:

Access-Datenbank in VBA auslesen

Die Seite wird geladen...
  1. Access-Datenbank in VBA auslesen - Similar Threads - Access Datenbank VBA

  2. Auslesen Windowsbenutzer in einer Datenbank

    in Microsoft Access Hilfe
    Auslesen Windowsbenutzer in einer Datenbank: Hallo zusammen, wie kann ich auslesen, welcher Windows Benutzer gerade aktuell in einer Datenbank ist? Geht das? Danke Matthias
  3. Access-Datenbank von ander Acc-DB fernbedienen?

    in Microsoft Access Hilfe
    Access-Datenbank von ander Acc-DB fernbedienen?: Hallo, ich prüfe von Datenbank A aus, ob zu den eingegebenen Daten ein passender Datensatz in einer anderen Datenbank ist (verknüpfte Tabelle). Nun würde ich gerne mit einer Schaltfläche die...
  4. Datenbank erstellung

    in Microsoft Access Hilfe
    Datenbank erstellung: Hallo, da ich mich nicht so gut mit Access auskenne, wollte ich mal fragen, ob es hier jemanden gibt der mir Helfen kann bzw eine erstellen kann. Vielen Dank
  5. MS ACCESS Insert into Foto in Datenbank

    in Microsoft Access Hilfe
    MS ACCESS Insert into Foto in Datenbank: Hallo. Ich benutze MS ACCESS im Office 365. Habe eine Anwendung geschrieben, in der in einem Formular ein Foto im Typ Bild dargestellt wird. Ich möchte nun dieses Foto mittels einem "Insert...
  6. VBA Zugriff auf 32 Bit Access Datenbank von 64 Bit Anwendung

    in Microsoft Access Hilfe
    VBA Zugriff auf 32 Bit Access Datenbank von 64 Bit Anwendung: Hallo Zusammen, Seit heute habe ich folgendes Problem: Ich habe mit Access und ProgeCad eine GIS-Anwendung erstellt. Ich greife dabei von Access aus auf ProgeCad zu und umgekehrt. Von ProgeCad...
  7. Unter Access 2010 per VBA die akt. Datenbank kompr. u. rep.

    in Microsoft Access Hilfe
    Unter Access 2010 per VBA die akt. Datenbank kompr. u. rep.: Hallo Leute, ich habe hier ein Problem: Ich setze seit ein paar Tagen MS-Access 2010 ein (und kann auch nicht zurück, leider leider ...). Nun möchte ich aus dem VBA-Programmcode zwei Befehle...
  8. Access VBA-Modul: aktuelle Datenbank mit ADO ansprechen

    in Microsoft Access Hilfe
    Access VBA-Modul: aktuelle Datenbank mit ADO ansprechen: Hallo zusammen! Ich habe eine mit Access erstellte Datenbank, in die ich ein Modul eingefügt habe. In dem Modul wird mit ADO auf die Datenbank zugegriffen. Set adoCN1 = New ADODB.Connection...
  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