Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Access Datenbank speichern

Begonnen von LehmeMa, Heute um 09:03:58

⏪ vorheriges - nächstes ⏩

LehmeMa

Hallo Gemeinde,

ich versuche unter VBA die aktuelle Datenbank mit FileCopy unter einem neuen Namen abzuspeichern.

Dabei erhalte ich immer den Laufzeitfehler 70, Zugriff verweigert.

Gebe ich als Quelle irgendeine andere Datei ein, funktioniert es.

Wie kann ich die  Datenbank per VBA Speichern, bzw. mit neuem Namen speichern?

Besten Dank schon mal vorab

Markus

MzKlMu

Hallo,
die Datenbank muss geschlossen sein. Du musst also aus einer anderen Datenbank die Kopie Deiner Arbeitsdb anlegen.
Wie es ja auch funktioniert hat.
Gruß Klaus

LehmeMa

#2
Hallo,

ich möchte die Datenbank als "Frontend" an die Mitarbeiter verteilen.
Das habe ich immer im Windowsexplorer über: Copy-Paste-Umbenennen gemacht.

Lieber wäre es mir abe über eine Taste im laufenden System.

Da muß es doch eine Möglichkeit geben.

Knobbi38

Hallo,

wie Klaus schon ausgeführt hat, kannst du eine geöffnete DB so nicht kopieren. Such mal nach "ms access autoupdater", da findest du bestimmt weitere Informationen dazu.

Siehe auch:
https://access-im-unternehmen.de/AccessFrontend_automatisch_aktualisieren/

Knobbi38

werner budde

#4
Ich habe es in einer meiner Datenbanken hinbekommen mit folgendem Code:
Voraussetzung: der Verweis auf Microsoft Scripting Runtime muss angemeldet sein.

Public Sub DB_Sichern()
' Quelle: http://www.office-loesung.de/ftopic38239_0_0_asc.php
' leider nicht mehr aufrufbar

    Dim str_Quelldatei As String, str_Zieldatei As String, obj_FSO As Variant
    Set obj_FSO = CreateObject("Scripting.FileSystemObject")
   
    ' Sicherung des Backends
    str_Quelldatei = "Deine_Original_Backend_DB_inkl_Pfad"
    str_Zieldatei = "Deine_Sicherungs_Backend_DB_inkl_Pfad"
    obj_FSO.CopyFile str_Quelldatei, str_Zieldatei, True

    ' Sicherung des Frontends
    str_Quelldatei = "Deine_Original_Frondend_DB_inkl_Pfad"
    str_Zieldatei = "Deine_Sicherungs_Frondend_DB_inkl_Pfad"
    obj_FSO.CopyFile str_Quelldatei, str_Zieldatei, True

    MsgBox "Sicherheitskopien erfolgreich erstellt"

End Sub

Wohlgemerkt, aus der geöffneten Original-Frontend-DB heraus per Button-Klick und Auruf des o.a. Codes.
Gruß Werner

Bitsqueezer

Hallo,

per Explorer kann man auch eine geöffnete Access-Datei kopieren (wenngleich nicht unbedingt ratsam). Daher geht es extern mit dem FSO-Objekt (oder sicherlich auch mit einem Shell-Befehl mit "copy"), während FileCopy eine VBA-Anweisung ist, die das vermutlich blockiert (nutze ich nie.. :) ).

Ich würde allerdings empfehlen, für das Deployment einen geregelten Ablauf zu machen. Das kann durchaus per Skript erfolgen, z.B. Powershell, Python, VBScript, CMD...

Dabei 1. einen Backup der aktuellen und geschlossenen Entwicklerdatei machen
2. ein Compact & Repair durchführen
3. VBA kompilieren (Option Explicit in allen Modulen erzeugen nicht vergessen)
4. ACCDE aus der ACCDB erzeugen
5. ACCDE an die User verteilen. Entweder auf einem Netzlaufwerk zur Verfügung stellen für gemeinsame Nutzung (nicht empfohlen) oder dort zum Herunterladen zur Verfügung stellen (Ordner Schreibberechtigung entfernen, um das Starten dort zu verhindern). Beim Start des Frontends beim User kann dies die Version ermitteln (dazu gibt es reichlich Infos im Netz) und das neue Frontend herunterladen/starten.
So mal als grobe mögliche Vorgehensweise.

Gruß

Christian

MzKlMu

allo,
ich würde unter keinen Umständen eine geöffnete Datei (DB) kopieren. Das trifft mMn besonders auf Access zu, denn man kann nicht sicher sein, dass die DB vollständig geladen ist.


Die übliche vorgehensweise mit dem Verteilen des FE hat ja Christian beschrieben.
Gruß Klaus

werner budde

Hallo,
ich möchte hier auf keinen Fall Christians und Klaus' Aussagen widersprechen und unterstütze diese sogar.
Den Code in meinem Beitrag #4 nutze ich auch nur bei meiner eigenen, privaten, von mir allein genutzten DB auf einem Einzelplatz-PC, und das seit inzwischen mehreren Jahren.
Hatte auch schon mal den Fall, dass ich die eine oder andere so kopierte Sicherungsdatei wieder mal ganz oder mal aus ihr heraus einzelne Datenschnipsel
(handverlesene Datensätze oder Code-Abschnitte o.a.) ,,zurückholen" musste.
Es gab da nie Probleme, was nix heißen muss ( geht 99-mal gut, und beim 100.ten ...)

In der Tat sah ich heute (aufgrund Eurer ,,Nicht"-Empfehlungen), dass die kopierten DB-Sicherungsdateien andere Dateigrößen haben. Interessant, und macht mich nachdenklich..
Gruß Werner