Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

FAQ MS-AccessConsultez toutes les FAQ

Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireFichiers et répertoiresCréation/Suppression/Modifications
 
Sélectionnez
 ' Déclarer deux variables String pour les emplacements
Dim sEmplacementInitial As String, sEmplacementFinal As String

sEmplacementInitial="C:\MonrepertoireIni\Monfichier.xls"
sEmplacementFinal="D:\Monrepertoirefin\Monfichier.xls"

 ' Copie du fichier
FileCopy sEmplacementInitial,sEmplacementFinal
Créé le 25 octobre 2004  par Frank

Ce code copie le contenu du répertoire c:\sources dans le répertoire c:\oldsources. Passer la valeur True en troisième paramètre de CopyFolder indique que les fichiers existants devront être écrasés.

 
Sélectionnez
Dim fso As FileSystemObject
Set fso = New FileSystemObject
fso.CopyFolder "c:\sources", "c:\oldsources", True
Set fso = Nothing
Créé le 1er janvier 2005  par nightfall

Lien : FAQ VB

Intéressez-vous à la fonction MkDir().

Créé le 10 mai 2005  par Frank

Pour transférer le contenu d'une table ou d'une requête, il faut utiliser la méthode Docmd.TransferText

Sinon, pour écrire directement du texte :

 
Sélectionnez
open "Nom_Fichier" for Output as #1
Print #1, "Placer la donnée à insérer ici" 
Close #1 
Créé le 25 octobre 2004  par Team Access

Lien : Comment travailler sur un fichier texte (création, lecture, écriture...) ?
Lien : Manipuler les fichiers textes

En utilisant les API Windows. Copiez ce code source dans un module standard :

 
Sélectionnez
Private Type SHFILEOPSTRUCT
   hwnd As Long
   wFunc As Long
   pFrom As String
   pTo As String
   fFlags As Long
   fAnyOperationsAborted As Long
   hNameMappings As Long
   lpszProgressTitle As String
End Type

Private Const FO_DELETE As Long = &H3
Private Const FOF_ALLOWUNDO As Long = &H40

Private Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" _
                                         (lpFileOp As SHFILEOPSTRUCT) As Long

Public Function DansCorbeille(fichier As String, handle As Long) As Boolean

    Dim DelFileOp As SHFILEOPSTRUCT
    Dim Result As Long

    With DelFileOp
       .hwnd = handle
       .wFunc = FO_DELETE
       .pFrom = fichier & vbNullChar & vbNullChar
       .fFlags = FOF_ALLOWUNDO
    End With
   
    Result = SHFileOperation(DelFileOp)
    DansCorbeille = (Result = 0) And (DelFileOp.fAnyOperationsAborted = 0)

End Function

La fonction DansCorbeille renvoie True si l'envoi du fichier dans la corbeille a été effectué. Ses paramètres sont le chemin complet du fichier et le handle de la fenêtre utilisée pour afficher les éventuelles boîtes de dialogue d'avertissement ou de demande de confirmation. Ce deuxième paramètre peut être une valeur nulle. Voici un exemple d'utilisation de cette fonction :

 
Sélectionnez
If DansCorbeille("C:\lettre.doc", Me.hwnd) Then
    MsgBox "Le fichier a été déplacé dans la corbeille"
Else
    MsgBox "Le fichier n'a pas pu être déplacé dans la corbeille"
End If
Créé le 1er janvier 2005  par nightfall

Lien : FAQ VB
Lien : Comment ouvrir un fichier HTML, Word, PDF ou autre en utilisant l'exécutable associé ?
Lien : Que faire quand l'API ShellExecute ne fonctionne pas ?

Il faut vous créer un format d'importation.

Pour créer le format d'importation, il faut lancer l'assistant d'importation à travers le menu Fichier = > Données Externes = > Importer.

Après avoir choisi le fichier texte à importer, la fenêtre d'importation de fichier texte s'affiche où on trouve un bouton Avancé. Ce bouton permet d'accéder à une autre fenêtre qui permet de spécifier les paramètres d'importation notamment le délimiteur. Ensuite un bouton Enregistrer sous permet de sauvegarder le modèle ainsi créé.

Image non disponible

Le modèle est enregistré dans une table système MSysIMEXSpecs de manière permanente dans la base pour pouvoir être utilisé dans la commande DoCmd.transfertText.

Image non disponible
 
Sélectionnez
DoCmd.TransferText acImportDelim, "NomModel", "TableDestination", "FichierSource"
Mis à jour le 31 mars 2008  par DMboup

Les fichiers .ini sont des fichiers texte utilisés pour enregistrer les options d'un programme. Ils sont composés de sections, qui contiennent des clés auxquelles on peut donner une valeur. Par exemple :

 
Sélectionnez
[Affichage]
State=Maximized
Left=50
Top=80
[Sauvegarde]
Confirm=True
Auto=False

