web-dev-qa-db-fra.com

Par défaut un dossier pour FileDialog dans VBA

Private Sub Command93_Click()

    Dim f As Object
    Dim strFile As String
    Dim strFolder As String
    Dim varItem As Variant
    Dim P As String
    Dim DeleteEverything As String

        DoCmd.SetWarnings False
        DeleteEverything = "DELETE * FROM [TABLE]"
        DoCmd.RunSQL DeleteEverything

    Set f = Application.FileDialog(3)
    f.AllowMultiSelect = False
    If f.Show Then
        For Each varItem In f.SelectedItems
            strFile = Dir(varItem)
            strFolder = Left(varItem, Len(varItem) - Len(strFile))
            P = strFolder & strFile
        Next
    End If
    Set f = Nothing

        DoCmd.TransferText acImportFixed, "[IMPORT SPECIFICATION]", "[TABLE]", P, False

End Sub

Comment définir FileDialog par défaut dans un dossier spécifique lors de son ouverture initiale?

17
Chuck

Ajoutez le chemin du dossier (y compris le \ De fin) à InitialFileName. Par exemple, pour ouvrir la boîte de dialogue dans le répertoire personnel de l'utilisateur, procédez comme suit:

f.InitialFileName = Environ("USERPROFILE") & "\"

Si vous oubliez le \ De fin, la boîte de dialogue s'ouvrira toujours dans le bon dossier, mais le nom du dossier apparaîtra également comme nom de fichier sélectionné par défaut. Ensuite, la boîte de dialogue recherchera un sous-dossier du même nom, qui n'existe généralement pas.

45
Chuck