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

Macros et VBA Excel Discussion :

Eviter de lancer le formulaire principal access lors d'une recherche sur une table access


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut Eviter de lancer le formulaire principal access lors d'une recherche sur une table access
    Bonjour,
    J'ai mis en place une liaison entre excel et ma base access.
    Pour ouvrir certaine table j'utilise le début de code suivant:
    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
     
        Dim accObj As Object
        'Dim db As DAO.Database
        Dim rst As DAO.Recordset
        Dim sql, ruptureBL, ruptureMark As String
     
        ' Ouvrir la base de données
     
        strChemin = ActiveWorkbook.Path & "\Outil RecoCOMEX.accdb"
     
        Set accObj = CreateObject("Access.Application")
     
        accObj.OpenCurrentDatabase (strChemin)
     
        Set db = accObj.CurrentDb
        Set rst = db.OpenRecordset("TR_reporting date", dbOpenDynaset)......
    Le problème que j'ai, c'est qu'à chaque fois que j'ouvre la base access, il lance le formulaire access (F_Home) de démarrage.
    Je voudrais éviter qu'il se lance.
    Comment dois je faire? merci par avance pour votre aide.

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 416
    Points : 16 259
    Points
    16 259
    Par défaut
    Bonjour

    Pourquoi encore utiliser cette méthode alors que PowerQuery qui existe depuis 2010 peut accèder à Access de façon simple ?
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour le fil

    @78chris, je ne suis pas d'accord avec toi pour une fois.
    on peut vouloir utiliser cette méthode pour un tas de bonnes raisons, une en particulier est que l'on possède une base Access, mais on veut utiliser les USF Excel
    Pourquoi vouloir systématiquement utiliser à tout prix PQ...

    @marcelisa2, ce n'est pas comme cela que l'on fait des connexions DAO, voir un exemple ICI

    A+

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 416
    Points : 16 259
    Points
    16 259
    Par défaut
    Bonjour Bruno
    Citation Envoyé par BrunoM45 Voir le message
    Bonjour le fil

    @78chris, je ne suis pas d'accord avec toi pour une fois.
    on peut vouloir utiliser cette méthode pour un tas de bonnes raisons, une en particulier est que l'on possède une base Access, mais on veut utiliser les USF Excel
    Je me suis laissée emporté cas dans la grande majorité des cas, les demandeurs veulent juste récupérer des données.

    Il est cependant dommage de ne pas profiter des possibilités d'Access en Formulaires de saisie bien plus aboutis qu'Excel pour gérer les données d'une base (bien construite ) où, à part les contrôles de cohérences de données, on n'a quasi rien à coder...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Merci beaucoup à 78chris et BrunoM45 pour le retour.
    Je vais regarder la solution proposée par BrunoM45 et vous tiens au courant
    Bonne journée

  6. #6
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 420
    Points : 2 179
    Points
    2 179
    Par défaut
    Bonjour,
    Ça n'engage que moi, mais utiliser Dao dans Excel me paraît une abomination !

    Si l'idée est d'importer des données dans Excel il y a, comme le préconise Chris, Power query !

    Si ta version est avant 2010 tu as Query Deff.

    Si tu veux mettre à jour un base Access utilises ADO et pas DAO!

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Rebonjour,
    je me retrouve avec une erreur 3343 lorsque je suis sur l'instruction Set daoDB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ....
    strDBName = "Outil_Reco.accdb"
    'get path / location of the database, presumed to be in the same location as the host workbook:
    strMyPath = ActiveWorkbook.Path
    'set the string variable to the Database:
    strDB = strMyPath & "\" & strDBName
     
    'If you open a database object without specifying a workspace, it will exist within the default workspace. First assign the database reference to an object variable:
    Set daoDB = DBEngine.OpenDatabase(strDB)....
    Y a t-il une référence manquante?

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    je précise que j'ai déjà comme référence
    Nom : Capture.JPG
Affichages : 177
Taille : 46,0 Ko
    Merci pour votre aide

  9. #9
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 420
    Points : 2 179
    Points
    2 179
    Par défaut
    J'ai donné mon appréciation sur le fait d'utiliser Dao dans Excel !

    Préjugés non; expérience oui!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
    With CreateObject("Adodb.Connection") 'Access
        .Open "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\Myrep\DBTest.accdb;"
    '    .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Myrep\DBTest.accdb;"
             rang("A1").CopyFromRecordset .Execute("Select * From My Table")
        .Close
    End With
    Tu peux trouver ici une réponse d'un expert qui reste toujours d'actualité 😜
    https://www.developpez.net/forums/d7...n/#post4607890
    je ne cherche pas de réponse déjà vue ce poste!

    Du reste je n'y ai pas trouvé d'experts! en revanche il me semble évident d'utilise DAO sous Access et je ne vois pas pourquoi il en serait différent sur le Forum ACCESS!

    sur le forum VB.NET il n'aurait pas été question De DAO!

    Pour conclure,si le demandeur souhaite importer des données Access vers Excel je réédites ce que j'ai dit plus haut le mieux c'est power query !

    Utiliser DAO c'est une aberration dans Excel !

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Bonjour à tous,
    j'essaye d'ouvrir une table en mode ADO pour essayer mais je bute sur l'ouverture de la table. Voici le 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
    16
    17
    18
    19
     
    Dim Cnn1 As ADODB.Connection
    strChemin = ActiveWorkbook.Path & "\Outil_Reco.accdb"
     
     Set Cnn1 = New ADODB.Connection
        With Cnn1
        .Provider = "Microsoft.ACE.OLEDB.16.0;"
        .ConnectionTimeout = 30
        .Mode = adModeShareExclusive
        .Open "Data Source=" & strChemin & ";"
        End With
     
     Set Rst = New ADODB.Recordset
     Rst.Open "TR_reporting date", cnnl  ' => j'ai un code erreur 3001
     ....
        reportingdate = Rst.Fields(0)
        period_month = Rst.Fields(6)
        Year = Rst.Fields(7)
        Year1 = Rst.Fields(8) ....
    Merci pour votre aide

  11. #11
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 420
    Points : 2 179
    Points
    2 179
    Par défaut
    Bonjour,
    Jamais d'espace dans le nom d'une table, d'un champ!
    Si non il faut [encadrer] par des [crochet]
    Rst.Open "[TR_reporting date]", cnnl

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Bonjour,
    même en mettant des crochets pour encadrer mon nom de table, j'ai toujours l'erreur 3001.
    une solution à mon problème?

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    rebonjour,
    j'avais fait une erreur sur la commande cnn1. Cela fonctionne correctement.
    Je vais vérifier l'ensemble de mon programme avant de clore cette discussion.

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Merci à tous.
    Cela répond complètement à mon besoin. je clôture cette discussion.

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/12/2016, 15h16
  2. [2.x] Formulaire qui change lors d'une action précise
    Par Vrugar dans le forum Symfony
    Réponses: 0
    Dernier message: 26/11/2012, 14h32
  3. Réponses: 2
    Dernier message: 20/10/2007, 02h24
  4. Réponses: 2
    Dernier message: 18/05/2006, 15h28
  5. Réponses: 3
    Dernier message: 23/04/2006, 12h14

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