Erreur 3265 "Élement non trouvé dans cette collection"

Anonyme
2023-07-29T11:35:07+00:00

Bonjour

Dans ce code, à ligne en gras et rouge, j'ai l'erreur 3265 "Élément non trouvé dans cette collection" alors qu'il y a bien quelque chose.

La requête est juste ci-dessous.

SELECT Sum(t_travaux.proj_pourcentage) AS SommeDeproj_pourcentage
FROM t_Personnel INNER JOIN t_travaux ON t_Personnel.pers_Id = t_travaux.pers_id
WHERE (((t_Personnel.pers_Id)=[id]));

Merci d'avance pour vos idées !.

Function Pourcentage(param As Long)
Dim db As Object
Dim qdef As Object
Dim rs As Object
Set db = CurrentDb
Set qdef = db.QueryDefs("r_pourcentage")
'Assigner le paramètre à la requête
qdef.Parameters("id").Value = param
'Stocker le résultat de la requête dans un recordset
Set rs = qdef.OpenRecordset()
If Not rs.EOF Then
Debug.Print rs.Fields(0).Value 'Ou faire autre chose avec les résultats
Else
Debug.Print "Aucun résultat trouvé"
End If
'Nettoyage
rs.Close
Set rs = Nothing
Set qdef = Nothing
Set db = Nothing
End Function

Microsoft 365 et Office | Access | Autres | Autres

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
Anonyme
2023-07-29T14:43:36+00:00

Bonsoir à toute et tous,

Voilà, c'était bien un problème de syntaxe. J'ai fait toute ma carrière avec DAO & ADO qui sont maintenant obsolètes

Tout bêtement qdef!id = param

Option Compare Database
Option Explicit

Function Pourcentage(param As Long)
    Dim db As Object
    Dim qdef As Object
    Dim rs As Object
    Set db = CurrentDb
    Set qdef = db.QueryDefs("r_pourcentage")
    ' Définir le paramètre
    qdef!id = param
    'Stocker le résultat de la requête dans un recordset
    Set rs = qdef.OpenRecordset()
    If Not rs.EOF Then
        Debug.Print rs.Fields(0).Value 'Ou faire autre chose avec les résultats
    Else
        Debug.Print "Aucun résultat trouvé"
    End If
    'Nettoyage
    rs.Close
    Set rs = Nothing
    Set qdef = Nothing
    Set db = Nothing
End Function

Problème résolu, merci à un modo qui passe par ici de la marquer comme réponse

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

12 réponses supplémentaires

Trier par : Les plus anciens
  1. Anonyme
    2023-07-29T12:10:02+00:00

    Salut Blaise032,

    Merci d’avoir tendu la main. Je m’appelle Leo, et je suis un conseiller Microsoft indépendant et un utilisateur, tout comme vous.

    Il semble que l’erreur que vous avez actuellement se produit généralement dans VBA lorsque vous essayez d’accéder à un champ qui n’existe pas dans le jeu d’enregistrements. Pour résoudre ce problème, veuillez vérifier votre requête SQL « r_pourcentage » pour vous assurer que le champ « percent_project » existe bien dans la table « t_travaux ». Assurez-vous également que les noms de table et de champ sont correctement orthographiés et qu’il n’y a pas de fautes de frappe. S’il vous plaît laissez-moi savoir si vous êtes en mesure d’identifier le problème.

    J’espère avoir fourni une suggestion utile concernant la question! Faites-moi savoir si vous avez d’autres questions.

    Veuillez noter que cette réponse a été traduite automatiquement. En conséquence, il peut y avoir des erreurs grammaticales ou des expressions étranges.

    Sinceres salutations

    Lion

    Cette réponse a été traduite automatiquement. Par conséquent, il peut y avoir des erreurs grammaticales ou des expressions étranges.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2023-07-29T12:33:48+00:00

    Bonjour,

    Des crochets en plus.

    qdef.Parameters("[id]").Value = param

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2023-07-29T13:36:46+00:00

    Bonjour Leo.

    Merci pour le temps passé à me répondre, mais ce sont les 1ères choses que j'ai vérifié. La requête, (avec le paramètre 7), me retourne bien quelque chose.

    Je suis un ancien architecte en MS-Access et c'est en dernier recours que viens ici.

    Bien à vous,
    Blaise

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2023-07-29T13:40:57+00:00

    Bonjour @Hecatonchire,

    C'est une belle piste que j'ai commencé a explorer, mais en vain. Je vais continuer à explorer la syntaxe.

    Belle fin de journée, je vous tiens au courant

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire