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

Requêtes et SQL. Discussion :

requete filtre sur un champ texte [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 16
    Points
    16
    Par défaut requete filtre sur un champ texte
    Bonjour,

    Grace au forum j'ai pu mettre en place ce code qui me permet d'exuter une requete à partir d'un champs numérique :

    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
    17
    18
    19
    20
    Private Sub douchette_afterupdate()
    Me.Filter = "code=" & Me.douchette 'si rérérence est numérique
    Me.FilterOn = True
    DoCmd.SetWarnings False
    Dim rst As Recordset
    Set rst = CurrentDb.OpenRecordset("select * from presence where code=" & douchette)
    If rst.EOF Then
      MsgBox "Ce badge n'est pas enregistrer pour ce rallye !"
    ElseIf rst!presence = "oui" Then
      MsgBox "Ce badge a déjà été validé !"
      douchette = Null
    Else
    DoCmd.RunSQL "update Presence set presence='oui' where code=" & douchette & ";"
    DoCmd.SetWarnings True
    douchette = Null 'réinitialise le champ
    Me.Requery        'met à jour l'affich
    douchette.SetFocus
    End If
    rst.Close
    End Sub
    J'essaye d'éxécuter ce même code mais avec un champs au format texte

    mais recherches mon mené à modifier cette ligne : Me.Filter = "[code]=" & Me.douchette 'si rérérence est numérique

    Me.Filter = "[CODE]='" & Me.douchette & "'"

    J'ai donc rajouté des guillemets pour le texte, mais rien y fait !

    Merci de me dépanner

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Parfois, les lecteurs de code barres ajoutent des caractères supplémentaires dans les champs (genre chr(0)). A vérifier.

    Ce qui est aussi curieux, c'est que vous encadrez correctement la variable de ' ' dans l'expression filter mais pas dans les autres requêtes.

    Une erreur est générée ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 16
    Points
    16
    Par défaut
    erreur d'éxécution 3061

    trop peu de paramètre 1 attendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set rst = CurrentDb.OpenRecordset("select * from presence where Nom=" & recherche)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Points : 30
    Points
    30
    Par défaut erreur sur les chaines des requêtes je pense
    Je ne sais pas si le pb vient de là, mais il faut bien modifier ton code pour mettre des guillemets partout. Ci-dessous ton code que j'ai modifié dans le cas d'une donnée "douchette" qui est du texte:

    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
    17
    18
    19
    20
    Private Sub douchette_afterupdate()
    Me.Filter = "(code='" & Me.douchette & "')" 'si rérérence est texte
    Me.FilterOn = True
    DoCmd.SetWarnings False
    Dim rst As Recordset
    Set rst = CurrentDb.OpenRecordset("select * from presence where code='" & douchette & "'")
    If rst.EOF Then
      MsgBox "Ce badge n'est pas enregistrer pour ce rallye !"
    ElseIf rst!presence = "oui" Then
      MsgBox "Ce badge a déjà été validé !"
      douchette = Null
    Else
    DoCmd.RunSQL "update Presence set presence='oui' where code='" & douchette & "';"
    DoCmd.SetWarnings True
    douchette = Null 'réinitialise le champ
    Me.Requery        'met à jour l'affich
    douchette.SetFocus
    End If
    rst.Close
    End Sub
    Tu peux tester et me faire un feed-back?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 16
    Points
    16
    Par défaut
    Un grand merci ca marche au poil !

    Je suis un peu en retard mon disque dur avait laché.

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

Discussions similaires

  1. Requete numerique sur un champs texte
    Par noratec dans le forum IHM
    Réponses: 3
    Dernier message: 05/02/2009, 12h02
  2. Optimisation d'une requete sur un champ texte
    Par TARMINE dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/06/2006, 13h41
  3. filtre numérique sur un champ texte
    Par debdev dans le forum Access
    Réponses: 15
    Dernier message: 26/05/2006, 17h45
  4. requete sur un champs text
    Par sam01 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/03/2006, 13h41
  5. Requete avec filtre sur un champ
    Par podz dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/02/2005, 14h37

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