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 :

recordset sous-formulaire access


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 9
    Points : 0
    Points
    0
    Par défaut recordset sous-formulaire access
    bonjour,

    dans un formulaire, j'ai une liste déroulante qui me propose deux valeurs : "forfait" et "coefficient".

    dans le cas où la valeur coefficient est selectionné, mon sous-formulaire s'alimente à partir d'une requête qui lui est attribuée.

    Dans le cas où c'est "forfait" qui est selectionné je ne souhaiterais affiché que quelques éléments dans ce même sous-formulaire. J'utilise donc le code suivant mais j'obtiens une erreur qui me précise qu'un opérateur est absent. Je pense qu'il s'agit d'un petit problème de syntaxe mais je n'arrive pas a trouver :
    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
     
    Private Sub cbo_chantiers_AfterUpdate()
     
     If Me.cbo_choix = "forfait" Then
     strNewRecord = "select * from parametrage coeff" _
      & " WHERE paramètre de paye.[reference chantier] = '" & Me.cbo_chantiers.Value & "'" _
      & "AND paye.[libellé] =  ' Hrs normales'" _
      & "AND paye.[libellé] = 'Hrs Sup T1'" _
      & "AND paye.[libellé] = 'Hrs Sup T2'" _
       & "AND paye.[libellé] = 'Hrs Sup T3'"
       Me.SF_coeff.Form.RecordSource = strNewRecord
       Else
    Me.SF_coeff.Requery
     End If
    End Sub
    Merci beaucoup pour vos lumières!

    Olive

  2. #2
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 86
    Points : 77
    Points
    77
    Par défaut
    Evite d'utiliser des expressions type avec des espaces... Mets le entre crochets. De plus, quel est le type de ?

    Je te conseille d'éviter les espaces, et d'utiliser des underscore à la place.

    Et mets ton code entre balises pour que cela soit compréhensible

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 9
    Points : 0
    Points
    0
    Par défaut
    ok désolé pour la mise en forme!

    je vais regarder du côté des espaces pour essayer de corriger tout ça!
    sinon 'hrs normales' est la valeur d'un enregistrement dans le champs libellé. C'est au format texte.

    merci

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 9
    Points : 0
    Points
    0
    Par défaut
    J'ai mis paramètre de paye entre crochets mais toujours la même erreur.
    Au passage, c'est la ligne de code suivante qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.SF_coeff.Form.RecordSource = strNewRecord

  5. #5
    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

    Première chose : trouver la bonne syntaxe et pour cela s'aider de l'éditeur de requête d'Access.
    1/ récupérer la valeur de strNewRecord (par debug.print puis stop, juste avant l'affectation de cette valeur à Me.SF_coeff.Form.RecordSource)
    2/ ouvrir une requête test, en mode SQL et y coller le contenu recupéré précédemment
    3/ faire des corrections (par tâtonnement parfois) pour trouver d'où vient l'erreur.

    Deuxième chose :
    comme dit par Glherbier, eviter les nom de contrôle/champs/objet.. avec des espaces : soit les mettre entre crochet, soit remplacer les espaces par des underscore.

    dernière chose: le traitement des valeur chaîne entraîne invariablement des soucis de quotes / doubles quotes... Personnellement, les doubles quotes qui doivent apparaître en clair dans la requête, sont indiqués par leur code ascii sous la forme "chr(34)".

    Ainsi la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & "AND paye.[libellé] =  ' Hrs normales'"
    deviendrait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & "AND paye.[libellé] = " & chr(34) & " Hrs normales" & chr(34)

    A vous de trouver ce qui cloche...

    Pierre

Discussions similaires

  1. Access - vba recordset sous-formulaire
    Par jedi186 dans le forum VBA Access
    Réponses: 17
    Dernier message: 01/06/2008, 13h02
  2. Formulaire/sous formulaire access
    Par anassyto dans le forum Access
    Réponses: 2
    Dernier message: 18/07/2006, 16h02
  3. formulaire et sous formulaire access (vba access)
    Par alexkickstand dans le forum Access
    Réponses: 3
    Dernier message: 21/04/2006, 19h11
  4. Probléme de raffraichissement sous formulaire access
    Par roadster62 dans le forum Access
    Réponses: 4
    Dernier message: 27/03/2006, 16h44
  5. [liste déroulante et sous-formulaire] access 2003
    Par techinfo37 dans le forum Access
    Réponses: 6
    Dernier message: 24/12/2005, 15h14

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