map uitrolvenster

Status
Niet open voor verdere reacties.

Sytse1

Gebruiker
Lid geworden
9 aug 2007
Berichten
584
Office versie
miDer
Mijn Access 2016 toepassing heeft een frontend en een backend.

In het backend zitten de tabellen. In het netwerk wordt het backend centraal geplaatst zodat de verschillende frontend hiermee kunnen communiceren.
Bij de start van het frontend wordt gecontroleerd of de verbindingen met de tabellen aanwezig zijn.
Als door wat voor oorzaak ook de backend wordt verplaatst is de verbinding verbroken.
Bij een oude versie van Access gebruikte ik ActiveXBestEl7 om via een venster naar de juiste map te gaan en de verbinding te herstellen.
Hier het door mij gebruikte venster Instelling.
instelling.jpg

De code voor het bladeren tussen mappen en de schijf is:
Code:
On Error GoTo btnBrowse_Err
Dim dummy As String
ActiveXBestEl7.Visible = True
ActiveXBestEl7.Directory = [MAP_DATA]
On Error GoTo 0
Exit Sub
btnBrowse_Err:
MsgBox "Fout: " + Error$, 0, "button Browse"
On Error GoTo 0
Exit Sub
Het gekozen pad wordt opgeslagen in het veld MAP_DATA
Maar in Access 2016 werkt dit niet.
Ik kan ActiveXBestEl7 niet vinden. Wellicht is hier een andere oplossing voor?
 
Daar zijn al sinds jaar en dag veel betere (want eigen) VBA oplossingen voor. Die van jou zie ik nu voor het eerst, en hopelijk ook voor het laatst :D.
Code:
Private Function ZoekMap(Optional titel As Variant) As String
'*********************************************************************************
' Early binding: Microsoft Office 11.0 Object Library of later
''Dim fDialog As Office.FileDialog
'*********************************************************************************
' Late binding: gebruik objecten
Dim fDialog As Object
'*********************************************************************************
Dim varFile As Variant
Dim i As Integer

    '******************************************************************************
    'Opzetten File Dialog met Early Binding.
    ''Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
    '******************************************************************************
    'Opzetten File Dialog met Late Binding.
    Set fDialog = Application.FileDialog(4)
    '******************************************************************************
    With fDialog
        '**************************************************************************
        .InitialFileName = CurrentProject.Path & "\"
        '**************************************************************************
        .AllowMultiSelect = False
        .Title = IIf(titel = "", "Kies een map", titel)
        '**************************************************************************
        'Toon het scherm, als methode False teruggeeft is geen bestand gekozen.
        '**************************************************************************
        If .Show = True Then
            DoEvents
            ZoekMap = .SelectedItems(1)
        Else
            ZoekMap = "Geen map geselecteerd."
        End If
    End With
End Function
Twee varianten in de code: één voor Late Binding, één voor Early Binding. Mag je zelf kijken welke je wilt gebruiken.
 
Bedankt.
Ik ga het bestuderen en uitzoeken hoe ik de gevonden map in een tabel kan zetten.
 
Dat is simpel. De functie retourneert een string dus dierkunde je gewoon aan een veld toewijzen.
 
Nogmaals bedankt.
ActiveXbestE17 gaat in de ba.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan