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 :

Manipuler les données Access depuis Excel [Tutoriel]


Sujet :

Macros et VBA Excel

  1. #1
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 018
    Par défaut Manipuler les données Access depuis Excel
    Bonjour.

    J'ai le plaisir de vous présenter ce tutoriel :


    Dans cet article vous allez apprendre à manipuler avec le VBA Excel les données des bases Access avec la technologie ADODB. Des exemples vous permettront de comprendre le fonctionnement de cette technologie ainsi que les fonctions présentées, qui couvrent une large gamme de besoins

    Vous pouvez apporter vos avis dans cette discussion.

    Bonne lecture.

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Merci beaucoup pour ces fonctions grandement utiles pour qui veux piloter une bdd depuis Excel.

    J'essayais depuis quelques temps de faire fonctionner un fichier Xl avec une base "mbd", c'est chose faite, grâce à toi!

    Merci beaucoup!

    A bientôt.

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 60
    Par défaut Enr_Info : Rechercher une valeur si elle existe
    Bonjour,

    Tout d'abord un grand merci pour ce tuto !!!! Une aide bien précieuse pour moi qui n'est pas un novice, mais non plus un expert de VBA.

    Je souhaite faire une vérification dans un champ si une référence existe :
    Dans le champ OF, j'ai 400 lignes avec des références uniques.

    J'ai placé dans Option Explicit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public OF_NUMBER As Long
    Public ID_USI60 As Long

    Puis

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub VERIF_OF_USI60()
     
    'On réinitialise Result_Enr_Info
    Result_Enr_Info = 0
     
    ' Ouvre une connexion:
    If ADO.Cnn_Initialise(Cnn1, "I:\070_IND\03_Fabrication\09_Muret\500 - ARCHIVES\BDD_LIEBHERR1_V1.5.accdb") = True Then
     
     
        ' Initialisation du traitement ADO avec transaction:
            ADO.Cnn_Debut AvecTransaction
     
     
        If Not ADO.Enr_Info(Cnn1, "REF_USI60_V1", "OF='" & NumOF & "'", valeur, "ID") = 0 Then
            ID_USI60 = ADO.Enr_Info(Cnn1, "REF_USI60_V1", "OF='" & NumOF & "'", valeur, "ID")
        Else
        MsgBox "Aucune donnée trouvée."
        End If
     
     
     
    'J'AI TESTE AUSSI CECI...    
        'ID_USI60 = ADO.Enr_Info(Cnn1, "REF_USI60_V1", "OF='" & NumOF & "'", valeur, "ID")
        'If ID_USI60 = 0 Then
            'MsgBox "La valeur du champ est : " & ID_USI60
            'MsgBox ("Dans Verif_USI60, la valeur de ID_USI60 :  " & ID_USI60)
        'Else
        '   MsgBox "Aucune donnée trouvée."
        '    MsgBox ("Dans Verif_USI60, la valeur de ID_USI60 :  " & ID_USI60)
        'End If
     
     
    'On ferme la transaction
    'ADO.Cnn_Fin SansMessage
    ADO.Cnn_Fin AvecMessage
     
    End If
     
    End Sub

    Malgré des test dans tous les sens... J'ai toujours cette erreur si, et uniquement si, l'OF n'existe pas dans mon champ OF :
    Pièce jointe 665131

    En fait, je n'arrive pas à trouver une solution pour que Enr_Info, si il ne trouve pas de valeur, cela ne déclenche pas d'erreur.

    Sinon crée une requete sous ACCESS, puis en VBA y faire appel pour voir si l'OF existe et si oui je récupére son ID.... Mais là aussi, ça dépasse mes compétences...

    Merci à tous pour vos retours.

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 085
    Par défaut
    Salut

    Vu qu'il ne s'agit que de lire le contenu de la table, il serait peut-être plus judicieux d'utiliser PowerQuery.
    Il y a un connecteur pour les bases access (Menu "Données", "Obtenir des données", "A partir d'une base de données", "A partir d'une base de données Microsoft Access".
    Je n'ai pas utilisé ce connecteur mais j'imagine que comme les autres, tu vas ensuite être invité à choisir la table où se trouve les données, puis il faudra travailler ton jeu de donnée pour ne garder que ce qui t'intéresse.

    Une fois les données filtrées, ça va te créer un tableau sur une feuille du classeur. Tu pourras en VBA rafraichir cette table (un coup d'enregistreur pour avoir le code de base), puis récupérer le contenu du tableau pour alimenter ta logique.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 135
    Billets dans le blog
    53
    Par défaut
    Bonjour Quaz,
    Je n'ai pas utilisé ce connecteur mais j'imagine que comme les autres, tu vas ensuite être invité à choisir la table où se trouve les données, puis il faudra travailler ton jeu de donnée pour ne garder que ce qui t'intéresse.
    Non seulement avec Power Query tu peux connecter une table mais également une requête. C'est tellement plus simple que de passer par du VBA
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 60
    Par défaut
    Merci Qwazerty et Philippe,

    Arff, j'ai enfin trouvé...

    Je lui dis de chercher dans mon champ NUMBER_OF alors que le champ s'appelle OF_NUMBER...


    Merci pour vos messages

  7. #7
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 085
    Par défaut
    Salut

    @Philippe T. : ah ben c'est top en effet, je te remercie pour ce complément d'info

    J'imagine que tu ne peux pas partager ton fichier?

    Pour ce qui est de Power Query, il est intégré dans Excel et "assez" facile à prendre en main pour des opérations basiques. Et puis la communauté est là pour filer un coup de main si besoin (il y a même un forum dédié).

    Coté utilisateur, c'est transparent (peut-être un paramétrage à faire sur les postes).
    @Philippe T. : Je dis ça à cause de la gestion de confidentialité, tu pourras peut-être dire si ça pose problème pour ce type de source.

    Coté utilisation, comme je te disais dans mon message précédent, tu délègues juste à PQ le rapatriement des données et leur filtration. Dans ton code VBA tu fais la mise à jour du tableau obtenu, ça déclenche automatiquement le rapatriement et la filtration, et quand le code VBA reprend la main tu exécutes ce que tu as besoin de faire à partir des données que tu vas prendre dans le tableau à jour... Vraiment ça vaut le coup de te pencher dessus.
    Tu peux même intégrer cette mise à jour à un code existant, exécuté par un bouton ou autre...


    [Edit]
    Sinon pour ton problème de BOF-EOF, il faudrait peut-être contrôler le nombre d'enregistrement avant de passer à l'analyse du contenu.

    Autre chose, il serait bien d'ouvrir un nouveau message plutôt que de "polluer" celui de Laurent vu que le problème ne vient pas du tuto en lui-même. Tu peux faire référence à cette discussion dans ton nouveau message pour que les gens fassent le lien
    [/Edit]

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  8. #8
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 018
    Par défaut
    Citation Envoyé par vba_lieb Voir le message
    je n'arrive pas à trouver une solution pour que Enr_Info, si il ne trouve pas de valeur, cela ne déclenche pas d'erreur.
    Bonjour,
    Vous pouvez dans un premier temps compter le nombre d'enregistrements qui correspondent à votre requête, avec l'argument "Compte" de la fonction Enr_Info.
    Il sera renvoyé 0 si rien n'est trouvé, et cela ne déclenchera pas d'erreur.
    Exemple pour savoir si l'utilisateur "OTT_L" est habilité (dans la table User de la base 1):

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If ADO.Enr_Info(Cnn1, "User", "[User] = 'OTT_L' ", Compte, "User") = 0 Then
            MsgBox "Pas habilité"
        Else
            MsgBox "habilité"
    End If
    Autre technique : mettre "On Error Resume Next" avant la fonction Enr_Info, puis restaurer avec "Err.Clear" et "On Error GoTo 0".

    Bonne programmation.

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 135
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Par contre connais pas Power Query....
    En fait j'ai réellement besoin d'utiliser VBA car j'ai associé à Excel des boutons pour l'exécution de script afin d'automatiser de nombreuses taches dont les personnes utilisant la solution ont des difficultés avec l'informatique.
    Mais j'utilise également le VBA pour juste faire un refresh (une ligne de code)

    @Quaz
    @Philippe T. : Je dis ça à cause de la gestion de confidentialité, tu pourras peut-être dire si ça pose problème pour ce type de source.
    Pour ignorer le niveau de confidentialité par VBA ThisWorkbook.Queries.FastCombine = True. Ligne à placer avant le Refresh
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  10. #10
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 60
    Par défaut
    Bonjour,

    Mince j'ai édité mon message puis je viens de voir vos réponses...

    En fait j'avais fait une inversion dans le nom du champ (voir mon message que j'ai édité...)

    Bon en tout cas vous tiens au courant de mes progressions. Au moins j'aurai buché le fonctionnement

  11. #11
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 085
    Par défaut
    Ohoh, je testerais ça rapidement, si ça peut éviter une manip de paramétrage à mes utilisateurs... Encore merci

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  12. #12
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 135
    Billets dans le blog
    53
    Par défaut
    Bonjour Quaz,
    Ohoh, je testerais ça rapidement, si ça peut éviter une manip de paramétrage à mes utilisateurs... Encore merci
    C'est effectivement efficace.
    C'est grâce à J.P. (jurassic pork) que je connais cette instruction. Dans cette discussion Problème de requête sur des ordinateurs autres que celui sur lequel j'ai créé celle-ci
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  13. #13
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 60
    Par défaut
    Merci tous,

    je teste et vous tiens au courant.

    Par contre là aussi, j'ai une erreur si pas de data trouvée....
    Je l'utilise pour regarder par rapport à un ID (le champ s'appelle ID_OF qui est la clé primaire) la foncion Enr_Info afin de voir si il y a une date écrite. Et si oui, je l'envoi dans mon TextBox de mon Userform (J'utilise les UserForm de Excel)

    Si il trouve aucune date, alors malgré avoir cherché... J'ai toujours un message d'erreur à la fin.

    Nom : Capture01.png
