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 :

Sql ou vba recherche


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Par défaut Sql ou vba recherche
    Bonjour,


    Je suis débutant sous access, et je voudrais effectuer une recherche sur un champ par ordre alphabétique.

    Donc j'ai une zone de texte(recherche) dans lequel l'utilisateur rentre une lettre S par exemple, je voudrais que cela m'affiche le premier enregistrement du champ Nom commencant par la lettre s(par exemple saturnin)si l'utilisateur rentre une deuxième lettre i par exemple il m'affiche Sirène et ainsi de suite

    J'ai essayé ceci mais sans résultat




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'Dim qry As QueryDef
    'Set qry = CurrentDb.CreateQueryDef("Select * from Clients WHERE Nom > 0 ORDER BY Nom")
    Une idée, merci

  2. #2
    Membre Expert
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 885
    Par défaut
    salut
    Essai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...........WHERE Nom Like '" &  Me!recherche & "*' ORDER BY Nom")
    @+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Par défaut
    salut,
    J'ai essayé ton code ,mais rien ne change
    Il me donne une erreur:erreur d'éxécution '3012'

    L'objet Select * from Clients WHERE Nom Like 's*' ORDER BY Nom existe déjà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Private Sub txtRecherche_Change()
    Dim qry As QueryDef
    Set qry = CurrentDb.CreateQueryDef("Select * from Clients WHERE Nom Like '" & Me!txtRecherche & "*' ORDER BY Nom")
     
    End Sub

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Par défaut
    Tu ne donnes pas de nom à ta requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub txtRecherche_Change()
    Dim qry As QueryDef
    Set qry = CurrentDb.CreateQueryDef("NOMREQUETE","Select * from Clients WHERE Nom Like '" & Me!txtRecherche & "*' ORDER BY Nom")
     
    End Sub
    Attention il faut tester si le nom de ta requête n'existe pas déjà, sinon il te retournera une erreur.

    En espérant t'avoir aidé.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Par défaut
    Salut,

    J'ai essayé ton code fdraven,merci

    1) Avant chaque recherche il faut supprimer la requête "RechercheNom"
    sinon, il me dit qu'elle existe déjà.
    2) il ne m'affiche toujours que le premier enregistrement de la table => rien ne change

    ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub txtRecherche_Change() 
    Dim qry As QueryDef 
    Set qry = CurrentDb.CreateQueryDef("NOMREQUETE","Select * from Clients WHERE Nom Like '" & Me!txtRecherche & "*' ORDER BY Nom") 
     
    End Sub
    le mien avec la suppression de la requête "RechercheNom"comme ca plus d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub txtRecherche_Change() 
    Dim qry As QueryDef 
    CurrentDb.QueryDefs.Delete "RechercheNom"
    Set qry = CurrentDb.CreateQueryDef("RechercheNom","Select * from Clients WHERE Nom Like '" & Me!txtRecherche & "*' ORDER BY Nom") 
     
    End Sub

    Si cela peut vous aider mon idée venait d'un projet vb réalisé au cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Private Sub txtRecherche_change()
    'Place le recordset en fonction du caractère entré
    adoClients.RecordSource = "Select * From Clients Where Nom >="' & txtRecherche.Text & '"" & "ORDER BY Nom"
    adoClients.Refresh
    Merci

  6. #6
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    slt,

    dans ton code tu lui demandes de créer une requête, donc ça crée une requête
    ---> donc ça marche....

    il n'y a pas de rapport entre ton code et celui dont tu es inspiré.

    - Le code initial filtre l'objet adoClients
    - Ton code crée une requête

    si tu veux mon avis tu devrais jeter un oeil au tutoriel DAO :
    http://warin.developpez.com/access/dao/

    qui t'explique notamment comment se positionner dans un formulaire :
    http://warin.developpez.com/access/d...=partie_5#L5.3

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Par défaut
    salut ,c'était pour montrer ce que je voulais faire



    Mais comment faire la meme chose avec Access sans passer par DAO




    Merci

Discussions similaires

  1. [AC-2007] recherche d'un elément table SQL via VBA
    Par johanaquatique dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/07/2010, 10h18
  2. [Vba,RecordSet,SQL]Moteur de recherche plus rapide?!
    Par omegabahamut dans le forum Access
    Réponses: 2
    Dernier message: 25/02/2007, 22h18
  3. [SQL]vs[VBA] dans formulaire de recherche
    Par alex.a dans le forum Access
    Réponses: 3
    Dernier message: 28/07/2006, 17h20
  4. [SQL][MACRO VBA]Pb de syntaxe
    Par Stef.proxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/08/2004, 10h11
  5. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 14h24

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