Copier des champs d'une table Access

[Résolu/Fermé]
Signaler
-
Messages postés
82
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 avril 2011
-
Bonjour,

C'est la première fois que j'utilise Access et que je consulte du code VBA.

Mon problème est bien simple. Je dois effectué des traitements (validation et conversion) sur des données importées d'un fichier CSV. J'ai importé les données dans une table temporaire. Pour me familiarisé avec le code VBA et Access 2007, j'ai tenté de simplement copier un entré dans ma table temporaire vers ma table réelle. Après avoir consulté plusieurs bout de code sur internet et essayé plusieurs fonctions, c'est toujours sans succès avec des messages d'erreurs tous différents à chaque fois.

J'aimerais solliciter votre aide pour me donner un simple coup de main :)

P.S.: Après ma validation et conversion de données, je n'est plus besoin de garder mes données brutes. C'est la raison pour laquelle j'ai choisi une table temporaire. Peut-être cette approche est déficiente. À vous de me conseiller dans ce cas.

4 réponses

Messages postés
1506
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
18 juin 2012
586
bonjour
Oui et la question ?
Messages postés
82
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 avril 2011
76
Je souhaite simplement savoir comment procéder. Un exemple de code VBA, un site ou n'importe quoi qui pourrait m'aider. Déjà savoir comment accéder à un entré dans une table, il me serait facile par la suite d'explorer par moi-même.

Merci :)
Messages postés
82
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 avril 2011
76
Pour vous donner plus de détail. J'ai une form vide, avec un simple bouton "Traitement". Sur le OnClick du bouton je voudrais être capable de copier le champ Date de ma table temporaire vers le champ Date de ma table réel.

Après avoir compris cela, je devrais être capable de modifier mon code pour effectuer les conversion qui me sont nécessaire.

Merci
Messages postés
82
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 avril 2011
76
Pour ceux qui désire la réponse, voici celles que j'ai trouvées. La différence entre les 2 solutions est que la deuxième ( Command1_Click() ) est fait à partir de requête SQL, il est donc beaucoup plus facile et simple d'ajouter le nombre de champs désirés.

Private Sub Command_Click()
   
    maVarString = DLookup("Date", "Log96 - tronc")
    
    MsgBox maVarString
    
End Sub

Private Sub Command1_Click()
    
    Dim sql As String
    Dim rst As DAO.Recordset
    Dim varDate As String

    sql = "SELECT DISTINCT [Date] FROM [Log96 - tronc]"
    Set rst = CurrentDb.OpenRecordset(sql)
    With rst
        'traverse toute les records
        Do While Not .EOF

        'traitement a faire sur ton rst
        varDate = rst("[Date]")
        MsgBox "La date est " & varDate

        Loop  'while not .eof
        .Close   'rst
    End With

End Sub


Les 2 solutions affichent le résultat dans une boite de message, mais par la suite il est simple de faire un Insert :

CurrentDB().Execute "INSERT INTO table (champ1, champ2) VALUES (" & variable1 & "," & variable2 & ")"


P.S.: log96 - tronc est ma table temporaire.