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 :

formulaire de recherche sous access


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut formulaire de recherche sous access
    On a fait un peu de VB en cours la semaine dernière, rien de bien folichon, mais j'avais envie d'approfondir un peu alors je me suis lancé dans un petit projet au taff.

    J'ai une basse de donnée access et j'aimerais faire une recherche dans celle ci à l'aide d'un formulaire.

    ( Je bosse dans un cabinet d'étude. A la base se sont des affaires qui sont archivées sur DVD. J'aimerais grace à ce programme, tapper un nom ou un numero d'affaire et retrouver ainsi sur quel DVD elle ou il se trouve )

    J'ai du faire dans ma vie une dizaine d'heure de VB et jamais de SQL. Justement, dans mon petit prog, j'ai une requete SQL a effectuer, je pense qu'il y a eu erreur dans celle-ci, mais je n'arrive pas à la trouver.

    J'ai crée une base de donnée simple pour faire un test.
    Dans celle ci je voudrais faire une rechercher à partir d'une txtbox.
    C'est à dire que lorsque je tappe trois lettre dans la txtbox par exemple, la fonction recherche me cherche tous le mots contenant ces trois lettre dans ma base de donnée. Est ce que je suis assez clair ?

    Donc voici ma table de test ( à savoir que ma base de donnée contient plus de 1000 entrées, je n'ai pas voulut travailler dessus tout de suite, je le ferais quand je maitriserai un peu plus )



    et le formulaire ( très basique )



    Quand je clique sur "nom" par exemple dans le formulaire, j'aimerais que le nom tappé soit recherché et inscrit dans la liste en dessous.
    C'est pas très compliqué à prioris mais bon, chez moi ça veut pas tongue.gif


    voici le code :


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
     
     
     
    Private Sub Form_Load()
     
    Dim ctl As Control
     
    For Each ctl In Me.Controls
     
    Select Case Left(ctl.Name, 5)
     
    Case "coche"
     
    ctl.Value = 0
     
    Case "modif"
     
    ctl.Visible = False
     
    End Select
     
    Next ctl
     
     
    ListeResultat.RowSource = "SELECT [AFFAIRES].[id], [AFFAIRES].[numero], [AFFAIRES].[nom], [AFFAIRES].[date], [AFFAIRES].[dvd] FROM [AFFAIRES];"
     
    ListeResultat.Requery
     
    End Sub
     
    Private Sub rafraichir()
     
    Dim SQL As String
     
    SQL = "SELECT [AFFAIRES].[id], [AFFAIRES].[numero], [AFFAIRES].[nom], [AFFAIRES].[date], [AFFAIRES].[dvd] FROM [AFFAIRES]where AFFAIRES!numero<>0 "
     
    If Cochenom Then
     
    On Error Resume Next
     
    SQL = SQL & "And [AFFAIRES]![AFFAIRES].[nom] like '" & modifnom.Text & "*' "
     
    End If
     
    SQL = SQL & ";"
     
    ListeResultat.RowSource = SQL
     
    ListeResultat.Requery
     
    End Sub
     
     
    Private Sub ModifNom_BeforeUpdate(Cancel As Integer)
     
    rafraichir
     
    End Sub
     
    Private Sub cocheNom_Click()
     
    modifnom.Visible = Not modifnom.Visible
     
    rafraichir
     
    End Sub
     
    Private Sub ModifNom_KeyUp(KeyCode As Integer, Shift As Integer)
     
    rafraichir
     
    End Sub

    J'ai donné des noms aux cases à cocher et aux txtbox

    case à cocher nom : CocheNom
    text box nom : ModifNom

    case à cocher numéro : CocheNuméro
    text box numéro : ModifNuméro

    et la liste : ListeResultat


    J'ai trouvé la source sur le net, un petit tuto sympa, mais la je bloque.

    Lorsque je rentre le mot à rechercher dans la textbox, il ne m'éffectue pas la recherche dans la listbox.

    la question est : est ce que vous pouvez me venir en aide ?

    Merci bien.

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    essaie d'utiliser .Value plutôt que .Text pour récupérer la valeur d'un contrôle qui n'est plus en cours de saisie ...

    PS : merci d'utilise les balises [ CODE ] plutôt que [ QUOTE ]
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    ok, merci cafeine.

    A la base j'avais testé avec ton tuto que j'ai trouvé en naviguant sur google, mais je n'ai pas réussi. J'ai trouvé un autre tuto un peu plus simple.

    Justement c'est les valeurs .value qui me posaient un problème.

    Je ne sais pourquoi, mais je vais réessayer après manger

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Ca ne fonctionne pas.

    c'est bien la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL = SQL & "And [AFFAIRES]![AFFAIRES].[nom] like '" & modifnom.Value & "*' "
    Qu'il faut que je transforme ?

    Lorsque je retourne le formulaire et que je veux entrer une saisie dans "nom", une msgbox s'affiche qui me demande d"entrer la valeur du paramètre" AFFAIRES!AFFAIRES.nom

    Je n'y comprend strictement rien vu que j'en suis vraiment au tout début dans VB

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Affaire!affaire.nom n'est pas reconnu comme un lien valide, et c'est normal !

    affaire.nom semblerai plus indiqué.
    ou affaire!nom

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Malheureusement, aucune des deux solutions ne fonctionnent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQL = SQL & "And AFFAIRES!nom like '" & modifnom.Text & "*' "
    Comme ceux ci tu voulais dire ?

    Si je comprend bien ( comprend est un grand mot ici ) grace a cette ligne, lorsque je tappe quelque chose dans la txtbox, ce quelque chose est recherché dans la table AFFAIRES et dans la colonne "nom"?

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Dans les lignes de codes, les caractères en rouge sont des lignes qui ne fonctionnent pas ou qui font bugger le programme ?

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    non ne tient pas compte de la couleur du code dans le forum.

    n'utilise pas .text mais .value ou rien c'est pareil.

    par contre ici tu as une erreur il te manque un espace entre Affaires et where !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM [AFFAIRES]where AFFAIRES.numero<>0
    remplace le ! par un . dans SQL.

    Affaire!nom devient Affaire.nom
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2003
    Messages : 53
    Points : 73
    Points
    73
    Par défaut
    salut,

    Malheureusement, aucune des deux solutions ne fonctionnent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SQL = SQL & "And AFFAIRES!nom like '" & modifnom.Text & "*' "

    Comme ceux ci tu voulais dire ?
    Juste en passant comme cela....

    ce ne serait pas plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = SQL & "And AFFAIRES!nom like '" & me.modifnom.value & "*' "
    Il me semble à mon humble avis que le me. manque dans le sql.... à moins qu'il ne soit déclaré ailleurs... (j'ai peut-être raté l'info...)

    bonne continuation

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Pour info.
    c'est bien de spécifier le me. (je l'emploi toujours) ça évite de se tromper grace à la liste déroulante, mais ce n'est pas obligatoire.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2003
    Messages : 53
    Points : 73
    Points
    73
    Par défaut
    merci loufab de la précision.... c'est vrai que je l'emploie toujours également... mais je ne savais que l'on pouvais s'en asser

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Ok super, merci. Il y a du changement, mais ce n'est pas encore parfais lol.

    Lorsque je décoche pas chkbox nom, la txtbox nom apparait et je peux tapper le nom recherché. Je fais ainsi, mais il ne me recherche pas le nom dans la liste. Par contre une fois le nom rentré dans la txtbox, lorsque je coche la chkbox il me fait la recherche.

    Je vais essayer de trouver moi même l'erreur ça ne doit pas etre compliqué.

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    L'événement "Après mise à jour" et non "avant" conviendrait mieux au fonctionnement.

    le Me je conseille d'en abuser.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  14. #14
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    A quoi sert-il exactement ce Me. ?

    Parce que la moitié du code je l'ai pompé d'un tuto du net et je ne comprend pas exactement tout ce que j'ai fais. Mais grace à d'autres tuto et forums, ça commence à rentrer

    edit : tu parles de l'évenement beforeupdate qu'il faudrait que je change en after update ? Si c'est le cas, j'ai testé et ça fait bugguer mon formulaire.

    Merci en tout cas pour votre aide, ça me fait avancer

  15. #15
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Me désigne l'objet principal en cours, formulaire / état ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  16. #16
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Citation Envoyé par kib1337 Voir le message
    A quoi sert-il exactement ce Me. ?

    Parce que la moitié du code je l'ai pompé d'un tuto du net et je ne comprend pas exactement tout ce que j'ai fais. Mais grace à d'autres tuto et forums, ça commence à rentrer

    edit : tu parles de l'évenement beforeupdate qu'il faudrait que je change en after update ? Si c'est le cas, j'ai testé et ça fait bugguer mon formulaire.

    Merci en tout cas pour votre aide, ça me fait avancer
    Peut-on voir ton nouveau code ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Formulaire de Recherche sous Access
    Par Mauna dans le forum Access
    Réponses: 8
    Dernier message: 09/09/2008, 10h21
  2. Formulaire de recherche multicritère Access 2003
    Par Mimi64 dans le forum Access
    Réponses: 1
    Dernier message: 19/07/2006, 12h21
  3. Moteur de recherche sous access
    Par nawal59 dans le forum Access
    Réponses: 3
    Dernier message: 08/06/2006, 19h56
  4. Créer un formulaire d'importation sous access
    Par Raphaëlle dans le forum Access
    Réponses: 8
    Dernier message: 25/03/2006, 14h59
  5. Recherche sous Access
    Par lilimilou_74 dans le forum Access
    Réponses: 1
    Dernier message: 07/02/2006, 08h34

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