Pour pouvoir respectivement lire et écrire dans un fichier .ini, voici les déclarations que vous devez ajouter dans votre module :

 
Sélectionnez
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
    (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
    ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
    (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _
    ByVal lpFileName As String) As Long

Ci-dessous la fonction qui écrira une valeur pour la clé et dans la section indiquée. Notez que vous n'avez pas besoin de créer le fichier s'il n'existe pas, car la fonction WritePrivateProfileString le fait pour vous.

 
Sélectionnez
Private Function EcritDansFichierIni(Section As String, Cle As String, _
                                     Valeur As String, Fichier As String) As Long
EcritDansFichierIni = WritePrivateProfileString(Section, Cle, Valeur, Fichier)
End Function

Voyons maintenant la fonction qui nous retournera la valeur d'une clé dans une section donnée. ValeurParDefaut contient la valeur qui devra nous être retournée si le fichier n'existe pas, ou si aucune valeur n'a été spécifiée pour la clé demandée :

 
Sélectionnez
Private Function LitDansFichierIni(Section As String, Cle As String, Fichier As String, _
    Optional ValeurParDefaut As String = "") As String

Dim strReturn As String
strReturn = String(255, 0)
GetPrivateProfileString Section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier
LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1)

End Function

Le code nécessaire pour écrire la section [Affichage] du fichier donné en exemple sera :

 
Sélectionnez
EcritDansFichierIni "Affichage", "State", "Maximized", "c:\config.ini"
EcritDansFichierIni "Affichage", "Left", "50", "c:\config.ini"
EcritDansFichierIni "Affichage", "Top", "80", "c:\config.ini"

Et nous pourrons lire la valeur donnée à la clef "Left" avec :

 
Sélectionnez
LeftParam = LitDansFichierIni("Affichage", "Left", "c:\config.ini", 100)
Créé le 1er janvier 2005  par nightfall

Lien : FAQ VB

 
Sélectionnez
'Renomme "c:\temp\Erreurs.tmp" en "c:\temp\Erreurs.bak"
Name "c:\temp\Erreurs.tmp" As "c:\temp\Erreurs.bak"
' Renomme le répertoire "c:\temp" en "c:\var"
Name "c:\temp" As "c:\var"
Créé le 1er janvier 2005  par nightfall

Lien : FAQ VB

 
Sélectionnez
Kill "c:\Erreurs.tmp"

Attention : le fichier doit exister sinon une erreur d'exécution a lieu.

Créé le 1er janvier 2005  par nightfall

Lien : FAQ VB

Avec RmDir. Mais vous ne pouvez l'utiliser que pour supprimer des répertoires vides.

 
Sélectionnez
RmDir "c:\temp"

Pour supprimer un répertoire qui contient des fichiers et/ou des répertoires, utilisez le FileSystemObject, qui est disponible seulement si vous avez inclus la bibliothèque Microsoft Scripting Runtime dans les références de votre projet.

 
Sélectionnez
Dim fso as FileSystemObject
Set fso = New FileSystemObject
fso.DeleteFolder "c:\temp", True

La valeur True passée au deuxième paramètre permet de supprimer le répertoire dans le cas où il aurait l'attribut lecture seule. Ce paramètre est optionnel, et a la valeur False par défaut.

Créé le 1er janvier 2005  par nightfall

Lien : FAQ VB
Lien : Utiliser fileSystemObject

VB n'inclut pas de composant permettant de compresser des fichiers. Il est possible de s'en sortir en exécutant, via la fonction Shell, un programme de type pkzip. Mais une solution plus pratique est d'utiliser une bibliothèque ou un active-x. Ici nous utiliserons la zlib, qui a l'avantage d'être gratuite, open source et de créer des zips standards. Le code à écrire en VB pour la manipuler étant assez volumineux, nous allons aussi importer les classes VB d'Andrew McMillan disponibles dans les fichiers zipclass.zip et ZipExtractionClass.zip (la zlib est aussi dans ces zips).

Après avoir téléchargé ces deux fichiers, importez les classes dans votre projet et copiez le fichier zlib.dll dans le répertoire de votre projet ou dans le répertoire système.

Voici comment créer un fichier zip :

 
Sélectionnez
Dim z As ZipClass
   
Set z = New ZipClass
z.AddFile "c:\test.doc"
z.AddFile "c:\test.jpg"
z.WriteZip "c:\test.zip", True
Set z = Nothing

Et comment faire une extraction :

 
Sélectionnez
Dim zip As ZipExtractionClass

Set zip = New ZipExtractionClass
If zip.OpenZip("C:\Test\Test.zip") Then
   If zip.Extract("C:Test\Extract", True, True) Then
      MsgBox "Extraction terminée.", vbInformation
   End If
   zip.CloseZip
End If
Set zip = Nothing
Créé le 1er janvier 2005  par elifqaoui, nightfall

Lien : FAQ VB
Lien : Comment zipper des fichiers en exécutant la fonction Shell ?

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.