Office: (Office 2016) Front- und Backend verknüpfen/verlinken 64-bit

Helfe beim Thema Front- und Backend verknüpfen/verlinken 64-bit in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, (@all: habe eine TestDB erhalten) Du hast zwar eine neue Funktion zum Einbinden im Form "starteingang" erstellt (fncRelinkAccessTables1) aber... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von André.H, 20. November 2020.

  1. Front- und Backend verknüpfen/verlinken 64-bit


    Hallo,
    (@all: habe eine TestDB erhalten)
    Du hast zwar eine neue Funktion zum Einbinden im Form "starteingang" erstellt (fncRelinkAccessTables1)
    aber beim Öffnen des "StartFormular" rufst du die alte Version des Dateidialoges auf, welcher nicht unter 64 läuft: Code:
    Ersetze die alte Funktion.
    Lösche das Modul "filedialog" und lasse den Code kompilieren.
    Beseitige die Fehler.
     
    Steffen0815, 24. November 2020
    #16
  2. Servus
    @Steffen0815: Danke für die Klärung!
     
    Ohrkester, 25. November 2020
    #17
  3. Hallo Ihr Beide,

    danke, nochmals für eure Unterstützung.
    Habe die Anwendung entsprechend geändert und ggf. auch korrigiert.
    Hatte zwischenzeitlich auch das Problem gehabt wie meine Mitstreiter.
    Hatte mal einfach das Backunbenannt und verschoben. Die Anwendung konnte diese dann nicht finden und entsprechend kam der Hinweis auf eine neue Einbindung. Nachdem auf OK, kam eine Fehlermeldung das er das Backend (das zuletzt geöffnete) nicht mehr finden konnte.
    Habe, wie geschrieben, diese heute geändert und es auch ausprobiert, das läuft gut, nur habe es auch den Mitstreitern weitergereicht. Mal schauen, ob es nun bei denen auch ohne Probleme geht.

    Erstmal nochmals Danke
    André
     
  4. Front- und Backend verknüpfen/verlinken 64-bit

    Hallo Steffen,
    Hallo Ohrkester,

    habe es wie beschrieben es angepasst und auch korrigiert.
    Setze den Codes Startformulars mal rein und auch den weiteren Codes des Folgeformular.
    Startformular:
    Option Compare Database
    Option Explicit

    '----------------------------------------------------------------------
    ' Code überarbeitet, optimiert und mit Fehlerbehandlung versehen
    ' Verweis auf DAO 3.6 Object Library muss gesetzt sein
    '
    ' Hinweis: aus Form_Load wurde eine Function
    ' Aufruf: If Not fncRelinkAccessTables Then Application.Quit
    '
    ' Ablauf:
    ' Es wird geprüft, ob die aktuelle Tabelleneinbindung noch gültig ist,
    ' falls nein, wird neuer Speicherort gesucht und die Tabelleneinbindung
    ' per RefreshLink aktualisiert.
    '
    ' Die Speicherung des Backendpfades erübrigt sich, da er ja aus einer
    ' Systemtabelle bzw. der TableDefs-Auflistung ausgelesen werden kann.
    '
    ' Nachteile:
    ' - funktioniert nur bei vollständiger vorhandener Tabelleneinbindung
    ' - Wechsel zwischen verschiedenen Backends wird nicht unterstützt
    '
    ' 02/2011 by MissPh!
    '----------------------------------------------------------------------

    Public Function fncRelinkAccessTables() As Boolean
    On Error GoTo err_proc
    Static pwdCount As Integer
    Dim db As DAO.Database, td As DAO.TableDef
    Dim DBPfad As String
    Dim BEPfad As String
    Dim pwd As String


    'Pfad zur Aktuellen DB
    DBPfad = CurrentProject.Path
    'aktuellen Pfad der Tabellenverknüpfung ermitteln
    '-> Type = 6 -> linked table
    '-> Connect leer (ohne PW) oder 'MS Access...' (mit PW)
    BEPfad = DLookup("database", "MSysObjects", "type=6 And (Connect Is Null OR Connect LIKE '*Access*')")

    '*************************************************************************
    ' anschließend prüfen ob aktueller pfad der verknüpfung auch im windows
    ' verzeichnis gefunden wird

    If Dir(BEPfad) = "" Then 'wenn Backend-Pfad ungültig, dann Backend suchen
    MsgBox "Die Datenbank-Datei scheint umbenannt oder verschoben worden zu sein." & vbCrLf & _
    "Bitte wählen Sie den neuen Speicherort aus. " & vbCrLf & _
    "Die Tabellen werden anschließend neu eingebunden.", _
    vbCritical, "Tabelleneinbindung"

    'ACHTUNG: Hier wird das Programm beendet, wenn nichts ausgewählt wurde !!!
    If Len(BEPfad) = 0 Then Exit Function

    'und verknüpfe alle tabellen neu
    '************************************
    pwd = "123456"
    Set db = CurrentDb
    For Each td In db.TableDefs
    If (td.Attributes And dbAttachedTable) = dbAttachedTable And _
    (Left(td.Connect, 1) = ";" Or Left(td.Connect, 9) = "MS Access") Then ' auf Access-Tabelle prüfen
    retry:
    td.Connect = ";DATABASE=" & BEPfad & ";PWD=" & pwd
    td.RefreshLink
    End If
    Next td


    '******************************************************************************* ***
    'Dieses Formular soll nach Neuverknüpfung geöffnet werden
    'Bitte mit dem gewünschten Formular ersetzen
    DoCmd.OpenForm "starteingang"

    End If
    fncRelinkAccessTables = True
    end_proc:
    On Error Resume Next
    Set db = Nothing
    Set td = Nothing
    Exit Function
    err_proc:
    If Err.Number = 3031 Then
    pwdCount = pwdCount + 1
    If pwdCount > 3 Then
    MsgBox "Sie haben dreimal ein falsches Passwort eingegeben, " & _
    "die Anzahl Versuche ist hiermit erschöpft, die Anwendung wird geschlossen.", _
    vbCritical
    Application.QUIT
    ' HINWEIS:
    ' besser als die Input-Box ist natürlich ein Formular mit Textfeld im Kennwort-Format
    ' zur Eingabe des Passworts geeignet
    ElseIf pwdCount > 1 Then
    pwd = InputBox("Das eingegebene Passwort ist ungültig, bitte achten Sie auch auf " & _
    "Groß-/Kleinschreibung.", _
    "Tabelleneinbindung")
    Resume retry
    Else
    pwd = InputBox("Die Datenbank ist passwortgeschützt, bitte geben Sie das Passwort ein.", _
    "Tabelleneinbindung")
    Resume retry
    End If
    Else
    MsgBox Err.Description, , Err.Number
    fncRelinkAccessTables = False
    Resume end_proc
    End If
    End Function


    Private Sub Form_Timer()
    DoCmd.OpenForm "starteingang"
    DoCmd.Close acForm, "Startformular"
    DoCmd.Close acForm, "Erklärung"
    End Sub

    Private Sub Form_Load()
    fncRelinkAccessTables
    End Sub




    und
    das folgende Formular :Starteingang

    Option Compare Database

    Private Sub btnResetBackendVerbindung_Click()
    fncRelinkAccessTables1
    DoCmd.Close acForm, "starteingang"
    End Sub
    Public Function fncRelinkAccessTables() As Boolean
    On Error GoTo err_proc
    Static pwdCount As Integer
    Dim db As DAO.Database, td As DAO.TableDef
    Dim DBPfad As String
    Dim BEPfad As String
    Dim pwd As String


    'Pfad zur Aktuellen DB
    DBPfad = CurrentProject.Path
    'aktuellen Pfad der Tabellenverknüpfung ermitteln
    '-> Type = 6 -> linked table
    '-> Connect leer (ohne PW) oder 'MS Access...' (mit PW)
    BEPfad = DLookup("database", "MSysObjects", "type=6 And (Connect Is Null OR Connect LIKE '*Access*')")

    '*************************************************************************
    ' anschließend prüfen ob aktueller pfad der verknüpfung auch im windows
    ' verzeichnis gefunden wird

    If Dir(BEPfad) = "" Then 'wenn Backend-Pfad ungültig, dann Backend suchen
    MsgBox "Die Datenbank-Datei scheint umbenannt oder verschoben worden zu sein." & vbCrLf & _
    "Bitte wählen Sie den neuen Speicherort aus. " & vbCrLf & _
    "Die Tabellen werden anschließend neu eingebunden.", _
    vbCritical, "Tabelleneinbindung"
    ' Backend über Filedialog suchen

    BEPfad = Dateidialog(cMSAccess, DBPfad & "", , "Backend auswählen", False) 'setze Pfad als string zu Backend-Pfad

    'ACHTUNG: Hier wird das Programm beendet, wenn nichts ausgewählt wurde !!!
    If Len(BEPfad) = 0 Then Exit Function

    'und verknüpfe alle tabellen neu
    '************************************
    pwd = "123456"
    Set db = CurrentDb
    For Each td In db.TableDefs
    If (td.Attributes And dbAttachedTable) = dbAttachedTable And _
    (Left(td.Connect, 1) = ";" Or Left(td.Connect, 9) = "MS Access") Then ' auf Access-Tabelle prüfen
    retry:
    td.Connect = ";DATABASE=" & BEPfad & ";PWD=" & pwd
    td.RefreshLink
    End If
    Next td


    'Dieses Formular soll nach Neuverknüpfung geöffnet werden
    'Bitte mit dem gewünschten Formular ersetzen
    DoCmd.OpenForm "starteingang"

    End If
    fncRelinkAccessTables = True
    end_proc:
    On Error Resume Next
    Set db = Nothing
    Set td = Nothing
    Exit Function
    err_proc:
    If Err.Number = 3031 Then
    pwdCount = pwdCount + 1
    If pwdCount > 3 Then
    MsgBox "Sie haben dreimal ein falsches Passwort eingegeben, " & _
    "die Anzahl Versuche ist hiermit erschöpft, die Anwendung wird geschlossen.", _
    vbCritical
    Application.QUIT
    ' HINWEIS:
    ' besser als die Input-Box ist natürlich ein Formular mit Textfeld im Kennwort-Format
    ' zur Eingabe des Passworts geeignet
    ElseIf pwdCount > 1 Then
    pwd = InputBox("Das eingegebene Passwort ist ungültig, bitte achten Sie auch auf " & _
    "Groß-/Kleinschreibung.", _
    "Tabelleneinbindung")
    Resume retry
    Else
    pwd = InputBox("Die Datenbank ist passwortgeschützt, bitte geben Sie das Passwort ein.", _
    "Tabelleneinbindung")
    Resume retry
    End If
    Else
    MsgBox Err.Description, , Err.Number
    fncRelinkAccessTables = False
    Resume end_proc
    End If
    End Function


    Private Sub btnResetRelink_Click()
    fncRelinkAccessTables1
    DoCmd.Close acForm, "starteingang"
    DoCmd.OpenForm "starteingang"
    End Sub

    Public Function fncRelinkAccessTables1() As Boolean
    On Error GoTo err_proc
    Static pwdCount As Integer
    Dim db As DAO.Database, td As DAO.TableDef
    Dim DBPfad As String
    Dim BEPfad As String
    Dim pwd As String
    'Dim FD As New filedialog ###

    ' 'Pfad zur Aktuellen DB
    DBPfad = CurrentProject.Path
    ' ' Backend über Filedialog suchen
    'FD.InitDir = DBPfad 'suche im Datenbank-Ordner ###
    'FD.ShowOpen 'öffne FileDialog ###
    'BEPfad = FD.FileName 'setze Pfad als string zu Backend-Pfad ###
    BEPfad = Dateidialog(cMSAccess, DBPfad & "", , "Backend auswählen", False) 'setze Pfad als string zu Backend-Pfad

    'ACHTUNG: Hier wird das Programm beendet, wenn nichts ausgewählt wurde !!!
    If Len(BEPfad) = 0 Then Exit Function

    'und verknüpfe alle tabellen neu
    '************************************
    pwd = "123456"
    Set db = CurrentDb
    For Each td In db.TableDefs
    If (td.Attributes And dbAttachedTable) = dbAttachedTable And _
    (Left(td.Connect, 1) = ";" Or Left(td.Connect, 9) = "MS Access") Then ' auf Access-Tabelle prüfen
    retry:
    td.Connect = ";DATABASE=" & BEPfad & ";PWD=" & pwd
    td.RefreshLink
    End If
    Next td

    '##################################################################
    '******************************************************************************* ***
    'Dieses Formular soll nach Neuverknüpfung geöffnet werden
    'Bitte mit dem gewünschten Formular ersetzen
    DoCmd.OpenForm "starteingang"
    fncRelinkAccessTables1 = True
    end_proc:
    On Error Resume Next
    Set db = Nothing
    Set td = Nothing
    Exit Function
    err_proc:
    If Err.Number = 3031 Then
    pwdCount = pwdCount + 1
    If pwdCount > 3 Then
    MsgBox "Sie haben dreimal ein falsches Passwort eingegeben, " & _
    "die Anzahl Versuche ist hiermit erschöpft, die Anwendung wird geschlossen.", _
    vbCritical
    Application.QUIT
    ' HINWEIS:
    ' besser als die Input-Box ist natürlich ein Formular mit Textfeld im Kennwort-Format
    ' zur Eingabe des Passworts geeignet
    ElseIf pwdCount > 1 Then
    pwd = InputBox("Das eingegebene Passwort ist ungültig, bitte achten Sie auch auf " & _
    "Groß-/Kleinschreibung.", _
    "Tabelleneinbindung")
    Resume retry
    Else
    pwd = InputBox("Die Datenbank ist passwortgeschützt, bitte geben Sie das Passwort ein.", _
    "Tabelleneinbindung")
    Resume retry
    End If
    Else
    MsgBox Err.Description, , Err.Number
    fncRelinkAccessTables1 = False
    Resume end_proc
    End If
    End Function



    Private Sub Form_Activate()
    DoCmd.Maximize
    End Sub

    Private Sub Form_Current()
    DoCmd.Maximize
    End Sub
    'Private Sub Befehl20_Click()
    'On Error GoTo Err_Befehl20_

    ' Dim stDocName As String
    ' Dim stLinkCriteria As String

    ' stDocName = "start"
    'DoCmd.OpenForm stDocName, , , stLinkCriteria

    'Exit_Befehl20_Click:
    ' Exit Sub

    'Err_Befehl20_Click:
    ' MsgBox Err.Description
    ' Resume Exit_Befehl20_Click


    'On Error GoTo FehlerA
    'DoCmd.OpenForm "start"

    'Exit Sub
    'FehlerA:
    'DoCmd.Close acForm, "starteingang"
    ' DoCmd.OpenForm "Startformular"



    'End Sub


    Private Sub Befehl21_Click()
    On Error GoTo FehlerA
    DoCmd.OpenForm "start"

    Exit Sub
    FehlerA:
    DoCmd.Close acForm, "starteingang"
    DoCmd.OpenForm "Startformular"

    End Sub

    Private Sub Form_Error(DataErr As Integer, Response As Integer)

    On Error GoTo FehlerA
    DoCmd.OpenForm "start"

    Exit Sub
    FehlerA:
    DoCmd.Close acForm, "starteingang"
    DoCmd.OpenForm "Startformular"

    End Sub

    Private Sub Form_Load()
    fncRelinkAccessTables
    End Sub



    Ist es da soweit in Ordnung oder ist da noch , was nicht korrekt ist? Habe es auch kompelleiert und ggf. es korrigiert.

    Gruß André
     
  5. Hallo André.H,
    wieso nimmst du denn nicht den Code aus dem Beispiel in Thread #5?
    Der ist neuer und klappt auch mit UNC Pfaden und hat statt der manchmal etwas unzuverlässigen DIR Funktion eine Funktion "FileExists" .
    Außerdem sind die Funktionen alle zusammen in einem globalen Modul drin.
     
    Ohrkester, 26. November 2020
    #20
  6. Hallo Ohrkester,

    habe es mir nochmal angesehen, und auch nach dem Thread #5 es auch abgeändert.
    Habe daher auch die doppelten Funktionen rausgeschmissen, da sie ja im Modul sind.
    Nun habe ich eine Meldung, das er den Filiedialog " Office.Filedialog" nicht finden kann oder definiert ist.
    Siehe Bilder.
    Gibt es noch eine Verweis oder Einstellungen, die gemacht werden müssen?

    Hier das Modul:
    Option Compare Database
    Option Explicit

    Function FileExists(Path As String) As Boolean
    Const NotFile = vbDirectory Or vbVolume

    On Error Resume Next
    FileExists = (GetAttr(Path) And NotFile) = 0
    On Error GoTo 0
    End Function

    Public Function fncRelinkAccessTables() As Boolean
    On Error GoTo err_proc
    Static pwdCount As Integer
    Dim db As DAO.Database, td As DAO.TableDef
    Dim DBPfad As String
    Dim BEPfad As String
    Dim pwd As String
    Dim fDialog As Office.FileDialog 'ab 2007 muss es Office.Filedialog heissen
    Dim i As Long

    'Pfad zur Aktuellen DB
    DBPfad = CurrentProject.Path
    'aktuellen Pfad der Tabellenverknüpfung ermitteln
    '-> Type = 6 -> linked table
    '-> Connect leer (ohne PW) oder 'MS Access...' (mit PW)
    BEPfad = DLookup("database", "MSysObjects", "type=6 And (Connect Is Null OR Connect LIKE '*Access*')")

    '*************************************************************************
    'Bei unauffindbaren UNC-Pfaden eine nicht existierende Dummy DB angeben.
    If Left(BEPfad, 1) = "" Then BEPfad = "c:blablaXXX.mdb"
    ' anschließend prüfen ob aktueller pfad der verknüpfung auch im windows
    ' verzeichnis gefunden wird

    If (FileExists(BEPfad) = False) Then
    MsgBox "BackEnd-Datenbank nicht gefunden !@@" & _
    "Die BackEnd-Datenbank scheint umbenannt oder verschoben" & vbCrLf & _
    "worden zu sein." & vbCrLf & vbCrLf & _
    "Bitte suchen Sie die BackEnd-Datenbank und klicken Sie auf die" & vbCrLf & _
    "Schaltfläche 'Verknüpfen'." & vbCrLf & vbCrLf & _
    "Die Tabellen der BackEnd-Datenbank werden anschließend mit der" & vbCrLf & _
    "FrontEnd-Datenbank neu verknüpft.", _
    vbCritical, "Tabellenverknüpfung"
    ' Backend über Filedialog suchen
    ' Menue: Extras -> Verweise Microsoft Office yy.x Object Library muss aktiv sein!
    Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
    With fDialog
    .Filters.Clear
    .Filters.Add "Backends", "*.md*; *.accdb", 1
    .AllowMultiSelect = False
    .Title = "Bitte BackEnd-Datenbank suchen, markieren und Verknüpfen anklicken"
    .InitialFileName = DBPfad
    .InitialView = msoFileDialogViewDetails
    .ButtonName = "Verknüpfen"
    .Show
    If .SelectedItems.count > 0 Then
    For i = 1 To .SelectedItems.count
    BEPfad = .SelectedItems(i)
    Next i
    Else
    'MsgBox "kein Pfad ausgewählt."
    End If
    End With

    'ACHTUNG: Hier wird das Programm beendet, wenn nichts ausgewählt wurde !!!
    If Len(BEPfad) = 0 Then Exit Function

    'und verknüpfe alle tabellen neu
    '*************************************************************************
    pwd = "123456"
    Set db = CurrentDb
    For Each td In db.TableDefs
    If (td.Attributes And dbAttachedTable) = dbAttachedTable And _
    (Left(td.Connect, 1) = ";" Or Left(td.Connect, 9) = "MS Access") Then ' auf Access-Tabelle prüfen
    retry:
    td.Connect = ";DATABASE=" & BEPfad & ";PWD=" & pwd
    td.RefreshLink
    End If
    Next td
    End If
    fncRelinkAccessTables = True
    end_proc:
    On Error Resume Next
    Set db = Nothing
    Set td = Nothing
    Exit Function
    err_proc:
    If Err.Number = 3031 Then
    pwdCount = pwdCount + 1
    If pwdCount > 3 Then
    MsgBox "Sie haben dreimal ein falsches Passwort eingegeben, " & _
    "die Anzahl Versuche ist hiermit erschöpft, die Anwendung wird geschlossen.", _
    vbCritical
    Application.Quit
    ' HINWEIS:
    ' besser als die Input-Box ist natürlich ein Formular mit Textfeld im Kennwort-Format
    ' zur Eingabe des Passworts geeignet
    ElseIf pwdCount > 1 Then
    pwd = InputBox("Das eingegebene Passwort ist ungültig, bitte achten Sie auch auf " & _
    "Groß-/Kleinschreibung.", _
    "Tabelleneinbindung")
    Resume retry
    Else
    pwd = InputBox("Die Datenbank ist passwortgeschützt, bitte geben Sie das Passwort ein.", _
    "Tabelleneinbindung")
    Resume retry
    End If
    Else
    MsgBox Err.Description, , Err.Number
    fncRelinkAccessTables = False
    Resume end_proc
    End If

    DoCmd.OpenForm "starteingang"

    End Function

    Public Function fncRelinkAccessTables1() As Boolean
    On Error GoTo err_proc
    Static pwdCount As Integer
    Dim db As DAO.Database, td As DAO.TableDef
    Dim DBPfad As String
    Dim BEPfad As String
    Dim pwd As String
    Dim fDialog As Office.FileDialog 'ab 2007 muss es Office.Filedialog heissen
    Dim i As Long

    'Pfad zur Aktuellen DB
    DBPfad = CurrentProject.Path
    ' Backend über Filedialog suchen
    ' Menue: Extras -> Verweise Microsoft Office yy.x Object Library muss aktiv sein!
    Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
    With fDialog
    .Filters.Clear
    .Filters.Add "Backends", "*.md*; *.accdb", 1
    .AllowMultiSelect = False
    .Title = "Bitte BackEnd-Datenbank suchen, markieren und Verknüpfen anklicken"
    .InitialFileName = DBPfad
    .InitialView = msoFileDialogViewDetails
    .ButtonName = "Verknüpfen"
    .Show
    If .SelectedItems.count > 0 Then
    For i = 1 To .SelectedItems.count
    BEPfad = .SelectedItems(i)
    Next i
    Else
    'MsgBox "kein Pfad ausgewählt."
    End If
    End With

    'ACHTUNG: Hier wird das Programm beendet, wenn nichts ausgewählt wurde !!!
    If Len(BEPfad) = 0 Then Exit Function

    'und verknüpfe alle tabellen neu
    '************************************
    pwd = "123456"
    Set db = CurrentDb
    For Each td In db.TableDefs
    If (td.Attributes And dbAttachedTable) = dbAttachedTable And _
    (Left(td.Connect, 1) = ";" Or Left(td.Connect, 9) = "MS Access") Then ' auf Access-Tabelle prüfen
    retry:
    td.Connect = ";DATABASE=" & BEPfad & ";PWD=" & pwd
    td.RefreshLink
    End If
    Next td

    DoCmd.OpenForm "starteingang"

    fncRelinkAccessTables1 = True
    end_proc:
    On Error Resume Next
    Set db = Nothing
    Set td = Nothing
    Exit Function
    err_proc:
    If Err.Number = 3031 Then
    pwdCount = pwdCount + 1
    If pwdCount > 3 Then
    MsgBox "Sie haben dreimal ein falsches Passwort eingegeben, " & _
    "die Anzahl Versuche ist hiermit erschöpft, die Anwendung wird geschlossen.", _
    vbCritical
    Application.Quit
    ' HINWEIS:
    ' besser als die Input-Box ist natürlich ein Formular mit Textfeld im Kennwort-Format
    ' zur Eingabe des Passworts geeignet
    ElseIf pwdCount > 1 Then
    pwd = InputBox("Das eingegebene Passwort ist ungültig, bitte achten Sie auch auf " & _
    "Groß-/Kleinschreibung.", _
    "Tabelleneinbindung")
    Resume retry
    Else
    pwd = InputBox("Die Datenbank ist passwortgeschützt, bitte geben Sie das Passwort ein.", _
    "Tabelleneinbindung")
    Resume retry
    End If
    Else
    MsgBox Err.Description, , Err.Number
    fncRelinkAccessTables1 = False
    Resume end_proc
    End If
    End Function
     
  7. Hallo,

    da fehlt wohl der Verweis auf die Office-Objektbibliothek wegen der Deklaration von fDialog.

    Gruß
    Fred
     
  8. Front- und Backend verknüpfen/verlinken 64-bit

    Hallo Fred,
    den Verweis finden im VBA-Fenster - Extras - Verweise oder wie? und was müsste ich da als Verweis auswählen?
     
  9. Servus André.H
    steht doch gross im Code drin !!!
    ' Menue: Extras -> Verweise Microsoft Office yy.x Object Library muss aktiv sein!

    warum nicht ?
    Code:
    sondern eigenmächtig?
    Code:
    Du darfst natürlich mit dem Code treiben, was Du willst.
    Du darfst mich aber nicht fragen, warum der Code nicht funktioniert, wenn Du undokumentiert
    Änderungen vornimmst.
     
    Ohrkester, 28. November 2020
    #24
  10. Hallo Ohrkester,
    mit dem Verweis habe ich ehrlich gesagt übersehen. Aber diesen auch nun verwiesen.
    Wenn ich diese Anwendung meinen Mitstreitern weitereiche, bleiben die Verweise bestehen und auch ggf. intern gespeichert? Denn ich weiss ja nicht, ob sie in ihren Access-Umgebungen dies auch eingestellt sind?

    Mit dem PW ist es so, das sie in das Backend nicht einfach öffnen sollen. Da hat keiner was zu suchen, sondern nur über das Frontend. Um die Abfrage des Backend-Passwort zu umgehen habe ich es dort im Code hinterlegt.
    Denn das Frontend ist ja bereits Passwortgeschützt.
     
  11. Servus,
    So ist es.

    Der Passwortschutz des Frontends spielt möglicherweise einen Schutz, um die eigene Programmierarbeit vor anderen zu schützen.
    Damit schützt niemand die empfindlichen Daten eines Backends.
    Wer eine berechtigte Kenntnis des speziell verschlüsselten Backendpasswortes hat, kann dieses beim Erststart eines FE eingeben und hat zukünftig dann kein Problem mehr.
     
    Ohrkester, 28. November 2020
    #26
  12. Hallo Ohrkester,
    in dem Punkt mit dem Schutz gebe ich dir recht.
    Dann meine Frage, wie kann man es am besten gestalten bzw. aufbauen?
    Entwicklung und Nutzer?
     
  13. Front- und Backend verknüpfen/verlinken 64-bit

    Servus André.H,
    um eine Backend mit einem Kennwort zu versehen, muss dieses Backend
    in Access exklusiv geöffnet werden. Dann kannst Du ihm ein Kennwort geben,
    das jeder wissen muss, der dieses Backend z.B. direkt über Doppelklick im Windows Explorer öffnen will.
    1- Mach eine Kopie Deines kennwortlosen Backends.
    2- Öffne dieses Backend exklusiv.
    3- Gib ihm ein Kennwort, speichere und schliesse es.
    4- Öffne Dein FE
    5- Relink Dein FE mit der Kopie des BE. Du bekommst die Aufforderung,
    das Passwort einzugeben.
    6- Gib das PW ein und die Verlinkung klappt.
    7- Schliesse das FE und starte es neu.
    8- Es wird nicht mehr nach dem PW gefragt.

    Wenn das reibungslos funktioniert, dann wiederhole den obigen Prozess
    inkl. Pkt. 3
    - Schreibe dann im VBA-Code der Verknüpfungsfunktion statt
    Code:
    das PW Deines Backends (BE)
    Code:
    und speichere Dein FE.
    - Schliesse das FE und öffne es erneut.
    - Verknüpfe es mit dem BE. Es dürfte dann keine Passwortabfrage des BE
    mehr stattfinden.
    - Entferne für den Mitarbeiter die Möglichkeit, per FE ein anderes BE zu
    relinken.
    - Lege das BE zusätzlich in einen Ordner, auf den die Mitarbeiter keinen
    Zugriff haben.

    Trotz all dem wird es für Spezialisten möglich sein, an Deine BE Daten
    heranzukommen. Das Sicherere wird sein, einen Server wie MySQL oder SQL Server als BE zu nehmen.
     
    Ohrkester, 29. November 2020
    #28
  14. Servus Ohrkester,

    danke für deine Rückmeldung.
    Das mit dem Erstellen eines PW über den exklusiven Zugang des Backend oder dem Frontend habe ich bereits getan und kenne es auch so.
    In dem Punkt MySQL-Server SQL-Server habe ich auch was von gehört. Nur wie geht es, und gibt es da Voraussetzungen? Wird sowas auch von MS angeboten?
    Zumal auch die Mitstreiter da auf das BE zugreifen müssen und auch ohne Problem einrichten können.
     
  15. Servus Andrè.H,
    Deine email ist bei mir in Junk emails gelandet und übersehen worden.
    Ich schau es mir an.

    SQL Server 2019 Express gibt es kostenlos.
    https://www.google.com/search?client...r+2019+express

    Mal sehen, ob ich in der Weihnachtszeit mal endgültig dazukomme, mich
    näher damit zu beschäftigen.
     
    Ohrkester, 30. November 2020
    #30
