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

Access Discussion :

code sql pour implémenter une variable


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 48
    Points : 37
    Points
    37
    Par défaut code sql pour implémenter une variable
    Bonjour,
    Je souhaite générer du code sql pour modifier la source d'un formulaire selon le choix dans une liste déroulante. Le code sql alimente la variable strRowSource
    J'ai parcouru le forum mais je n'ai pas trouvé l'erreur dans mon code VBA;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub filtrer_fiches_Change()
    If Cadre21 = 1 Then
    strRowSource = "SELECT [num],[type_intervention],[ref_personnel_1],[prise_en_charge],[Nom],[Prenom],[ddn],[facturation],[atravail],[numsecu],[comdom],[adresse]" & "FROM t_main"&"WHERE [Nom] like '*" & Me.Filtrer_fiches.Text & "*'"
    La clause WHERE ne fonctionne pas.
    Merci pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 647
    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 647
    Points : 14 624
    Points
    14 624
    Par défaut
    bonsoir thoruiz,
    la concaténation avec le signe & ne met pas automatiquement les espaces. Ecrire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...[adresse]" & "FROM t_main"&"WHERE [Nom] like '*"...
    correspond à cela dans la variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...[adresse]FROM t_mainWHERE [Nom] like '*"...
    Comme il n' y a pas d'espace entre le nom de la table et la clause WHERE, l'instruction est fausse et n'est donc pas chargée.

    Il est préférable de concaténer seulement lorsqu'il y a une variable à insérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strRowSource = "SELECT [num],[type_intervention],[ref_personnel_1],[prise_en_charge],[Nom],[Prenom],[ddn],[facturation],[atravail],[numsecu],[comdom],[adresse] FROM t_main  WHERE [Nom] like '*" & Me.Filtrer_fiches & "*'"
    De plus, il faut préférer l'évènement Click ou AfterUpdate plutôt que Change qui s'exécute à chaque saisie d'un caractère dans la liste déroulante et de ce fait utiliser la propriété (par défaut) .Value plutôt que .Text
    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 ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Merci encore pour votre réponse rapide.
    Effectivement je comprend mon erreur sur la concaténation qui modifie donc le nom de la table.
    J'ai essayé le code avec value par défaut mais la clause where ne s’exécutait pas.
    Par contre avec la propriété .Text affectée à mon controle Filtrer_fiche , WHERE filtre parfaitement les champs.

    Cordialement. et encore merci!
    M. Ruiz

    NB Sauf remarque de votre part je considérerait cette discussion résolue.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 647
    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 647
    Points : 14 624
    Points
    14 624
    Par défaut
    bonsoir,
    J'ai essayé le code avec value par défaut mais la clause where ne s’exécutait pas.
    je le répète, l'évènement Change exécute le code à chaque fois qu'un caractère est saisi et de ce fait utilise la propriété Text et non pas Value.
    Mais il est préférable d'utiliser l'évènement Click ou AfterUpdate plus performant car le code sera exécuté qu'une seule fois et, dans ce cas, c'est la propriété Value qui sera utilisée.

    NB Sauf remarque de votre part je considérerait cette discussion résolue.
    il faut appuyer sur le bouton prévu à cet effet
    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 ?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/03/2008, 22h19
  2. [SQL] Espace dans une variable pour SQL
    Par xtranaz dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 28/02/2008, 16h29
  3. Probleme pour recuprer une variable dans un code embed vers un swf
    Par marcovitch80 dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 17/01/2008, 20h16
  4. Réponses: 1
    Dernier message: 14/02/2007, 17h08
  5. Réponses: 3
    Dernier message: 06/01/2007, 17h44

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