Le grenier Access

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 22 août 2010

Générer un nom de fichier avec numéro

Ok, le titre de ce billet est complètement nébuleux ! En clair : vous disposez du chemin complet d'un fichier (par exemple : C:\un\chemin\quelconque\test.jpg), et vous souhaitez le transformer en C:\un\chemin\quelconque\test-00001.jpg si un fichier test.jpg existe déjà à cet emplacement.


Lire la suite...

mardi 28 avril 2009

Sélecteur de dossier

Dans un article précédent, il a été question d'afficher une boîte Fichier/Ouvrir pour permettre à l'utilisateur de sélectionner un ou plusieurs fichiers. Dans cette suite, on va voir comment affcher le sélecteur de dossier (une boîte qui permet de sélectionner un dossier/répertoire).

 

Lire la suite...

lundi 27 avril 2009

Boîte de dialogue Fichier/Ouvrir

Il est souvent utile d'afficher la boîte de dialogue Fichier/Ouvrir pour permettre à l'utilisateur de sélectionner un fichier (ou même plusieurs) sur son disque dur. Depuis Access 2002, la procédure est simplifiée, grâce à l'objet FileDialog. Voici comment la mettre en pratique...

 

Lire la suite...

vendredi 13 mars 2009

Ouvrir ou imprimer un fichier quelconque à partir de son nom

Je dispose de fichiers d'extensions diverses (.xls, .xlsx, .ppt, .msg, .xcf et n'importe quoi d'autre !). Je voudrais ouvrir ce fichier dans le logiciel associé. Comment faire ?

Lire la suite...

dimanche 8 mars 2009

Dossiers, fichiers et extensions

Lorsque vous manipulez des dossiers (répertoires) ou des fichiers, il y a des commandes qui reviennent souvent comme : 

  • Extraire le nom de fichier à partir d'un chemin complet
  • Extraire l'extension (JPG, PNG, PDF, DOC, XLSX...) d'un fichier à partir de son chemin complet
  • Extraire le nom du fichier, sans son extension, à partir de son chemin complet
  • Extraire le chemin, sans le nom du fichier

Autant en faire des fonctions et ne plus y penser ensuite !

Lire la suite...

mercredi 18 février 2009

Ajouter un backslash en fin de chemin

Quand on manipule les chemins de fichiers, on est souvent amené à concaténer des "bouts de chemins" à des noms de fichiers. Et dans le processus, il y a toujours un \ qui doit figurer en fin de chemin. D'où ce test fréquent : "si le chemin ne se termine pas par un \, alors ajouter le \". Voici une petite fonction sans prétention qui devrait éviter de réécrire le test systématiquement.

Le code

' ---
' AJOUT D'UN \ EN FIN DE CHEMIN
' ---
' Entrée : strFolder <- Chemin à retraiter.
' Sortie : Chemin avec \ ajouté à la fin si nécessaire.
'
Function AddBackslash( _
  ByVal strFolder As String) As String
 
  strFolder = Trim(strFolder)
  If Right(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
  AddBackslash = strFolder
End Function

Mode d'emploi

Pour utiliser cette fonction, vous lui transmettez un chemin (sans le nom de fichier final). La fonction vous renvoie le même chemin, avec un \ ajouté à la fin, si nécessaire. Par exemple :

Dim strChemin As String
Dim strImage As String

strChemin = "C:\Users\Hervé\Documents"
strImage = AddBackslash(strChemin) & "photo.jpg"
MsgBox strImage

Le chemin final de l'image sera bien C:\Users\Hervé\Documents\photo.jpg. Bien sûr, l'exemple du dessus fausse un peu le jeu. Imaginez plutôt que strChemin a été lu dans une table, et qu'on ne sait pas si le chemin se termine par \.

dimanche 12 octobre 2008

Obtenir la date de dernière modification d'un fichier

Comment obtenir la date de dernière modification d'un fichier quelconque sur le disque ?

Méthode 1

Utilisez la fonction VBA FileDateTime(). Par exemple :

Sub TestDate()
  Dim dt As Date

  dt = FileDateTime("C:\...\mon_fichier.txt")
  MsgBox "Fichier modifié le " & dt, vbInformation
End Sub

Méthode 2

Vous pouvez également utiliser le Scripting Runtime, notamment les propriétés DateCreated (date de création), DateLastAccessed (date du dernier accès) et DateLastModified (date de dernièremodification) de l'objet File.

Plus de détails (et des exemples de code) sur cette page.

lundi 29 septembre 2008

Nom d'utilisateur et autres informations utiles

Comment obtenir dans Access le nom de l'utilisateur qui a démarré la session Windows ? Peut-on obtenir d'autres infos ?

Lire la suite...

samedi 20 octobre 2007

Ouvrir un dossier Windows

Comment déclencher l'ouverture d'un dossier (répertoire) de Windows, comme le ferait un double-clic sur "Mes documents" par exemple ?

Tapez le code qui suit dans l'événement Sur clic d'un bouton (ou à tout autre endroit utile !) :

Shell "explorer C:\...\dossier",vbNormalFocus

C:\...\dossier est bien sûr le chemin complet (et exact !) du dossier à ouvrir.

mercredi 5 septembre 2007

Lister tous les fichiers d'un répertoire

Comment obtenir la liste de tous les fichiers d'un répertoire (dossier) donné ?

Le code

Voici un bout de code qui devrait faire l'affaire (à recopier dans un module standard Access, comme d'habitude).

' ---
' AFFICHAGE DU CONTENU D'UN DOSSIER
' ---
'
Sub ContenuDuDossier(ByVal strDossier As String)
  Dim strFichier As String

  ' Vérifier que le dossier existe bien
  If Dir(strDossier, vbDirectory) = "" Then
      MsgBox "Dossier introuvable !", vbExclamation
      Exit Sub
  End If
   
  ' Lister tous les fichiers du dossier
  strFichier = Dir(strDossier, vbNormal)
  While strFichier <> ""
      ' Afficher le nom du fichier
      Debug.Print strFichier
     
      ' Lire le fichier suivant
      strFichier = Dir
  Wend
End Sub

Tester le programme

Pour tester le bout de code ci-dessus :

  1. Faites apparaître la fenêtre Exécution (CTRL + G).
  2. Tapez dedans quelque chose comme :
    ContenuDuDossier "C:\Document and Settings\votre_nom\Mes documents" puis [Entrée]
    Aménagez le chemin selon votre version de Windows et selon votre nom de connexion.

Les noms des fichiers trouvés devraient s'afficher dans la fenêtre Exécution.

Remarques
  • Seuls les fichiers standard (vbNormal) s'affichent dans la liste. Vous pouvez également obtenir la liste des fichiers cachés (vbHidden) ou système (vbSystem) en aménageant le premier Dir du listing. Consultez l'aide de la commande Dir pour plus d'informations.
  • La procédure ci-dessus n'affiche pas le contenu des sous-dossiers. Ca fera l'objet d'un autre article, pour sûr :o)

- page 1 de 2