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 :

Requête avec critère dans un champ


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Requête avec critère dans un champ
    Bonjour à tous
    J'ai développé pour mon activité une base classique sous ACCESS avec noms, adresses etc
    J'ai souvent besoin de connaitre si un ASSURE a déjà un dossier dans la base, et souhaiterai automatiser la recherche par requete
    J'ai abandonné la requete par SELECT, qui me parait fastidieuse avec les recordsets, et opté pour une CREATION DE TABLE
    Afin d'éviter une input box à remplir, je souhaiterai que la requete prenne la valeur de l'enregistrement sur lequel je suis positionné au moment où je lance la requete
    ci dessous mon code
    celà marche avec la MSGBOX mais pas sur la requete qui me renvoie une table vide, alors que mes essais se font sur un enregistrement où je sias qu'il y a des résultats

    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
    21
    22
    23
     
    Private Sub Commande531_Click()
    On Error GoTo Err_Commande531_Click
     
     
    Dim CRITERE1 As String
    Dim CRITERE2 As String
     
    CRITERE1 = Mid([ASSURE], 2, 3)
    CRITERE2 = Mid([VILLE], 2, 3)
     
    MsgBox CRITERE1 & CRITERE2
     
    DoCmd.RunSQL "SELECT Table1.NOTREF, Table1.ASSURE, Table1.VILLE INTO VIEUXDOSSIERS FROM Table1 WHERE (((Table1.ASSURE) = '*CRITERE1*') And ((Table1.VILLE) ='*CRITERE2*'))"
     
    Exit_Commande531_Click:
    Exit Sub
     
    Err_Commande531_Click:
    MsgBox Err.Description
    Resume Exit_Commande531_Click
     
    End Sub

    Je vous remercie d'avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    bienvenu,

    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "SELECT Table1.NOTREF, Table1.ASSURE, Table1.VILLE INTO VIEUXDOSSIERS FROM Table1 WHERE (((Table1.ASSURE) = '*CRITERE1*') And ((Table1.VILLE) ='*CRITERE2*'))"
    met:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sSQL= "SELECT Table1.NOTREF, Table1.ASSURE, Table1.VILLE INTO VIEUXDOSSIERS FROM Table1 WHERE (((Table1.ASSURE) = '*CRITERE1*') And ((Table1.VILLE) ='*CRITERE2*'))"
    MsgBox sSQL
     
    DoCmd.RunSQL sSQL
    tu comprendras mieux le problème.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Je vous remercie de votre réponse
    J'ai avant votre instruction défini sSQL As String.OK?
    la MSGBOX me renvoie le texte entier de la requete.OK?
    Mais la table créée ensuite reste désespérément vide
    POur info, si je remplace dans ma requete *CRITERE1* ou *CRITERE2* par un nom déjà existant et une ville déjà existante, la table se créée
    A priori, la requete ne semble pas aller chercher dans les champs de l'enregistrement sur lequel je suis positionné les valeurs de ces champs
    Encore Merci

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Désolé PAPINDOL, je pensais que tu aurais vu le pb:

    la MSGBOX me renvoie le texte entier de la requete.OK?
    c'est là!
    regarde bien... là où îl y a tes critères...

    bon je te donne le bon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL= "SELECT Table1.NOTREF, Table1.ASSURE, Table1.VILLE INTO VIEUXDOSSIERS FROM Table1 WHERE (((Table1.ASSURE) = '" & CRITERE1 & "') And ((Table1.VILLE) ='" & CRITERE2 & "'))"
    du moins je l'espère puisque je ne peux le tester.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Je commence à comprendre et continue mes recherches
    le problème vient en fait que je voudrais lui faire rechercher *CRITERE1* et *CRITERE2* alors que là il me recherche la correspondance avec CRITERE1 et CRITERE2
    je poursuis!
    A+

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    '*' ? cest pour étendre la recherche?
    dans ce cas c'est 'Like' qu'il faut utiliser...
    bonne continuation

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour le like
    La solution ci dessous fonctionne
    Peut-etre y-a-t-il mieux
    Avec mes remerciements

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((Table1.ASSURE) like '" & Chr(42) & CRITERE1 & Chr(42) & "') And ((Table1.VILLE) like '" & Chr(42) & CRITERE2 & Chr(42) & "'))

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

Discussions similaires

  1. Requête avec critère dans liste deroulante
    Par dj pimousse dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/08/2012, 22h43
  2. requête mysql avec recherche dans 2 champs
    Par yasoft dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/06/2010, 00h48
  3. Requête avec critère - champ à mettre en entête de ligne
    Par roman33 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/05/2010, 10h56
  4. Requête avec critère dans Etats
    Par adrien.gendre dans le forum VBA Access
    Réponses: 0
    Dernier message: 25/07/2007, 12h25
  5. Pb requête avec critères dans projet Access
    Par laville dans le forum Access
    Réponses: 4
    Dernier message: 19/04/2006, 20h09

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