L'informatique à votre portée
L'informatique prêt-à-porter

Faites appel à moi pour vos formations
sur les dpts 81, 31, 82, 11 et 67 (Strasbourg)
Confiez moi vos développements Office

FacebookTwitterGoogle BookmarksLinkedin

Fichier à accès direct

Imprimer E-mail
5 mars 2014

Dans un fichier à accès direct, tous les enregistrements ont la même longueur. Vous pouvez donc lire un enregistrement quelconque sans lire tout le fichier.
Pour que chaque enregistrement ai la même taille, vous devez utiliser les variable personnalisées. Dans notre exemple, nous aurons un nom, un montant et une date.
Lors de l'ouverture, si le fichier n'existe pas, il est créé.

Fichier INI

Imprimer E-mail
5 mars 2014

Fichier Séquentiel

Imprimer E-mail
5 mars 2014

Dans un fichier séquentiel, vous stockez vos données un peu comme dans une liste ou une table. Il contient des enregistrements avec plusieurs champs (ou valeurs).
Les enregistrements sont écrits et lus ligne par ligne, ils n'ont pas forcément la même longueur, ni le même nombre de champ (bien que pour une meilleure gestion il soit préférable de les construire sur un même nombre de champ).
Vous ne pouvez pas vous placez sur un enregistrement précis, vous êtes obligé de lire tous les enregistrements du 1er à celui recherché.
Pour ouvrir un fichier en lecture ou écriture, vous devez connaître au préalable le prochain numéro de fichier libre, ce numéro permet ensuite de différencier les différents fichiers ouverts.
Lors de l'ouverture, si le fichier n'existe pas, il est créé.

Modifier les dates d'un fichier

Imprimer E-mail
5 mars 2014

Public Const OFS_MAXPATHNAME = 260

Type OFSTRUCT
   cBytes As Byte
   fFixedDisk As Byte
   nErrCode As Integer
   Reserved1 As Integer
   Reserved2 As Integer
   szPathName(OFS_MAXPATHNAME) As Byte
End Type
Type FILETIME
        dwLowDate As Long
        dwHighDate As Long
End Type
Type SYSTEMTIME
        wYear As Integer
        wMonth As Integer
        wDayOfWeek As Integer
        wDay As Integer
        wHour As Integer
        wMinute As Integer
        wSecond As Integer
        wMillisecs As Integer
End Type

Une fonction pour maîtriser l'enregistrement d'un fichier

Imprimer E-mail
5 mars 2014

Function EnregFich(wkb As Workbook) As String
    Dim strNom As Variant ' car contiendra soit du texte soit la valeur False (boolean)
    
    'ouvre la boîte de dialogue d'enregistrement mais cela n'enregistre pas.
    'par contre elle renvoie le nom et l'adresse choisit pour le fichier
    strNom = Application.GetSaveAsFilename(, "Fichier Excel (*.xls),*.xls")
    'si l'utilisateur a cliqué sur annuler alors strNom est égale à False
    If strNom <> False Then
        wkb.SaveAs strNom
        wkb.Close
        EnregFich = strNom
    End If
End Sub