Affichages : 380
Taille : 6,8 Ko

    Je suis pas novice en VBA Script, mais pas un cador aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'On place la date de début des opérations si existant sinon, sinon place le symble "-"
    If ADO.Enr_Info(Cnn1, "TABLE_TACHES_OF", "ID=" & ID_OF, valeur, "DATE_DEBUT") = "" Then
        TextBox15 = "-"
        Else
        TextBox15 = ADO.Enr_Info(Cnn1, "TABLE_TACHES_OF", "ID=" & ID_OF, valeur, "DATE_DEBUT")
    End If
    Nom : Capture02.png
Affichages : 380
Taille : 33,8 Ko

    Je teste dans tous les cas avec "On Error Resume Next" avant la fonction Enr_Info, puis restaurer avec "Err.Clear" et "On Error GoTo 0"

    et je vous tiens tous au courant.

    Pour info, j'ai trouvé mon souci sur mon précédent message... Honte à moi, je cherchais dans la table GENERAL_OF alors qu'elle s'appelle OF_GENERAL

    Merci pour votre aide

  14. #14
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 135
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    je teste et vous tiens au courant.
    Par contre là aussi, j'ai une erreur si pas de data trouvée....
    Pourquoi faire simple quand on peut faire compliqué

    Avez-vous essayé la solution avec Power Query ?
    Vous créez votre requête dans Access et vous connectez ensuite cette requête depuis Power Query
    Cela ne vous prendra pas plus de 5 minutes pour créer cette requête et encore quelques minutes pour intégrer le code VBA pour effectuer l'actualisation de la requête
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  15. #15
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 552
    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 552
    Par défaut
    Bonjour à tous

    A noter qu'avec PowerQuery on peut même mettre en source de requête du SQL donc c'est simple et ouvert...
    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 :plusser: c'est toujours apprécié...

  16. #16
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 60
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,

    Pourquoi faire simple quand on peut faire compliqué

    Avez-vous essayé la solution avec Power Query ?
    Vous créez votre requête dans Access et vous connectez ensuite cette requête depuis Power Query
    Cela ne vous prendra pas plus de 5 minutes pour créer cette requête et encore quelques minutes pour intégrer le code VBA pour effectuer l'actualisation de la requête
    Bonjour,,
    Bon j'ai trouvé mon erreur, ... Au lieu de ID= c'etait plutot ID_OF qui est le nom du champ correct...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ADO.Enr_Info(Cnn1, "TABLE_TACHES_OF", "ID_OF=" & ID_OF, valeur, "DATE_DEBUT") = "" Then
    Sinon, pour Power Query, je connais pas un exemple ?

  17. #17
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 135
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sinon, pour Power Query, je connais pas un exemple ?
    Power Query, intégré à Excel depuis la version 2016

    Onglet [Données], cliquer sur la commande Obtenir les données et choisir dans la liste déroulante A partir d'une base de données et ensuite A partir d'une base de données Microsoft Access
    Sélectionner le fichier Access et puis dans la boîte de dialogue Navigation, choisir la table ou la requête à importer et si l'on ne doit pas transformer les données, on peut tout de suite sélectionner la commande Charger

    Illustration
    Nom : 250310 Power Query Requete Access.png
