Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

exporter des objets d'une base vers une autre


Sujet :

Access

  1. #1
    Membre habitué
    exporter des objets d'une base vers une autre
    Bonjour,

    Je travaille sur une base en dév, et je veux pouvoir exporter chaque élément modifié en production grâce à un évènement sur click.

    Le nom des objets de l'application sont stockées dans une liste multiselect "Cmb_Selection_Objet", le nom de la base destinatrice est stockée dans "CheminDestination".

    J'ai parcouru le forum, me suis servi de l'aide mais voilà, l'application me renvoit à chaque fois une erreur concernant le type d'objet que j'exporte.

    Voici mon code :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Private Sub Btn_exportation_Click()
     
    Dim typeObjet As String
    Dim ObjSource, ObjDestination As Object
    Dim varItm As Variant
     
    For Each varItm In Cmb_Selection_Objet.ItemsSelected
    typeObjet = "ac" & Cmb_Selection_Objet.Column(1, varItm)
    Set ObjSource = CurrentData.AllTables(Cmb_Selection_Objet.Column(0, varItm))
    Set ObjDestination = CurrentData.AllTables(Cmb_Selection_Objet.Column(0, varItm))
     
       DoCmd.TransferDatabase acExport,"Microsoft Access" , CheminDestination, acDefault, ObjSource, ObjDestination
    Next varItm
    End Sub


    Quelqu'un peut m'indiquer l'erreur...que j'ai commise.

    J'ai également essayé avec copyobject et idem même punition...

    merci,

    RG

  2. #2
    Expert éminent sénior
    Qu'est ce que typeobjet ?

    acForm est une constante, tu ne peux pas la reproduire en faisant "ac"& "Form", non, il te faut sa valeur (un entier) disponible dans l'explorateur d'objet ou bien en faisant : msgbox acForm


  3. #3
    Membre habitué
    Excellente réponse.
    Merci pour tes lumières

    Si je comprends bien, chaque type d'objet est identifié par un numéro, à moi de ressortir le numéro en fonction de l'objet à exporter.

    J'essaye de le faire et mettrai la solution à disposition...



    A bientôt,RG

  4. #4
    Membre habitué
    solution trouvée ...
    Bonjour,

    Après avoir travailler en suivant le conseil de tofalu, voici comment j'ai procéder :

    un champ texte typeObjet récupère l'information sur le type d'objet lors de l'init de la table. Cette info me permet de selectionner l'action qui devra être faite. Merci encore à tofalu

    Bonne journée,

    A+

    RG

    PS : Je joins le code corrigé et je mets le flag Résolu

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub Btn_exportation_Click()
    Dim typeObjet As String
    Dim ObjSource, ObjDestination As Object
    Dim varItm As Variant
     
    For Each varItm In Cmb_Selection_Objet.ItemsSelected
    typeObjet = Cmb_Selection_Objet.Column(1, varItm)
     
    Set ObjSource = CurrentData.AllTables(Cmb_Selection_Objet.Column(0, varItm))
    Set ObjDestination = CurrentData.AllTables(Cmb_Selection_Objet.Column(0, varItm))
     
        If typeObjet = "Table" Then
       DoCmd.TransferDatabase acExport, "Microsoft Access", edtPath, acTable, Cmb_Selection_Objet.Column(0, varItm), Cmb_Selection_Objet.Column(0, varItm)
       MsgBox "Transfert :" & Cmb_Selection_Objet.Column(0, varItm) & "-*-  terminé-*-"
       ElseIf typeObjet = "Requête" Then
       DoCmd.TransferDatabase acExport, "Microsoft Access", edtPath, acQuery, ObjSource, ObjDestination
        MsgBox "Transfert :" & Cmb_Selection_Objet.Column(0, varItm) & "-*-  terminé-*-"
       ElseIf typeObjet = "Formulaire" Then
       DoCmd.TransferDatabase acExport, "Microsoft Access", edtPath, acForm, ObjSource, ObjDestination
        MsgBox "Transfert :" & Cmb_Selection_Objet.Column(0, varItm) & "-*-  terminé-*-"
       End If
     
    Next varItm
    End Sub

###raw>template_hook.ano_emploi###