IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

VBA Access Discussion :

TransferDataBase méthode de "Docmd" et non d'un objet Database ? [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut TransferDataBase méthode de "Docmd" et non d'un objet Database ?
    Bonjour à tous!

    Je me heurte à un problème concernant le modèle Access.

    J'ai 3 bases:

    . Base contenant les données dorsale "A"
    . Base depuis laquelle je travaille "B"
    . Base frontale "C" sur laquelle les données de "A" sont attachées

    Dans le cadre d'une exportation un peu biscornue (je reprends cette application) une copie de "C" est effectuée en "D".
    Je souhaite avoir en "D" des données non-attachées de "A", pour cela j'ouvre un WorkSpace sur "D" et fais un "DROP TABLE" - jusqu'ici pas de problème.

    C'est lorsque je veux, dans ce WorkSpace, effectuer un TransferDatabase de "A" vers "D" que j'ai le message "Membre de méthode ou de données introuvable" à la compilation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    dbCeram.TransferDatabase acImport, "Microsoft Access", Nameddb_Data, acTable, !LaTable, !LaTable
    Je précise: ce code se trouve dans la base "B".

    Je galère un peu avec la doc, si vous avez des lumières sur le sujet...

    Merci d'avance
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    On peut voir la déclaration de dbCeram ?

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut TransferDataBase méthode de "Docmd" et non d'un objet Database ?
    Bonjour loufab,

    Bien sûr!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            'Creation espace de travail
            Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
     
            'Ouverture Base de Donnée
            Set dbCeram = wrkJet.OpenDatabase(Namedb_Ceram)
    où "Namedb_Ceram" est une variable initialisée plus haut dans le code.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  4. #4
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut TransferDataBase méthode de "Docmd" et non d'un objet Database ?
    Le problème se trouve dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dbCeram.TransferDatabase
    d'après ce que j'ai compris car TransferDatabase ne serait pas une une méthode d'un objet Database ?
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  5. #5
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut TransferDataBase méthode de "Docmd" et non d'un objet Database ?
    J'ai essayé avec:

    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
            'Import/Export des tables fouilles dans la base courante vers la base destination
            Namedb_Data = DLookup("Chemin", "Chemins", "Fonction='Données'") & "\" & Replace(Base, ".accdb", "_Data.accdb")
            With rstA
                Do While .EOF = 0
                    MoveTable = !LaTable
                    'import
                    Forms!PgBar!Ptxt = "Importation données céramique..." & " (" & MoveTable & ")"
                    Forms!PgBar!Pct = Int(rstA.PercentPosition) / 100
                    DoCmd.TransferDatabase acImport, "Microsoft Access", Namedb_Data, acTable, MoveTable, "TMP_" & MoveTable
                    DoEvents
                    'export
                    Forms!PgBar!Ptxt = "Exportation données céramique..." & " (" & MoveTable & ")"
                    Forms!PgBar!Pct = Int(rstA.PercentPosition) / 100
                    DoCmd.TransferDatabase acExport, "Microsoft Access", Namedb_Ceram, acTable, "TMP_" & MoveTable, MoveTable
                    DoEvents
                    SupprimerTable ("TMP_" & MoveTable)
     
                    .MoveNext
                Loop
                .Close
            End With
    Mais Access plante malgré une gestion d'erreurs et parvient même à bousiller le module !

    Ce code fonctionne si je l'exécute pas à pas pourtant !!!
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    La méthode docmd est une méthode Application et non Database.

    Il te faut utiliser plutôt cet algo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
         Set appaccess = CreateObject("Access.Application")
         appaccess.Visible = False
         appaccess.OpenCurrentDatabase "madorsale.accdb", False
         appaccess.DoCmd...
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Si ce n'est que pour transférer une table tu peut utiliser un SELECT INTO.

    https://docs.microsoft.com/fr-fr/off...oft-access-sql

    Et là ton objet Database prend tout son sens.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut TransferDataBase méthode de "Docmd" et non d'un objet Database ?
    Merci loufab !

    Je teste et te fais un retour...
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  9. #9
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut TransferDataBase méthode de "Docmd" et non d'un objet Database ?
    Çà marche nickel !!!

    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une méthode @WS REST avec un PUT non fonctionnel
    Par geforce dans le forum REST
    Réponses: 0
    Dernier message: 27/10/2014, 15h08
  2. [AC-2010] DoCmd.TransferText spécification non existante
    Par DonKnacki dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/09/2012, 11h38
  3. Réponses: 4
    Dernier message: 18/01/2010, 12h38
  4. [Affectation] Méthode des Hongrois avec une matrice non carrée
    Par bmw13fr dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 12/09/2007, 14h38
  5. Réponses: 2
    Dernier message: 05/01/2006, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo