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 :

Requete SQL et erreur sur .RecordSource [AC-2016]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut Requete SQL et erreur sur .RecordSource
    Bonjour,
    J'ai un formulaire avec deux listes déroulantes et un sous formulaire: le sous formulaire se met à jour en fonction des valeurs des deux listes.

    Une erreur "Erreur de compilation_Membre de méthode ou de donnees introuvable" apparaît, reliée à "RecordSource" dans Me.zone_extraction.RecordSource = strRequeteSQL
    Je ne comprend pas pourquoi cela ne fonctionne pas: je pourrais passer par une requete et un "Query. la requete", mais je voudrais absolument passer par du SQL uniquement.
    Merci de votre aide!

    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
    If IsNull(Me!listeCodesHorairesParClientActif) Then
        MsgBox "Veuillez sélectionner un code horaire"
    Else
        strRequeteSQL = "SELECT tListeHorairesParClient.Client, tListeHorairesParClient.Code_horaire, tListeHorairesParClient.Description, tListeHorairesParClient.Duree, tListeHorairesParClient.Nombre_heures_payees, tListeHorairesParClient.Date_fin_de_validite" & vbCrLf & _
                         "FROM tListeHorairesParClient" & vbCrLf & _
                         "WHERE (((tListeHorairesParClient.Client)= '" & strClient & "')" & vbCrLf & _
                         "AND (((tListeHorairesParClient.Code_horaire)='" & strCodeHoraire & "') " & vbCrLf & _
                         "AND ((tListeHorairesParClient.Date_fin_de_validite) Is Null))"
     
    End If
     
    If strRequeteSQL <> "" Then
        Me.zone_extraction.RecordSource = strRequeteSQL
        Me.zone_extraction.Requery
    Else
    End If

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2019
    Messages : 144
    Points : 194
    Points
    194
    Par défaut
    Bonjour

    Supprimes les & vbCrLf, seul & _ suffit.

  3. #3
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Bonjour Phiphi41,
    je viens d'essayer, mais l'erreur persiste.
    Merci de ton aide.
    Etxe.

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2019
    Messages : 144
    Points : 194
    Points
    194
    Par défaut
    En plus,

    Il manque des espaces, affiche ta chaine SQL dans une messagebox et tu verras que par exemple après tListeHorairesParClient.Date_fin_de_validite qu'il faut un espace.

  5. #5
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Rebonjour,

    J'ai utilisé cette syntaxe dans une autre requête, et cela fonctionne.
    Ici par contre je n'y arrive pas.
    Je joins le fichier pour que vous puissiez voir ce qu'il se passe.
    Merci d'avance!
    Etxe.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Tu fais référence à un sous-formulaire, donc la syntaxe serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.zone_extraction.Form.RecordSource = strRequeteSQL
    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Bonjour et merci de votre aide,

    Cela génère une erreur: "Référence à objet manquant ou supprimé"

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Re-,

    Est-ce que le sous-formulaire "zone_extraction" existe ? (Je pensais que tu l'as supprimé expressément ou par erreur dans la base postée)

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  9. #9
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Il existe bel et bien!

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Dans la base que tu as postée ? il n'apparait pas
    Nom : im_liste_form.JPG
Affichages : 263
Taille : 58,8 Ko

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  11. #11
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Re,
    C'est le sous-formulaire situé dans fRetourTriHoraireParClient

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Les sous-formulaires ou sous-états sont des objets à part.
    Il faut d'abord les enregistrer comme formulaire ou état. Et c'est après que tu les mets en sous-formulaire dans un formulaire principal.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  13. #13
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Re,
    Je suis donc obligé de créer un autre objet, sous formulaire ou requête, ensuite créer le sous formulaire puis de le lier à la source?
    Je pensais pouvoir directement afficher les infos sélectionnées par la requete SQL dans une zone de sous formulaire indépendante.
    Je m'y attelle donc.
    Merci beaucoup de ton aide.
    Etxe.

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour,
    Je pensais pouvoir directement afficher les infos sélectionnées par la requete SQL dans une zone de sous formulaire indépendante.
    Je m'y attelle donc.
    c'est tout à fait possible d'afficher la requête sans passer par la création d'un sous-formulaire, la méthode est expliquée ici
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  15. #15
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    tee_grandbois bonjour,
    Merci de ton aide, j'ai maintenant une erreur de syntaxe, peux-tu me dire si tu vois quelque chose s'il te plaît?
    Fichiers attachés Fichiers attachés

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    enlève la première parenthèse de la clause WHERE ...elle est de trop.
    Sinon, les parenthèses, c'est utile quand il y a des OR, hors ici, il n' y en a pas, donc on peut s'en passer: c'est le générateur de requêtes d'Access qui les met au cas où...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    autre chose: il vaut mieux privilégier le doublement des guillemets plutôt que de remplacer par l'apostrophe, utilisée relativement couramment dans la langue française,ou encore mieux: utiliser l'identifiant numérique plutôt que le nom ou le libellé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                         "WHERE ((tListeHorairesParClient.Client)= """ & strClient & """)" & _
                         "AND (((tListeHorairesParClient.Code_horaire)=""" & strCodeHoraire & """) " & _
    ici, le vbcrlf n'as pas grande utilité sauf à "aérer" le code SQL
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  18. #18
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Merci tee-grandbois, cela fonctionne parfaitement.
    Bonne continuation!
    Etxe.

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

Discussions similaires

  1. [SQL - Oracle 9i] Requete Sql avec filtre sur critere
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 3
    Dernier message: 05/12/2007, 08h45
  2. requete SQL Select : erreur syntaxe
    Par samtheh dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 11/06/2007, 16h58
  3. [Excel/VBA] Requete SQL avec clause sur une suite de Cellule
    Par Myogtha dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/02/2007, 17h36
  4. requete sql avec between sur des champs de type Date
    Par ersoufiane dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/08/2006, 19h43
  5. [Access] requete sql avec condition sur date
    Par qeja dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/03/2006, 23h54

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