Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
842 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Mini moteur de recherche sous access

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Mini moteur de recherche sous access

n°787085
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 05-07-2004 à 17:01:40  profilanswer
 

bon je voudrais que lorsque j'ouvre le formulaire, dans n'importe quel enregistrement, lorsque je tape un lettre dans le champ de la clef primaire, access m'ammene au 1er enregistrement commencant par cette lettre et plus je precise le mot plus access fais des mise a jour
( en gros un peu comme dans vb apres un point, une liste de choix apparait et defile selon ce que l'on tape )
 
deuxieme chose: je voudrais que le curseur se mettent dans la zone de texte apres avoir cliquer sur un bouton
 
troisieme chose (reglé): dans mon formulaire, lorsque je clique sur tab, le curseur ne navigues pas entre les champs comme je le voudrais, passe du premier a la dixieme zone de texte. Comment faire pour changer cela ?
 
merci d'avance


Message édité par Mr Mazurier le 05-07-2004 à 17:34:37
mood
Publicité
Posté le 05-07-2004 à 17:01:40  profilanswer
 

n°787092
JihemAir
Je sais pas
Posté le 05-07-2004 à 17:07:53  profilanswer
 

1- ?
2- Voir objet.SetFocus (qui envoie le curseur sur l'objet)
3- Voir propriété TabIndex (qui donne la sequence de selection quand on appuie sur "TAB" ).

n°787094
jagstang
Pa Capona ಠ_ಠ
Posté le 05-07-2004 à 17:08:52  profilanswer
 

Mazurier veux, HFR donner


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°787129
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 05-07-2004 à 17:20:00  profilanswer
 

ben j'avais deja essayé pour setfocus mais ca marche po !
j'ai fait zonetext.setfocus (je pense que c'est tout ce qu'il faut mettre ) mais il veut pas
 
merci pour le 3
 
pour le 1, je voudrais, par exemple taper blue dans la zone de texte et qu'il affiche l'enregistrement qui lui ressemble le plus, donc bluecom
 
je vais ressayer pour le 2
 
"Mazurier veux, HFR donner"
 
sinon desole de pas tout savoir mais j'ai essayer avant avec ce que je savais et avec google mais j'ai pas d'idée alors c'est pas evident de rechercher quelque chose que l'on imagine meme pas.


Message édité par Mr Mazurier le 05-07-2004 à 17:33:53
n°788058
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 06-07-2004 à 14:13:59  profilanswer
 

plize ... help !

n°789257
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 15:50:01  profilanswer
 

il me reste que la recherche, le reste est reglée
j'ai une requete :
      Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom LIKE '" & strnom & "';" )
      Set rs = qdReq.OpenRecordset
 
mais meme avec like, si je tape blueco, il ne trouve pas bluecom. je comprend pas... y un truc de pas bon ?
 
et puis comme le nom de l'entre prsie est la clé primaire, il m'affiche un erreur qd je change d'enregistrement. Faut il que je mette une numéroauto comme clé primaire ou y a til une autre solution ?

n°789274
jagstang
Pa Capona ಠ_ಠ
Posté le 07-07-2004 à 16:05:17  profilanswer
 

LIKE c'est comme =, mais pour les chaines de caractères. il faut mettre le caractère générique %.
 
SELECT * FROM maTable WHERE monNom LIKE '%blueco%'


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°789279
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 16:08:06  profilanswer
 

ok j'éssai

n°789295
skeye
Posté le 07-07-2004 à 16:15:15  profilanswer
 

JagStang a écrit :

LIKE c'est comme =, mais pour les chaines de caractères


[:hide]


---------------
Can't buy what I want because it's free -
n°789310
jagstang
Pa Capona ಠ_ಠ
Posté le 07-07-2004 à 16:23:53  profilanswer
 


vi mossieur.
 
c'est pour lui dire que faire LIKE 'truc' équivaut à faire = 'truc'
 
tu me suis ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
mood
Publicité
Posté le 07-07-2004 à 16:23:53  profilanswer
 

n°789312
skeye
Posté le 07-07-2004 à 16:25:47  profilanswer
 

JagStang a écrit :

vi mossieur.
 
c'est pour lui dire que faire LIKE 'truc' équivaut à faire = 'truc'
 
tu me suis ?


ben...non.
spa pareil, sinon LIKE n'aurait pas d'intérêt...[:joce]


---------------
Can't buy what I want because it's free -
n°789314
skeye
Posté le 07-07-2004 à 16:28:06  profilanswer
 

et ça fonctionne pour les chiffres, testé à l'instant :

Code :
  1. SQL> select cod_anu from annee_uni where cod_anu LIKE '20%';
  2. COD_
  3. ----
  4. 2000
  5. 2001
  6. 2002
  7. 2003
  8. 2004


---------------
Can't buy what I want because it's free -
n°789315
skeye
Posté le 07-07-2004 à 16:29:48  profilanswer
 

ah merde c'est un varchar en fait...je teste avec un number...:whistle:
 
 
[edit]
 
 
avec un number ça fonctionne aussi...
 

Code :
  1. SQL> desc individu;
  2. Name                            Null?    Type
  3. ------------------------------- -------- ----
  4. COD_IND                         NOT NULL NUMBER(8)
  5. [...]
  6. SQL> select cod_ind from individu where cod_ind like '20%';
  7.   COD_IND
  8. ---------
  9.        20
  10.       200
  11.       201
  12.       202
  13.       203
  14.       204
  15.       205
  16.       206
  17.       207
  18.       208
  19.       209
  20.      2000


Message édité par skeye le 07-07-2004 à 16:32:12

---------------
Can't buy what I want because it's free -
n°789324
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 16:35:45  profilanswer
 

bon ben avec mon code  
 
Dim strnom As String
Dim rs As DAO.Recordset
Dim qdReq As DAO.QueryDef
       
      strnom = Ent_nom
      Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom LIKE '%" & strnom & "%';" )
      Set rs = qdReq.OpenRecordset
       
  If rs.EOF And rs.BOF Then
    MsgBox "vide"
    Exit Sub
  End If
 
       
      Ent_nom.SetFocus
      Ent_nom.Text = rs.Fields("ent_nom" )
      Ent_adr.SetFocus
      Ent_adr.Text = rs.Fields("ent_adr" )
 
 
il m'affiche vide. or ce n'est pas vrai, il y a deux champs dans cette table. ai je fais une erreur dans mon code ?
je pense que c'est ma requete ...

n°789329
skeye
Posté le 07-07-2004 à 16:38:49  profilanswer
 

Tu peux afficher la requête générée à l'exécution?


---------------
Can't buy what I want because it's free -
n°789332
jagstang
Pa Capona ಠ_ಠ
Posté le 07-07-2004 à 16:41:52  profilanswer
 

skeye a écrit :

ben...non.
spa pareil, sinon LIKE n'aurait pas d'intérêt...[:joce]


au niveau de la compréhension bobet.
 
sinon essaie de faire un ='%skeyeFouteurDeMerde%'


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°789340
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 16:48:44  profilanswer
 

Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom = '%" & strnom & "%';" )
 
elle est pas grande et quand elle s'execute ( lorsque le ent_nom est modifié, c'est une zone de texte ) il me dit, arrivé a

n°789342
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 16:50:03  profilanswer
 

Ent_nom.Text = rs.Fields("ent_nom" ) qu'il n'y a aucun enregistrement en cours

n°789343
skeye
Posté le 07-07-2004 à 16:50:37  profilanswer
 

Mr Mazurier a écrit :

Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom = '%" & strnom & "%';" )


après ça fait afficher ta requête dans le navigateur, s'il y a une erreur tu le verras plus facilement...


---------------
Can't buy what I want because it's free -
n°789359
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 17:08:33  profilanswer
 

bon je suis revenue en arriere
 
voila le code
 
Dim strnom As String
Dim rs As DAO.Recordset
Dim qdReq As DAO.QueryDef
   
      strnom = InputBox("Nom de l'entreprise?" )
      Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom LIKE '" & strnom & "';" )
      Set rs = qdReq.OpenRecordset
 
 If rs.EOF And rs.BOF Then
    MsgBox "Rien! Que dalle! Nada!"
    Exit Sub
  End If
      Ent_nom.SetFocus
      Ent_nom.Text = rs.Fields("ent_nom" )
      Ent_adr.SetFocus
      Ent_adr.Text = rs.Fields("ent_adr" )
 
ce qui est bizarre c'est que sans les % ca marche ! alors est ce qu'il son mal placé ?

n°789365
jagstang
Pa Capona ಠ_ಠ
Posté le 07-07-2004 à 17:11:13  profilanswer
 

LIKE '%" & strnom & "%'


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°789376
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 17:20:13  profilanswer
 

ben non il me dit que c'est vide. ca marche plus du tout maintenant.
 
Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom LIKE '%" & strnom & "%';" )

n°789378
skeye
Posté le 07-07-2004 à 17:23:24  profilanswer
 

Mr Mazurier a écrit :

ben non il me dit que c'est vide. ca marche plus du tout maintenant.
 
Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom LIKE '%" & strnom & "%';" )


crée une chaine de caractères dans laquelle tu vas mettre ton "SELECT * FROM entreprise  WHERE ent_nom LIKE '%" & strnom & "%';" et fais-la afficher par ton programme. Ensuite colle la ici.


---------------
Can't buy what I want because it's free -
n°789386
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 17:27:11  profilanswer
 

stop j'ai pas tout compris la  
par exemple je fais :
 
dim requete as string
 
requete = "SELECT * FROM entreprise  WHERE ent_nom LIKE '%" & strnom & "%';"
 
msgbox=(requete)
 
 
c'est ca que tu dis ? parceque sinon j'ai pas compris et je vois pas trop l'interet mais tu dois plus t'y connaitre

n°789389
skeye
Posté le 07-07-2004 à 17:27:47  profilanswer
 

Mr Mazurier a écrit :

stop j'ai pas tout compris la  
par exemple je fais :
 
dim requete as string
 
requete = "SELECT * FROM entreprise  WHERE ent_nom LIKE '%" & strnom & "%';"
 
msgbox=(requete)
 
 
c'est ca que tu dis ? parceque sinon j'ai pas compris et je vois pas trop l'interet mais tu dois plus t'y connaitre


L'intérêt c'est de vérifier que ta requête générée est bonne...


---------------
Can't buy what I want because it's free -
n°789390
jagstang
Pa Capona ಠ_ಠ
Posté le 07-07-2004 à 17:28:56  profilanswer
 

l'intéret c'est de voir la chaine contstruite telle qu'elle est passée au SGBD...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°789394
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 17:30:04  profilanswer
 

mais en tout cas j'ai bien compris c'est ca que tu me dis de faire ?

n°789398
skeye
Posté le 07-07-2004 à 17:32:08  profilanswer
 

oui oui...
 
[edit]
...et la requête générée tu essaie de l'exécuter à la main, pour voir...;)


Message édité par skeye le 07-07-2004 à 17:35:11

---------------
Can't buy what I want because it's free -
n°789408
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-07-2004 à 17:39:07  profilanswer
 

il souligne Msgbox et dit :  
   " un appel de fonction dans la partie gauche de l'affectation doit renvoyer variant ou object "  
 
il affiche rien du tout et va direct au message d'erreur meme si je mets un autre msgbox avant

n°789722
bidoch78
Posté le 08-07-2004 à 00:20:07  profilanswer
 

c'est pas msgbox=(requete) mais plutot msgbox requete
de plus le faite de mettre cette condition %montexte% recherche l'occurence montexte quelque soit sa position hors si j'ai bien compris, toi tu veux le text qui commence par donc je préconise LIKE 'montexte%' mais attention pour la syntaxe je ne sais pas si tu travailles sous ACCESS ou via ADO mais la syntaxe peut legerement etre differente LIKE 'montexte*'

n°789796
JihemAir
Je sais pas
Posté le 08-07-2004 à 07:46:58  profilanswer
 

Citation :

via ADO mais la syntaxe peut legerement etre differente LIKE 'montexte*'

+1  :jap:

n°789874
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 09:49:45  profilanswer
 

ca na marche toujours pas mais je pense que ma requete a un pb autre part. il me dit qu'il n'y a pas d'enregistrement.
pour tester ma requete en manuel, je vois pas comment la faire. pour afficher le message avec la requete, msgbox tjrs souligné et il dit la meme chose :
 
" un appel de fonction dans la partie gauche de l'affectation doit renvoyer variant ou object "  
 
qu"est ce que ca veut dire ? mon msgbox est incomplet ?
 
SELECT *
FROM entreprise
WHERE ent_nom LIKE [quel est le nom de l'entreprise ?];
 
 
ou dois je mettre le % ?

n°789877
skeye
Posté le 08-07-2004 à 09:53:21  profilanswer
 

Mr Mazurier a écrit :

ca na marche toujours pas mais je pense que ma requete a un pb autre part. il me dit qu'il n'y a pas d'enregistrement.
pour tester ma requete en manuel, je vois pas comment la faire. pour afficher le message avec la requete, msgbox tjrs souligné et il dit la meme chose :
 
" un appel de fonction dans la partie gauche de l'affectation doit renvoyer variant ou object "  
 
qu"est ce que ca veut dire ? mon msgbox est incomplet ?
 
SELECT *
FROM entreprise
WHERE ent_nom LIKE [quel est le nom de l'entreprise ?];
 
 
ou dois je mettre le % ?


 

bidoch78 a écrit :

c'est pas msgbox=(requete) mais plutot msgbox requete


 
Si tu pouvais prendre la peine de lire toutes les réponses ce serait pas mal.


---------------
Can't buy what I want because it's free -
n°789965
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 10:38:44  profilanswer
 

excuser moi j'avais pas vue qu'il fallait enlever le =, j'avais juste enlever les ()
le msgbox donne :
 
SELECT * FROM entreprise  WHERE ent_nom LIKE '%';
 
donc ca veut dire que le sgbd ne reconnait/voit/n'utilise pas ma variable  
 

n°789972
skeye
Posté le 08-07-2004 à 10:44:25  profilanswer
 

Donc ton pb vient de la récupération de strnom pour commencer.


---------------
Can't buy what I want because it's free -
n°789984
JihemAir
Je sais pas
Posté le 08-07-2004 à 10:51:54  profilanswer
 

Sans vouloir vous offenser, je crois que vous faites fausse route. Comme dit + haut, le problème viendrait plutôt du joker (* au lieu de %). A ta place, Mr Mazurier, je reprendrais mon code initial avec cette petite modif:
 
      Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom LIKE '*" & strnom & "*';" )  
      Set rs = qdReq.OpenRecordset  

n°789989
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 10:55:37  profilanswer
 

ok je teste

n°789997
skeye
Posté le 08-07-2004 à 10:58:01  profilanswer
 

JiHemAir a écrit :

Sans vouloir vous offenser, je crois que vous faites fausse route. Comme dit + haut, le problème viendrait plutôt du joker (* au lieu de %). A ta place, Mr Mazurier, je reprendrais mon code initial avec cette petite modif:
 
      Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom LIKE '*" & strnom & "*';" )  
      Set rs = qdReq.OpenRecordset


Oui, mais je voyais l'absence du contenu de strnom comme un premier problème à régler avant d'essayer d'exécuter sa requête...si son machin génère un  
SELECT * FROM entreprise  WHERE ent_nom LIKE '**';
Il risque d'avoir bcp de résultats...;)


---------------
Can't buy what I want because it's free -
n°790008
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 11:02:07  profilanswer
 

ok ok MrSkeye pensais juste, il me renvoi  
SELECT * FROM entreprise  WHERE ent_nom LIKE '**';
donc il considere strnom comme vide

n°790018
skeye
Posté le 08-07-2004 à 11:04:54  profilanswer
 

Mr Mazurier a écrit :

ok ok MrSkeye pensais juste, il me renvoi  
SELECT * FROM entreprise  WHERE ent_nom LIKE '**';
donc il considere strnom comme vide


...donc essaye de récupérer correctement strnom pour commencer...;)


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Mini moteur de recherche sous access

 

Sujets relatifs
Comment transferer des donnees d'une base a l'autre ? ( access )VB ACCESS enregistrement dans formulaire
Ouvrir un fichier access 2003 sans access...Recherche Programmeur ...
Moteur de recherche en Access[ACCESS]copier zone texte formulaire dans le champ d'une table
[VB ACCESS][VB ACCESS]comment faire un champ texte a valeur unique?
Plus de sujets relatifs à : Mini moteur de recherche sous access


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR