2008-11-05 13 views
4

Comment placer un contrôle de chemin de fichier dans le panneau avant de VBA? Je souhaite que l'utilisateur puisse sélectionner le bouton de navigation et sélectionner le chemin du fichier plutôt que d'afficher des boîtes de dialogue partout. J'ai besoin que l'utilisateur sélectionne trois chemins de fichier ou plus.Contrôle de chemin de fichier

Répondre

3

Après re-re-lecture de votre Q, il coutures que vous voulez éloigner des boîtes de dialogue! Eh bien, je vais dire

je pouvais poster le hack sur l'utilisation MSDIAG sur VBA, que explique comment vous pouvez patcher votre registre pour permettre son utilisation dans VBA, sans avoir d'autres produits MS-VB ... mais j'installés ont plutôt vous google que l'on ... vous pouvez certainement comprendre pourquoi.

Mais vous ne voulez pas les boîtes de dialogue ... vous voulez des commandes et boutons: Utilisez listboxes! Pour remplir votre zone de liste, utilisez la commande Dir (en utilisant la méthode additem de la zone de liste). deux phases pour y parvenir:

  • d'abord obtenir les répertoires (et préfixe un « -> » ou quoi que avant de l'ajouter sur la zone de liste, de sorte que l'utilisateur comprend ce n'est pas un fichier);
  • puis d'obtenir les noms de fichiers (vous pouvez filtrer par extension avec les arguments de Dir, comme vous le feriez sous DOS).

Enfin, sous Surclic et OnDoubleClick de la zone de liste, vous devez interpréter la propriété par défaut listbox (point), vérifier « -> » et utiliser ChDir changer de répertoire et repeupler, ou vous aurez votre fichier sélectionné .

L'écriture est tellement plus compliquée que le code ... faites-moi confiance.

2

Voulez-vous dire VBA pour Microsoft Office ou simplement VBA général?

Dans Office, Application.FileDialog(msoFileDialogOpen).

Sinon, regardez la fonction API Win32 SHBrowseForFolder (dans shell32.dll). Vous pouvez l'importer pour l'utiliser dans VBA en utilisant les mots-clés Declare Function.

+0

Je ne souhaite pas utiliser une boîte de dialogue de fichier. Je veux un contrôle de chemin de fichier (comme un contrôle de chaîne).Une zone de texte avec un bouton de navigation - y a-t-il un autre nom? – Manoj

1

Il n'y a pas de fonction VBA directe pour cela. Vous pouvez décider de combiner un formulaire (formulaire Access, ou un formulaire générique Microsoft) avec 2 contrôles: (1) zone de texte (2) bouton de navigation (qui utilisera finalement la commande fileDialog ou une API windows).

1

Peut-être la navigation pour l'API de dossier à partir du site Microsoft MVP conviendrait à:

http://www.mvps.org/access/api/api0002.htm

Il utilise SHBrowseForFolder mentionné par fwzgekg, et ne retourne pas une boîte de dialogue de fichier, il renvoie une liste explorable des dossiers.

1

Est-ce ce que vous cherchez?

FilePath = Application.GetOpenFilename 
Questions connexes