Changer Format d'un champ en VBA

entoanhuu Messages postés 7 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 12 juin 2009 - 26 sept. 2008 à 14:27
entoanhuu Messages postés 7 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 12 juin 2009 - 30 sept. 2008 à 10:52
Bonjour.
Je voudrais pouvoir, à partir du code VBA, changer le format du champ d'une table.

J'ai un programme qui:
1/ ouvre un recordset sur une Requête
2/ Créé une NouvelleTable à partir du recordset de la Requête

Dans l'étape 2/, je boucle sur les champs du recordset de la Requête pour copier les propriétés fld.name, fld.type et fld.size dans ma NouvelleTable. Malheureusement, je ne vois pas comment copier la propriété "format", qui a ma connaissance n'existe pas --> les champs de ma NouvelleTable n'ont pas le même format que ceux de la Requête!

Question: Comment faire pour initialiser le format des champs de ma NouvelleTable comme celui des champs de la Requête?
OU
Comment, après la création de la NouvelleTable, changer la propriété format d'un champ en VBA?

Merci de votre aide.
Pour info, voici le code utilié pour créer une table à partir d'un recordset:

'Creer une table à partir d'un recordset
Function CreateTable(rstTableAlim As DAO.Recordset, strNameTable As String) As Boolean
    Dim tdfTable As DAO.TableDef
    Dim rstTableNew As DAO.Recordset
    Dim fld As DAO.Field
    Dim newFld As DAO.Field
    Dim test As Boolean
        
    If ExisteObjet(strNameTable) = True Then CurrentDb.TableDefs.Delete strNameTable
    'Creation de la table et de tous ses champs
    Set tdfTable = CurrentDb.CreateTableDef(strNameTable)
    For Each fld In rstTableAlim.Fields
        Set newFld = tdfTable.CreateField(fld.Name, fld.TYPE, fld.Size)
        tdfTable.Fields.Append newFld
    Next
    CurrentDb.TableDefs.Append tdfTable
    RefreshDatabaseWindow
   
    'Remplissage de la table par le recordset
    If rstTableAlim.EOF Then
        test = False
        Exit Function
    End If
    Set rstTableNew = CurrentDb.OpenRecordset(strNameTable)
    rstTableAlim.MoveFirst
    While rstTableAlim.EOF = False
        rstTableNew.AddNew
        For Each fld In rstTableAlim.Fields            If Not IsNull(fld) And Not fld "" Then rstTableNew.Fields(fld.Name) fld
        Next
        rstTableNew.Update
        rstTableAlim.MoveNext
    Wend
   
    rstTableNew.Close
    Set rstTableNew = Nothing
    Set tdfTable = Nothing
    test = True
    CreateTable = test
End Function

1 réponse

entoanhuu Messages postés 7 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 12 juin 2009
30 sept. 2008 à 10:52
Bonjour. Personne pour me dire comment changer le format d'un champ d'une table avec VBA?

[i]super!!!!/i]
0
Rejoignez-nous