Liaison ACCESS -EXCEL [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
13 juillet 2007
-
Messages postés
2
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
13 juillet 2007
-
Salut!
Est-il possible de m'aider à trouver les fonctions ou les commandes en VBA qui permet d'importer des données qui existe sur une feuille EXCEL  dans une table ACCESS .
 Merci d'avance pour toute personne qui veut m'aider

3 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Fais une recherche sur
Excel.Application
ou
Access.Application
selon le programme que tu utilises.

Si tu es sous Excel, tu crées une variable pour te brancher à Access et le contraire si tu es sous Access

Dim objAccess As New Access.Application
Et d'autres variables au besoin

À partir de là, tu auras accès aux fonctions, méthodes,... d'Access comme DoCmd

Pour interagir entre les 2 applications, des fonctions utiles sont:
CopyFromRecordset  'copie dans Excel le contenu d'un Recordset
TransferSpreadsheet  'copie dans une table Access une feuille ou Range Excel

à voir dans l'aide

MPi
Messages postés
9
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
12 janvier 2008

A partir d'excel tu peux te connecter à ta base access gràce à ce code:

    Dim dbI As ADODB.Connection

Private Function ConnectionBD()
    Dim chemin As String

    'Chemin de la base de données, contenu dans le même répertoire
    chemin = ActiveWorkbook.Path
    CheminBD = chemin & "" & [nom de ta base de données]
   
    'ouverture de l'accès à la base
    Set dbI = New ADODB.Connection
    dbI.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & CheminBD

End Function

Ensuite pour ajouter des nouvelles données dans ta base tu peux utiliser la commande "update" comme ce-ci:

    Dim rqt As ADODB.Recordset
    Dim col as string 'colonne active de la feuille excel
    Dim ligne as integer 'ligne active de la feuille excel

    Set rqt = New ADODB.Recordset
     rqt.Open "[nom d'une table]", dbI, adOpenDynamic, adLockOptimistic
     rqt![champ1] = range(col & ligne).value
     rqt![champ2] = range(col & ligne).value
     rqt.Update
     rqt.Close
Messages postés
2
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
13 juillet 2007

merci pour votre aide vraiment je l'en ai trouvé dans le bon temps
j'ai utilisée la fonction TransferSpreadSheet pour pouvoir importer les enregistrements de EXCEL vers une table dans ACCESS  en une seule instruction est voila mon code:
DoCmd.TransferSpreadsheet , acSpreadsheetTypeExcel7, "BULLETIN", "C:\Documents and Settings\stage\Mes documents\stage.xls", True
kaka