[access-VBA] Créer un modele de champs import
Résolu/Fermé
artamys
Messages postés
120
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
9 mars 2018
-
11 sept. 2008 à 14:01
artamys Messages postés 120 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 9 mars 2018 - 12 sept. 2008 à 11:31
artamys Messages postés 120 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 9 mars 2018 - 12 sept. 2008 à 11:31
A voir également:
- [access-VBA] Créer un modele de champs import
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer un groupe whatsapp - Guide
- Créer un compte instagram sur google - Guide
- Comment creer un pdf - Guide
4 réponses
artamys
Messages postés
120
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
9 mars 2018
7
12 sept. 2008 à 11:05
12 sept. 2008 à 11:05
bon encore un probleme, tout marche, je crée en automatique le fichier schema.ini
il a tout de bon sauf le format qui est delimite et qui faut mettre en longueur fixe, il faut donc que je puisse ouvrir en VBA le .ini et changer le format ?
Quelqu'un a une iidée ?
Après c'est JACKPOT !!!!!
il a tout de bon sauf le format qui est delimite et qui faut mettre en longueur fixe, il faut donc que je puisse ouvrir en VBA le .ini et changer le format ?
Quelqu'un a une iidée ?
Après c'est JACKPOT !!!!!
artamys
Messages postés
120
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
9 mars 2018
7
12 sept. 2008 à 11:31
12 sept. 2008 à 11:31
Trouvé
artamys
Messages postés
120
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
9 mars 2018
7
11 sept. 2008 à 16:16
11 sept. 2008 à 16:16
bonjour,
A priori existe une fonction developpé sur le site microsoft, qui donne le moyen de créer un schema.ini qui permettrai de connaitre les caractériqtiques necessaire pour importer un fichier sur mesure a partir des caractéristiques d'une table.
ça tombe bien, je créé autmatiquement les tables hotes avec les caractéristiques adaptées.
donc si j'arrive a faire marcher cette fonction, je crée un schéma ini et je peux charger mon fichier ?
allez travaillons encore et encore...
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
A priori existe une fonction developpé sur le site microsoft, qui donne le moyen de créer un schema.ini qui permettrai de connaitre les caractériqtiques necessaire pour importer un fichier sur mesure a partir des caractéristiques d'une table.
ça tombe bien, je créé autmatiquement les tables hotes avec les caractéristiques adaptées.
donc si j'arrive a faire marcher cette fonction, je crée un schéma ini et je peux charger mon fichier ?
allez travaillons encore et encore...
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
artamys
Messages postés
120
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
9 mars 2018
7
11 sept. 2008 à 17:29
11 sept. 2008 à 17:29
ok, la fonction marchesi on fait z=fonction mais maintenant je n'ai plus qu'une petite question, comment on utilise le fichier schema.ini dans une procédure d'import.
merci.
merci.