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 :

Afficher dans un message(Msgbox) les valeurs d'une colonne d'une requete [AC-2010]


Sujet :

VBA Access

  1. #21
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    Alors essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub nb_piquets_manquants_1_Click()
        Set oSQL = CurrentDb.QueryDefs("Rqt_piquet_manquant")
        txt = ""
        With oSQL
            Do While Not .EOF
    	    txt = txt & Chr(10) & orSQL("deux")
                oSQL.MoveNext
            Loop
        End With
        oSQL.Close
        MsgBox txt
    End Sub
    @+.
    Bonjour,
    Ca declenche encore des erreurs
    J'ai modifié orSQL("deux") par oSQL("deux")
    et j'ai maintenant une erreur "erreur d'execution'438' Proprieté ou méthode non gérée par cet objet"
    La ligne surlignée est "Do While Not .EOF"
    Ma référence Microsoft DAO 3.6 est bien cochée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub nb_piquets_manquants_1_Click()
        Set oSQL = CurrentDb.QueryDefs("Rqt_piquet_manquant")
        txt = ""
        With oSQL
            Do While Not .EOF
            txt = txt & Chr(10) & oSQL("deux")
                oSQL.MoveNext
            Loop
        End With
        oSQL.Close
        MsgBox txt
    End Sub
    Merci de votre patience

    Bonne journée
    Seb

  2. #22
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Exécute le 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
    Private Sub nb_piquets_manquants_1_Click()
        Set oSQL = CurrentDb.QueryDefs("Rqt_piquet_manquant")
        txt = ""
        msgbox oSQL.RecordCount
        With oSQL
            Do While Not .EOF
            txt = txt & Chr(10) & oSQL("deux")
                oSQL.MoveNext
            Loop
        End With
        oSQL.Close
        MsgBox txt
    End Sub
    Et me dire la valeur qui apparait à l'écran !

  3. #23
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Il y a toujours la même erreur et c'est la ligne
    msgbox oSQL.RecordCount
    qui est surlignée en jaune.
    En mode débogage, quand je me mets au dessus de
    oSQL("deux")
    , un rectangle s'ouvre avec le message suivant oSQL("deux")=<Element non trouvé dans cette collection.>
    Pour info ma requête est prise sur une requête d'analyse croisée.
    Merci encore

    Seb

  4. #24
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,
    ça ne peut pas marcher, ta requète oSQL n'étant même pas ouverte.
    Remarque que tu la fermes malgré tout en fin de code.
    Une fois ta connection correctement ouverte, .RecordCount sera disponible et alimenté.

    Je pense qu'avant tout, tu dois te replancher sur les techniques de codage d'accès aux données.

    Dans la FAQ il y a assurément un exemple tout cuit qu'il suffira d'a peine adapter.

  5. #25
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Avec ce code cela doit fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SQL = "SELECT * FROM Rqt_piquet_manquant"
    Set oSQL = CurrentDb.OpenRecordset(SQL)
     
    txt = ""
     
    While Not oSQL.EOF
        txt = txt & Chr(10) & oSQL.Fields(0).Value
        oSQL.MoveNext
    Wend
    MsgBox txt

  6. #26
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Merci pour vos aides et le temps que vous passez a m'aider.
    J'ai une nouvelle erreur: "Erreur d'execution'3061', trop peu de parametres. 2 attendu. Et c'est la ligne Set oSQL = CurrentDb.OpenRecordset(SQL) qui est surlignée en jaune.
    Je suis vraiement désolé

  7. #27
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Peux-tu envoyer le code de ta requête ?

  8. #28
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    Peux-tu envoyer le code de ta requête ?
    Le code de la requete "Rqt_piquet_manquant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT IIf(IsNull([1]),[CodeG],[1]) AS un, IIf(IsNull([2]),[CodeG],[2]) AS deux, IIf(IsNull([3]),[CodeG],[3]) AS trois, IIf(IsNull([4]),[CodeG],[4]) AS quatre, IIf(IsNull([5]),[CodeG],[5]) AS cinq, IIf(IsNull([6]),[CodeG],[6]) AS six, IIf(IsNull([7]),[CodeG],[7]) AS sept, IIf(IsNull([8]),[CodeG],[8]) AS huit, IIf(IsNull([9]),[CodeG],[9]) AS neuf, IIf(IsNull([10]),[CodeG],[10]) AS dix, IIf(IsNull([11]),[CodeG],[11]) AS onze, IIf(IsNull([12]),[CodeG],[12]) AS douze, IIf(IsNull([13]),[CodeG],[13]) AS treize, IIf(IsNull([14]),[CodeG],[14]) AS quartoze, IIf(IsNull([15]),[CodeG],[15]) AS quinze, IIf(IsNull([16]),[CodeG],[16]) AS seize, IIf(IsNull([17]),[CodeG],[17]) AS dix_sept, IIf(IsNull([18]),[CodeG],[18]) AS dix_huit, IIf(IsNull([19]),[CodeG],[19]) AS dix_neuf, IIf(IsNull([20]),[CodeG],[20]) AS vingt, IIf(IsNull([21]),[CodeG],[21]) AS vingt_un, IIf(IsNull([22]),[CodeG],[22]) AS vingt_deux, IIf(IsNull([23]),[CodeG],[23]) AS vingt_trois, IIf(IsNull([24]),[CodeG],[24]) AS vingt_quatre, IIf(IsNull([25]),[CodeG],[25]) AS vingt_cinq, IIf(IsNull([26]),[CodeG],[26]) AS vingt_six, IIf(IsNull([27]),[CodeG],[27]) AS vingt_sept, IIf(IsNull([28]),[CodeG],[28]) AS vingt_huit, IIf(IsNull([29]),[CodeG],[29]) AS vingt_neuf, IIf(IsNull([30]),[CodeG],[30]) AS trente, IIf(IsNull([31]),[CodeG],[31]) AS trente_un
    FROM [Copie de R_Planning_Analyse croisée(1)];
    Le code de la requete Copie de R_Planning_Analyse croisée(1)];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TRANSFORM Count(T_Garde.CodeG) AS PremierDeGarde
    SELECT T_Garde.CodeG
    FROM R_Planning RIGHT JOIN T_Garde ON R_Planning.CodeG = T_Garde.CodeG
    WHERE (((T_Garde.valeur)=1) AND ((T_Garde.obligatoire)=Yes))
    GROUP BY T_Garde.CodeG, T_Garde.CodeG, T_Garde.valeur, T_Garde.obligatoire
    PIVOT Day([DateJ]) In (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);
    Encore merci

  9. #29
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Là, je ne vois pas...

  10. #30
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    Là, je ne vois pas...
    Ah si les experts ne trouvent pas je vais avoir du mal à me depatouiller
    Je continue a chercher et si je trouve la solution je la mettrais sur le site.

    Je vous remercie encore pour l'aide apportée et le temps consacré à etudier mon soucis.

    Bonne soirée
    Seb

  11. #31
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Souvent, le message d'erreur "Erreur d'execution'3061', trop peu de parametres. 2 attendu" signifiat pour moi que dans ma requête il y a des paramètres à passer, qui ne le sont pas.

    Une piste :
    mettre un point d'arrêt juste après avoir défini la chaîne sql de la requête.
    Faire un debug.print pour afficher cette chaîne sql.
    La copier dans une requête vie, et voir si tout va bien.

    Si tout va mal, trouver et corriger.

    Pierre

  12. #32
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    As-tu essayé de lancer ta requête ? Car cela correspond à un problème de requête et pas de code...

  13. #33
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Merci Pierre, je vais essayer demain.
    Oui Zoom61 la requête fonctionne.
    À première vue ce serait donc un problème de requête, la requête est prise sur une requête d analyse croisée, c est pas ce type de requête qui poserait problème ?
    Merci de vos aides, je continue à chercher.
    Bonne soirée
    Seb

  14. #34
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    J'ai fait le test avec une requête d'analyse croisée et cela fonctionne correctement.

  15. #35
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    J'ai fait le test avec une requête d'analyse croisée et cela fonctionne correctement.
    J'ai continuer a gratter, c'est une requete dont depend ma requete analyse croisee qui emet cette erreur.
    Cette requete a un filtre pris sur mon formulaire, mais l'erreur est toujours presente meme quand le formulaire est ouvert.
    Voici le code de la requete qui pose probleme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PARAMETERS [Forms]![F_Planning]![An] Value, [Forms]![F_Planning]![Mois] Value;
    SELECT T_Planning.Matricule, T_Planning.DateJ, T_Planning.CodeG
    FROM T_Planning
    WHERE (((Year([DateJ]))=[Forms]![F_Planning]![An]) AND ((Month([DateJ]))=[Forms]![F_Planning]![Mois]));
    Merci encore pour vos implications
    Bonne journée
    Seb

  16. #36
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    As-tu essayé sans la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PARAMETERS [Forms]![F_Planning]![An] Value, [Forms]![F_Planning]![Mois] Value;
    Je ne vois pas à quoi elle sert dans ton cas, car tu prends les valeurs dans le formulaire.

  17. #37
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    As-tu essayé sans la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PARAMETERS [Forms]![F_Planning]![An] Value, [Forms]![F_Planning]![Mois] Value;
    Je ne vois pas à quoi elle sert dans ton cas, car tu prends les valeurs dans le formulaire.
    Merci zoom61, j'avais vu la même chose et enlevé cette ligne mais c'est le critere qui est pris sur le formulaire qui pause le soucis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_Planning.Matricule, T_Planning.DateJ, T_Planning.CodeG, Year([DateJ]) AS Expr1, Month([DateJ]) AS Expr2
    FROM T_Planning
    WHERE (((Year([DateJ]))=[Forms]![F_Planning]![An]) AND ((Month([DateJ]))=[Forms]![F_Planning]![Mois]));
    En effet lorsque j'enleve les criteres ça fonctionne pourtant mon formulaire est bien ouvert et les champs renseignés, j'ai même essayé la requete avant de lancer le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((Year([DateJ]))=[Forms]![F_Planning]![An]) AND ((Month([DateJ]))=[Forms]![F_Planning]![Mois]));
    Encore merci

    Seb

  18. #38
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Bonjour,

    Connaissez vous un moyen afin que l'erreur ne se produise plus et prenne bien en compte les filtres de ma requete?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((Year([DateJ]))=[Forms]![F_Planning]![An]) AND ((Month([DateJ]))=[Forms]![F_Planning]![Mois]));
    Je me prends la tête sur ce problème

    Merci par avance

    Seb

  19. #39
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Les champs [Forms]![F_Planning]![An] et [Forms]![F_Planning]![Mois] sont des champs saisis, et sont-ils numériques ?

  20. #40
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 381
    Points : 19 802
    Points
    19 802
    Billets dans le blog
    66
    Par défaut
    Bonjour,

    Il faut mettre les 2 paramètres en en-têtes du sql de la requête "Rqt_piquet_manquant":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PARAMETERS [Forms]![F_Planning]![An] Value, [Forms]![F_Planning]![Mois] Value;
    SELECT...
    Puis au niveau du code, pour passer ces 2 paramètres il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Set oSQL = CurrentDb.QueryDefs("Rqt_piquet_manquant")
    oSQL.Parameters("[Forms]![F_Planning]![Mois]") = Forms!F_Planning!Mois
    oSQL.Parameters("[Forms]![F_Planning]![An]") = Forms!F_Planning!An
    Set oSQL = oSQL.OpenRecordset()
     
    txt = ""
     
    While Not oSQL.EOF
        txt = txt & Chr(10) & oSQL.Fields(0).Value
        oSQL.MoveNext
    Wend
    MsgBox txt
    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Comparer les valeurs de deux colonnes d'une table
    Par nguim dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/03/2014, 11h30
  2. Réponses: 3
    Dernier message: 23/10/2013, 13h52
  3. Comparer les valeurs de deux colonnes d'une feuille excel
    Par charrynsasi dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/12/2012, 14h40
  4. [WD16] Récupérer la valeur d'une colonne d'une table d'une ligne précise
    Par elghers_hocine dans le forum WinDev
    Réponses: 16
    Dernier message: 06/05/2011, 18h11
  5. Réponses: 7
    Dernier message: 25/03/2011, 10h52

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