Affichages : 63
Taille : 238,9 Ko
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  18. #18
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 60
    Par défaut
    Merci tous pour vos réponses.

    Par contre je n'arrive pas à utiliser Enr_MAJ pour utiliser la fonction CréationUniquement

    En fait je voudrais rajouter à ma table OF_GENERAL un enregistrement en indiquant le numero de mon OF dans le champ NUMBER_OF et le nombre de pieces dans le champ QTS_LIVREE

    Merci pour votre retour.

  19. #19
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 60
    Par défaut Utilisation de Enr_Info avec 2 conditions
    Bonjour,

    Voici ma requete :

    Nom : capture01_recherche.png
Affichages : 47
Taille : 41,2 Ko

    J'ai crée une boucle pour rechercher une valeur

    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
    For Boucle_Tache = 1 To NB_LIGNE_REQUETE
        MsgBox ("Verif ligne : " & Boucle_Tache)
     
        If Enr_Info(Cnn:=Cnn1, StrTableSource:="Requete_TACHES", _
                SQLWhere:=("ID_TACHES=" & Boucle_Tache), _
                TypeInfoEnr:=Valeur, StrNomChamp:="REF_TACHE") = 751 Then
     
            choix = MsgBox("Une expédition a déja été effectué pour cet OF !" & Chr(10) & Chr(10) & "Voulez-vous ajouter une nouvelle expédition ?", 36, "Confirmation")
                'On ne veut pas rajouter d'expédition, donc je quitte
                If choix = vbNo Then
                    GoTo FIN_PROCEDURE
                End If
     
                If choix = vbYes Then
                    MsgBox "Vous avez cliqué sur Oui !", 64
                End If
        End If
    Next Boucle_Tache


    Par contre comment faire pour lui dire de rechercher une tache 751 dans chacune des lignes dont ID_OF serait 2 (pour info mon 2 est dans une variable qui s'appelle ID_OF)


    En fait dans SQLWhere:=("ID_TACHES=" & Boucle_Tache), comment rajouter "ID_OF=" & ID_OF
    J'ai essaye avec And et ça marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLWhere:=("ID_TACHES=" & Boucle_Tache And "ID_OF=" & ID_OF)

    J'ai aussi tente avec ceci mais toujours en erreur :

    Nom : capture02_recherche.png
Affichages : 45
Taille : 7,1 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        If Enr_Info(Cnn:=Cnn1, StrTableSource:="Requete_TACHES", _
                SQLWhere:=("ID_TACHES=" & Boucle_Tache) & ("ID_OF=" & ID_OF), _
                TypeInfoEnr:=Valeur, StrNomChamp:="REF_TACHE") = 751 Then
    Mettre 2 conditions dans SQLWhere:= je cherche depuis 2 jours en vain.

    Un petit tuto pour divers scénarios avec un ou plusieurs conditions sur ce travail déja remarquable serait cool

    Merci pour votre aide !!!

  20. #20
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 135
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi ne pas poser la question directement sur le forum Access ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [Toutes versions] Interroger access depuis Excel - Ne fonctionne pas sur tous les postes
    Par debdev dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/02/2012, 14h55
  2. manipuler les objets graphique d'excel sur access
    Par technopole dans le forum Access
    Réponses: 4
    Dernier message: 21/07/2006, 10h37
  3. Renseigner un formulaire Access depuis Excel
    Par vciofolo dans le forum Access
    Réponses: 6
    Dernier message: 30/09/2005, 11h12

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