Thema:

Front- und Backend verknüpfen/verlinken 64-bit

Die Seite wird geladen...
  1. Front- und Backend verknüpfen/verlinken 64-bit - Similar Threads - Front Backend verknüpfen

  2. Datenbank oder Objekt ist schreibgeschützt.

    in Microsoft Access Hilfe
    Datenbank oder Objekt ist schreibgeschützt.: Hallo zusammen, neuerdings kommt beim Versuch eine Excel-Liste als Tabelle zu importieren folgende Meldung: "Aktualisieren nicht möglich; Datenbank oder Objekt ist schreibgeschützt." Weder FE noch...
  3. Acces FrontEnd und MS SQL-Server als BackEnd

    in Microsoft Access Hilfe
    Acces FrontEnd und MS SQL-Server als BackEnd: Hallo zusammen, möchte MS access 2010 als FrontEnd und MS SQL-Server als Backend verwenden. Die Backend Tabellen sind bereits auf dem Server. Mit welchem VBA-Code sollte ich nun die MS...
  4. Verschiedene Variablen für verschiedene Front Ends

    in Microsoft Access Hilfe
    Verschiedene Variablen für verschiedene Front Ends: Hi, ich habe für verschiedene Standorte ein eigenes Frontend. Einzig und allein die in VBA genutzen Pfade für das öffnen/speichern von importen/exporten sollen sich unterscheiden. Diese habe ich...
  5. Excel-Export aus Backend mit Datenbankpasswort

    in Microsoft Access Hilfe
    Excel-Export aus Backend mit Datenbankpasswort: Hallo Ich bin selber kein ACCESS-Entwickler und benötige Hilfe bei einer Aufgabenstellung.: Hier eine knappe Beschreibung: Eine Windows-Anwendung nutzt eine MS-Access-DB als backend. Die DB kann...
  6. Back/Front-End und Benutzerverwaltung

    in Microsoft Access Hilfe
    Back/Front-End und Benutzerverwaltung: Guten Morgen, Ich hätte ein paar generelle Fragen zu der Access Front-End und Back-End Lösung. Ich habe meine Datenbank soweit fertig und nun beginnt die Testphase. Dazu habe ich die DB mit dem...
  7. VB/VBA-Programmierer an die Front!

    in Microsoft Access Hilfe
    VB/VBA-Programmierer an die Front!: Hallo! Mit Front ist hier u.a. das Vorhaben von MS gemeint, VB/VBA nur noch bestimmte Zeit zu unterstützen. Genaueres findet ihr auf der Seite von Randy Birch über den Banner in der Kopfzeile...
  8. XP Professional Front Page soll installiert werden...?!

    in Microsoft FrontPage Hilfe
    XP Professional Front Page soll installiert werden...?!: Hallo.. ich hab da folgendes Problem... Bei öffnen eines Office Programms soll Microsoft XP Professional Front Page installiert werden. Entweder von der Festplatte oder von CD (wie bei...
  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