Numéro d'article: 155512 - Dernière mise à jour: vendredi 19 janvier 2007 - Version: 3.3

ACC : Comment faire pour créer un fichier Schema.ini par programme

A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.
Modéré : Nécessite des compétences de l'interopérabilité, de codage et de macro de base.
Agrandir tout | Réduire tout

Résumé

Cet article vous montre comment écrire une procédure qui crée un fichier Schema.ini basé sur une table existante dans votre base de données.

Cet article suppose que vous êtes familiarisé avec Visual Basic pour applications et la création d'applications de Microsoft Access à l'aide des outils de programmation fournis avec Microsoft Access. Pour plus d'informations sur Visual Basic pour applications, reportez-vous à votre version du manuel «Création d'applications avec Microsoft Access».

Plus d'informations

Dans Microsoft Access 7.0 et Microsoft Access 97, vous pouvez lier ou ouvrir les fichiers texte délimités et de longueur fixe. Microsoft Access peut lire directement un fichier texte, ou il peut utiliser un fichier d'informations appelé Schema.ini pour déterminer les caractéristiques du fichier texte, tels que les noms de colonne, les longueurs de champ et les types de données. Un fichier Schema.ini est requis lorsque vous liez ou ouvrez les fichiers texte de longueur fixe ; elle est facultative pour les fichiers textes délimités. Le fichier Schema.ini doit résider dans le même dossier que l'ou les fichiers texte qu'il décrit.

La procédure dans l'exemple suivant accepte quatre paramètres :
     Parameter        Value
   ------------------------------------------------------------------------
   bIncFldNames     True/False, stating if the first row of the text file
                    has column names
   sPath            Full path to the folder where Schema.ini will reside
   sSectionName     Schema.ini section name; must be the same as the name
                    of the text file it describes
   sTblQryName      Name of the table or query for which you want to
                    create a Schema.ini file
				
Avertissement : la procédure dans cet exemple écrase un fichier Schema.ini existant dans le même dossier de destination sans avertissement.
  1. Ouvrez la base de données Comptoir.mdb.
  2. Créez un module et tapez la ligne suivante dans la section Déclarations si elle n'est pas déjà : Option Explicit
  3. Tapez la procédure suivante :
          Public Function CreateSchemaFile(bIncFldNames As Boolean, _
                                           sPath As String, _
                                           sSectionName As String, _
                                           sTblQryName As String) As Boolean
             Dim Msg As String ' For error handling.
             On Local Error GoTo CreateSchemaFile_Err
             Dim ws As Workspace, db As DATABASE
             Dim tblDef As TableDef, fldDef As Field
             Dim i As Integer, Handle As Integer
             Dim fldName As String, fldDataInfo As String
             ' -----------------------------------------------
             ' Set DAO objects.
             ' -----------------------------------------------
             Set db = CurrentDB()
             ' -----------------------------------------------
             ' Open schema file for append.
             ' -----------------------------------------------
             Handle = FreeFile
             Open sPath & "schema.ini" For Output Access Write As #Handle
             ' -----------------------------------------------
             ' Write schema header.
             ' -----------------------------------------------
             Print #Handle, "[" & sSectionName & "]"
             Print #Handle, "ColNameHeader = " & _
                             IIf(bIncFldNames, "True", "False")
             Print #Handle, "CharacterSet = ANSI"
             Print #Handle, "Format = TabDelimited"
             ' -----------------------------------------------
             ' Get data concerning schema file.
             ' -----------------------------------------------
             Set tblDef = db.TableDefs(sTblQryName)
             With tblDef
                For i = 0 To .Fields.Count - 1
                   Set fldDef = .Fields(i)
                   With fldDef
                      fldName = .Name
                      Select Case .Type
                         Case dbBoolean
                            fldDataInfo = "Bit"
                         Case dbByte
                            fldDataInfo = "Byte"
                         Case dbInteger
                            fldDataInfo = "Short"
                         Case dbLong
                            fldDataInfo = "Integer"
                         Case dbCurrency
                            fldDataInfo = "Currency"
                         Case dbSingle
                            fldDataInfo = "Single"
                         Case dbDouble
                            fldDataInfo = "Double"
                         Case dbDate
                            fldDataInfo = "Date"
                         Case dbText
                            fldDataInfo = "Char Width " & Format$(.Size)
                         Case dbLongBinary
                            fldDataInfo = "OLE"
                         Case dbMemo
                            fldDataInfo = "LongChar"
                         Case dbGUID
                            fldDataInfo = "Char Width 16"
                      End Select
                      Print #Handle, "Col" & Format$(i + 1) _
                                      & "=" & fldName & Space$(1) _
                                      & fldDataInfo
                   End With
                Next i
             End With
             MsgBox sPath & "SCHEMA.INI has been created."
             CreateSchemaFile = True
          CreateSchemaFile_End:
             Close Handle
             Exit Function
          CreateSchemaFile_Err:
             Msg = "Error #: " & Format$(Err.Number) & vbCrLf
             Msg = Msg & Err.Description
             MsgBox Msg
             Resume CreateSchemaFile_End
          End Function
    						
  4. Pour tester cette fonction, tapez la ligne suivante dans la fenêtre Débogage et appuyez sur ENTRÉE :
    ? CreateSchemaFile(True,"c:\MSOffice\Access\","EMP.TXT","Employees")
  5. Ouvrez le fichier Schema.ini que vous avez créé avec un éditeur de texte, tel que le bloc-notes ou WordPad. Notez que le fichier contienne les informations suivantes :
    [EMP.TXT]
    ColNameHeader = True
    CharacterSet = ANSI
    Format = TabDelimited
    Col1 = EmployeeID Integer
    Col2 = nom char width 20
    Col3 = prénom char width 10
    Col4 = titre Char Width 30
    Col5 = titre de courtoisie Char Width 25
    Col6 = date de la date de naissance
    Col7 = ///HireDate date
    Col8 = adresse Char Width 60
    Col9 = ville Char Width 15
    Col10 = région Char Width 15
    Col11 = code postal char width 10
    Col12 = pays Char Width 15
    Col13 = HomePhone Char Width 24
    Col14 = Extension Char Width 4
    Col15 = photo OLE
    Col16 = LongChar de notes
    Col17 = entier rend compte à

Références

Pour plus d'informations sur le fichier Schema.ini et les informations qu'il contient, recherchez l'initialisation des pilotes, puis lors de l'initialisation du pilote de source de données texte à l'aide de l'index de l'aide de Microsoft Access 97.

Pour plus d'informations sur le fichier Schema.ini et sa relation avec Microsoft Access et le moteur de base de données Microsoft Jet, reportez-vous à «Guide de Microsoft Jet du programmeur du moteur de base de données», pages 312 306.

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 95 Standard
  • Microsoft Access 97 Standard
Mots-clés : 
kbmt kbhowto kbprogramming KB155512 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 155512  (http://support.microsoft.com/kb/155512/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Retired KB ArticleExclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.