{"id":827,"date":"2013-07-24T18:52:29","date_gmt":"2013-07-24T16:52:29","guid":{"rendered":"http:\/\/www.ramses.de\/?p=827"},"modified":"2013-08-09T13:06:43","modified_gmt":"2013-08-09T11:06:43","slug":"faq-access-sicherung-der-back-end-datei","status":"publish","type":"post","link":"https:\/\/www.ramses.de\/?p=827","title":{"rendered":"FAQ Access &#8211; Sicherung der Back End Datei"},"content":{"rendered":"<div>\n<h1>Access Tabellen &#8211; Sicherung der BackEnd Datei<\/h1>\n<\/div>\n<div>\n<h2><strong>Problem <\/strong><\/h2>\n<p>Bei der Arbeit mit Back-End\/Front-End-L\u00f6sungen stellt sich immer wieder das Problem, dass das Back-End gesichert oder als Kopie abgelegt werden soll. Im Folgenden stellen wir Ihnen eine Prozedur vor, die diese Aufgabe bequem und automatisch aus einem Front-End heraus erledigt.<\/p>\n<h2><strong>L\u00f6sung <\/strong><\/h2>\n<p>Legen Sie sich zun\u00e4chst im Front-End ein Modul &#8222;modBackupBackend&#8220; an und geben Sie dort die folgenden Prozeduren ein:<\/p>\n<pre>Public Sub BackupBackend()\r\n Dim strMsg As String, strX As String\r\n Dim strQuellMDB As String, strZielMDB As String\r\n Dim td As TableDef\r\n DoCmd.Hourglass True\r\n For Each td In CurrentDb.TableDefs\r\n If td.Connect &lt;&gt; \"\" Then\r\n strX = LCase$(td.Connect)\r\n If InStr(strX, \"database=\") &lt;&gt; 0 Then\r\n strX = Mid$(strX, InStr(strX, \"database=\") + 9)\r\n If InStr(strX, \";\") &lt;&gt; 0 Then\r\n strX = Left$(strX, InStr(strX, \";\") - 1)\r\n End If\r\n strQuellMDB = strX\r\n Exit For\r\n End If\r\n End If\r\n Next\r\n strZielMDB = PathOnly(strQuellMDB) + _ \"Backup_Backend.MDB\"\r\n On Error Resume Next\r\n Kill strZielMDB\r\n Err = 0\r\n FileCopy strQuellMDB, strZielMDB\r\n Beep\r\n DoCmd.Hourglass False\r\n If Err &lt;&gt; 0 Then\r\n MsgBox \"Fehler beim Kopieren: \" + CStr(Err) + \", \" + _ Err.Description, _ vbOKOnly + vbCritical, \"!!! Problem !!!\"\r\n Else\r\n MsgBox \"Back-End wurde erfolgreich kopiert...\", _ vbOKOnly + vbInformation, \"Fertig\"\r\n End If\r\n End Sub<\/pre>\n<pre>Function PathOnly(strPath As String) As String\r\n Dim L As Integer\r\n PathOnly = \"\"\r\n If InStr(strPath, \"\\\") = 0 Then\r\n Exit Function\r\n L = Len(strPath)\r\n While Mid$(strPath, L, 1) &lt;&gt; \"\\\" And L &gt; 0\r\n L = L - 1 W\r\n end If\r\n L &gt; 1 Then PathOnly = Left$(strPath, L)\r\n End Function<\/pre>\n<p>Wenn Sie nun das Back-End sichern m\u00f6chten, k\u00f6nnen Sie beispielsweise \u00fcber Strg+G den Direktbereich \u00f6ffnen und die Prozedur &#8222;BackupBackend&#8220; manuell aufrufen. M\u00f6chten Sie regelm\u00e4\u00dfig Sicherungen anlegen, empfiehlt sich der Aufruf \u00fcber eine Schaltfl\u00e4che in einem Formular:<\/p>\n<p>1. Legen Sie eine Schaltfl\u00e4che &#8222;btnBackupBackend&#8220; im gew\u00fcnschten Formular an.<\/p>\n<p>2. Stellen Sie die Eigenschaft &#8222;Beim Klicken&#8220; der Schaltfl\u00e4che auf &#8222;[Ereignisprozedur]&#8220; ein und klicken Sie auf die Schaltfl\u00e4che mit den drei kleinen Punkten.<\/p>\n<p>3. Geben Sie im VBA-Editor die folgende Anweisung ein:<br \/>\nSub btnBackupBackend_Click()<br \/>\nBackupBackend<br \/>\nEnd Sub<\/p>\n<p>Bitte beachten Sie beim Einsatz der Prozedur, dass niemand auf das Back-End zugreifen darf, wenn es gesichert werden soll. Auch das Formular, in dem die Schaltfl\u00e4che untergebracht wird, darf nicht auf Tabellen des Back-Ends zugreifen. Andernfalls wird der Zugriff zum Kopieren verweigert.<\/p>\n<p>Die Funktionsweise der Prozedur ist schnell erkl\u00e4rt: In einer Schleife pr\u00fcfen wir zun\u00e4chst alle Tabellendefinitionen, ob deren Eigenschaft &#8222;Connect&#8220; einen Inhalt hat und wenn ja, ob sie die Zeichen &#8222;database=&#8220; beinhaltet. Ist das der Fall, handelt es sich um eine aus einem Back-End verkn\u00fcpfte Tabelle. Pfad und Dateiname des Back-Ends lassen sich dann ab der Position hinter dem Gleichheitszeichen nach &#8222;database=&#8220; auslesen. Das Ergebnis ist beispielsweise<\/p>\n<p>&#8222;Z:\\Daten\\Access\\Addressen.mdb&#8220;.<\/p>\n<p>\u00dcber die Hilfsfunktion &#8222;PathOnly()&#8220; ermitteln wir daraus den Pfad, also beispielsweise<\/p>\n<p>&#8222;Z:\\Daten\\Access\\&#8220; und f\u00fcgen dort den Dateinamen<br \/>\n&#8222;Backup_Backend.MDB&#8220;<\/p>\n<p>als Namen f\u00fcr die Kopie hinzu. Die Anweisung &#8222;Kill&#8220; l\u00f6scht anschlie\u00dfend eine eventuell bereits vorhandene Kopie, bevor &#8222;FileCopy&#8220; schlie\u00dflich das Back-End in die Datei &#8222;Backup_Backend.MDB&#8220; kopiert.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Access Tabellen &#8211; Sicherung der BackEnd Datei Problem Bei der Arbeit mit Back-End\/Front-End-L\u00f6sungen stellt sich immer wieder das Problem, dass das Back-End gesichert oder als &#8230; <a title=\"FAQ Access &#8211; Sicherung der Back End Datei\" class=\"read-more\" href=\"https:\/\/www.ramses.de\/?p=827\" aria-label=\"Mehr Informationen \u00fcber FAQ Access &#8211; Sicherung der Back End Datei\">Weiterlesen &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47,43],"tags":[58,48],"class_list":["post-827","post","type-post","status-publish","format-standard","hentry","category-access","category-faq","tag-access-2010","tag-tabellen-sichern"],"_links":{"self":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts\/827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=827"}],"version-history":[{"count":5,"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts\/827\/revisions"}],"predecessor-version":[{"id":949,"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts\/827\/revisions\/949"}],"wp:attachment":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}