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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  (Resolue) comment afficher le resultat dans les zones de texte ?

 


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

(Resolue) comment afficher le resultat dans les zones de texte ?

n°754503
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 11:13:48  profilanswer
 

Bonjour messieur
j'ai un petit probleme : je doit effectuer un formulaire sous access
sur la gestion des clients et prospection. Jusque la pas de probleme
seulement l'entreprise a plus de 2000 contact et je doit donc y inclure un bouton de recherche sur le nom de l'entreprise et replir les zone de texte avec le resultat . j'ai pensé a un requete qui marche ( le resultat est celui attendu mais je ne sait pas comment mettre le resultat dans les zones de texte
si quelqu'un peut m'aider ...
merci d'avance


Message édité par Mr Mazurier le 24-06-2004 à 14:46:21
mood
Publicité
Posté le 07-06-2004 à 11:13:48  profilanswer
 

n°754524
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 11:21:59  profilanswer
 

je pense que ca doit se faire avec du vba mais j'ai du mal avec ca ...

n°754608
tegu
Posté le 07-06-2004 à 12:51:48  profilanswer
 

Ta zone de texte a un nom
Il suffit de faire:  
nom_zone_de_texte = résultat
 
Maintenant je ne suis pas sûr de comprendre sous quelle forme tu obtiens ton résultat.
S'il s'agit d'un résultat issu de l'exécution d'une requête, ça complique un peu les choses.
Cela peut dépendre aussi de l'événement déclencheur.
 
La syntaxe suivante vaut pour un résultat obtenu par une requête nommée "Requête1" renvoyant au moins un champ nommé "resultat", déclenchée en cliquant sur un bouton "Command1". La zone de texte est nommé "ZoneTexte".
 
Dans les propriétés du bouton, aller dans l'événement "Sur Clic" et choisir [procédure événementielle]" puis cliquer sur le bouton [...] à côté.
Copier le code suivant à la place des lignes existantes en adaptant les noms de variables, requetes...


Private Sub Commande1_Click()
    Dim rs As Recordset ' déclaration variable de type jeu d'enregistrements
     
 ' exécution requete
    Set rs = DBEngine.Workspaces(0)(0).OpenRecordset("Requête1" )
 
 ' vérification si le jeu d'enregistrements est vide
    If Not rs.BOF Then
        ZoneTexte = rs!resultat
    End If
     
 ' fermeture du jeu d'enregistrements
    rs.Close
 
 ' désinitialisation de la variable de jeu d'enregsitrements
    Set rs = Nothing
End Sub


J'espère t'avoir aidé


Message édité par tegu le 07-06-2004 à 12:53:09
n°754814
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 14:10:02  profilanswer
 

je te remercie ca m'avance beaucoup je vais essayer mais le probleme c'est que cette requete renvoi plusieur champs
donc je ne sais pas si cela marchera de toute facon je vais essayer je te remercie

n°754910
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 15:02:42  profilanswer
 

je rencontre un petit souci : il me dit qu'il ne peut pas trouver la table ou la requete source
pourtant le nom est bien le meme il me met en jaune la ligne d'execution de la requete

n°754946
JihemAir
Je sais pas
Posté le 07-06-2004 à 15:34:52  profilanswer
 

Montre un peu le code....

n°754970
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 15:49:47  profilanswer
 

voila mon code (je suis pas un pro mais j'ai repris l'exemple)
Private Sub Commande146_Click()
    Dim rs As Recordset ' déclaration variable de type jeu d'enregistrements
     
 ' exécution requete
    Set rs = DBEngine.Workspaces(0)(0).OpenRecordset(Requête_Recherche)
 
 ' vérification si le jeu d'enregistrements est vide
    If Not rs.BOF Then
        Texte147.Text = rs!resultat
    End If
     
 ' fermeture du jeu d'enregistrements
    rs.Close
 
 ' désinitialisation de la variable de jeu d'enregsitrements
    Set rs = Nothing
End Sub

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

c'est l'execution requete qui foire ou en tout cas au moins elle
il la surligne en jaune

n°754976
JihemAir
Je sais pas
Posté le 07-06-2004 à 15:53:10  profilanswer
 

Il faut mettre le nom de la requête entre guillemets:
Set rs = DBEngine.Workspaces(0)(0).OpenRecordset("Requête_Recherche" ).

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

j'ai essayé au debut mais il m'a dit la meme chose alors j'ai testé sans

mood
Publicité
Posté le 07-06-2004 à 16:04:50  profilanswer
 

n°754996
JihemAir
Je sais pas
Posté le 07-06-2004 à 16:12:04  profilanswer
 

Essaie plutot ça parce que le Workspaces(0)(0) est louche.
 
Set rs = CurrentDb.OpenRecordset("Requête_Recherche" )

n°755003
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 16:17:29  profilanswer
 

maintenant il me dit qu'il y a "trop peu de parametre.1 attendu

n°755004
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 16:17:54  profilanswer
 

oki j'essaie

n°755008
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 16:20:05  profilanswer
 

il dit comme plus haut : "trop peu de parametre.1 attendu  
Private Sub Commande146_Click()
    Dim rs As Recordset ' déclaration variable de type jeu d'enregistrements
     
 ' exécution requete
    Set rs = CurrentDb.OpenRecordset("Recherche" )
 
 ' vérification si le jeu d'enregistrements est vide
    If Not rs.BOF Then
        Texte147.Text = rs!resultat
    End If
     
 ' fermeture du jeu d'enregistrements
    rs.Close
 
 ' désinitialisation de la variable de jeu d'enregsitrements
    Set rs = Nothing
End Sub
j'ai aussi changé le nom de la requete mais c'est pas ca le pb

n°755021
JihemAir
Je sais pas
Posté le 07-06-2004 à 16:25:49  profilanswer
 

C'est parce que la requête attend un paramètre.

n°755025
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 16:27:25  profilanswer
 

je pense bien mais je voudrais savoir quoi
je me debrouille avec access mais j'ai encore un peu de mal avec vba

n°755048
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 16:35:19  profilanswer
 

en fait je suis en bts info et je fais mon stage de 1ere année maisj'arrive pas a faire ce truc je comprend pas  
enfin merci quand meme a vous pour l'aide
on devrai y arriver

n°755057
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 16:38:31  profilanswer
 

a je crois comprendre
il veut le nom de l'entreprise
excuse j'avais pas compris le sens de ta phrase
mais alors je met quoi comme code pour que le nom de l'entreprise soit envoyé a la requete ?
voila ma requete : (rien de plus simple )
 
SELECT *
FROM entreprise
WHERE ent_nom=[Quel est le nom de l'entreprise ?];
 
donc je pense qu'il veut le nom
j'y ait meme pas pensé
mais je sais pas comment faire

n°755058
JihemAir
Je sais pas
Posté le 07-06-2004 à 16:38:55  profilanswer
 

Code :
  1. Dim rs As Recordset
  2. Dim qdReq As QueryDef
  3. Dim strNom As String
  4.     Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM FaEnCours WHERE FaEnCours.Initiales=" & strNom & ";" )
  5.     Set rs = qdReq.OpenRecordset


 
Perso, j'utilise plutot ça. Ca permet de passer construire la chaine SQL avec le paramètre dedans. C'est moins rapide qu'une requête stockée, mais c'est plus simple.

n°755074
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 16:46:15  profilanswer
 

j'ai tapé ca  
 
Private Sub Commande146_Click()
    Dim rs As Recordset
  Dim qdReq As QueryDef
  Dim strNom As String
   
      Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise WHERE ent_nom.entreprise=" & strNom & ";" )
      Set rs = qdReq.OpenRecordset
 
End Sub
 
 
il me mets : type defini par l'utilisateur non defini
desole je suis pas tres bon .... snif
 

n°755117
tegu
Posté le 07-06-2004 à 17:01:16  profilanswer
 

En regardant vite fait, ça doit être la clause WHERE où il manque des quotes parce que ton champ contient du texte
 


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


 
Note bien les deux quotes ajoutées:  '" & strNom & "'


Message édité par tegu le 07-06-2004 à 17:02:21
n°755130
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 17:06:11  profilanswer
 

ok merci mais il me dit la meme chose et souligne ca :
 
Dim qdReq As QueryDef
 
c'est mal defini ?

n°755196
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 07-06-2004 à 17:57:52  profilanswer
 

si quelqu'un a une solution, vous pouvez poster mais je reviens que demain a 9h00
merci a tous ceux qui m'ont aidé

n°755731
JihemAir
Je sais pas
Posté le 08-06-2004 à 07:51:33  profilanswer
 

Désolé pour les quotes. Elles ont disparues pendant le bidouillage du Copier/Coller posté + haut.
 
Dans la menu Outils, Références, assure toi que "Microsoft DAO ....." est bien coché, pour avoir QueryDef défini.

n°755796
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 09:36:05  profilanswer
 

ok mais y a le meme message d'erreur mais sur :
     Set rs = qdReq.OpenRecordset
 
si je comprend bien cette commande va ouvrir un champ pour le resultat de la requete c'est ca ?

n°755877
JihemAir
Je sais pas
Posté le 08-06-2004 à 10:10:31  profilanswer
 

Vi, c'est presque ça. La liste des enregistrements retournés par la requête est dans rs. Après, tu accèdes à chaque champ d'un enregistrement par rs.Fields("Nom_champ" ). Donc, tu boucles sur tous les enregistrements de rs et tu extraits ce dont tu as besoin.
Do While Not rs.EOF
    Debug.Print rs.Fields("Nom_champ1" )
    Debug.Print rs.Fields("Nom_champ2" )
    rs.MoveNext
Loop
 

n°755902
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 10:22:24  profilanswer
 

ok et pour le mettre dans une zone de texte je tape
texte1.text=debug.print rs.field("nom_champ1" )
 
c'est ca ?
on arrive au bout quand meme

n°755914
tegu
Posté le 08-06-2004 à 10:26:30  profilanswer
 

Non tu tapes simplement

texte1.text = rs.field("nom_champ1" )


 
La fonction debug.print permet d'afficher le contenu d'une variable dans la fenetre d'execution (une fenetre de debugage quoi)
 

n°755918
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 10:28:46  profilanswer
 

je vous remerci tous les mecs je vais essayer comme ca  
je repasse si j'ai un probleme
euh juste une question, vous faites de la prog depuis combien de temps et avec quel langage

n°755936
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 10:39:25  profilanswer
 

voila ce que j'ai ecris
 
 
Private Sub Commande146_Click()
  Dim rs As Recordset
  Dim qdReq As QueryDef
  Dim strNom As String
   
      Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise WHERE ent_nom.entreprise='" & strNom & "';" )
      Set rs = qdReq.OpenRecordset
       
Do While Not rs.EOF
    Debug.Print rs.Fields("ent_nom" )
    Debug.Print rs.Fields("ent_adr" )
    rs.MoveNext
Loop
      Texte147.Text = rs.Fields("ent_nom" )
      texte148.Text = rs.Fields("ent_adr" )
End Sub
 
seulement moi je veux que ce soit l'utilisateur qui tape le nom de l'entreprise mais l'ordi ne me le demande pas je pensais qu'il me mettrai une boite de dialogue ou bien faut il que je tape le nom de l'entreprise dans un texte box et que l'rodi recupere cette valeur ?
dans ce cas la ce serait un truc comme ca non ?
 
Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise WHERE ent_nom.entreprise='texte1';" )

n°755980
JihemAir
Je sais pas
Posté le 08-06-2004 à 11:06:11  profilanswer
 

Utilise un truc du genre

Code :
  1. strNom = InputBox("Nom de l'entreprise?" )


juste avant le "Set qdReq = .."
Ca posera la question à l'utilisateur. Et tu laisses la requete comme elle est.

n°756005
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 11:15:11  profilanswer
 

merci beaucoup

n°756072
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 11:38:06  profilanswer
 

Bon maintenant ca donne ceci
 
 
Private Sub Commande146_Click()
  Dim rs As Recordset
  Dim qdReq As QueryDef
  Dim strNom As String
      strNom = InputBox("Nom de l'entreprise?" )
      Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise WHERE ent_nom.entreprise='" & strNom & "';" )
      Set rs = qdReq.OpenRecordset
       
  Do While Not rs.EOF
      Debug.Print rs.Fields("ent_nom" )
      Debug.Print rs.Fields("ent_adr" )
      rs.MoveNext
  Loop
  Texte147.Text = rs.Fields("ent_nom" )
  Texte149.Text = rs.Fields("ent_adr" )
End Sub
 
 
et il me dit encore qu'il manque un paramtre :
trop peu de parrametre. 1 attendue
je comprend pas !

n°756147
JihemAir
Je sais pas
Posté le 08-06-2004 à 11:58:27  profilanswer
 

Ben mon vieux! Tu rames grave!!
 
Avant le InputBox, ça marchait ?
Sur quelle ligne il bloque ?

n°756176
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 12:07:42  profilanswer
 

il bloque sur : Set rs = qdReq.OpenRecordset
je sais mais j'ai pas l'habitude vba et je commence en prog
enfin c'est vite dit
desole  
en tout cas au moins vous me prenez pas de haut
c'est cool merci

n°756181
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 12:08:20  profilanswer
 

ah j'oublié je reviens a 2 heure alors vous étonnez pas si je repond pas  
bon ap a tous !

n°756241
JihemAir
Je sais pas
Posté le 08-06-2004 à 12:29:23  profilanswer
 

Mr Mazurier a écrit :

ah j'oublié je reviens a 2 heure alors vous étonnez pas si je repond pas  
bon ap a tous !

Bon ben... bon ap' alors...
 
On remet les choses à plat. Colle tout ça pour remplacer ton code.

Code :
  1. Dim rs As Recordset
  2. Dim qdReq As QueryDef
  3. Dim strNom As String
  4.     strNom = InputBox("Nom de l'entreprise?" )
  5.     Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom LIKE '" & strNom & "';" )
  6.     Set rs = qdReq.OpenRecordset
  7.      
  8.     Texte147.Text = rs.Fields("ent_nom" )
  9.     Texte149.Text = rs.Fields("ent_adr" )

Si ça ne marche pas, je sais plus... :??:  
Remarque que le signe = est remplacé par LIKE dans la clause WHERE. C'est pour s'affranchir de pbs d'auretograffe. Après, on affinera.

n°756485
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 14:21:08  profilanswer
 

maintenant il me dit ca ..... j'en ai marre !
 
erreur de type '13'
icompatibilité de type
      Set rs = qdReq.OpenRecordset
 
 
ca voudrait dire si je comprend bien que les déclaration ne sont compatible avec le type de données du resultat mais pourtant le resulat c'est du texte alors je vois pas
 
ah au fait, les Commande SQL, je les comprends je vois ca en cours mais c'est pour le VBA . j'ai l'habitude avec VB mais je fais pas programme dans ce genre la  
 
en gros ce ki devrai se passé c'est :
             Nom de l'entreprise ?
                    BlueCom
             et là il devrai renvoyer Bluecom et son adresse
             ( je pense que vous aviez compris )
 
je pense que j'ai fait une toute petite conneries et ca fait tout foirés
 
dernier chose : le truc DAO c'est Microsoft DAO 3.6 Library Object c'est bien ca ?

n°756516
JihemAir
Je sais pas
Posté le 08-06-2004 à 14:31:08  profilanswer
 

Oui, c'est celle la. Précise dans les déclarations:
Dim rs As DAO.Recordset
Dim qdReq As DAO.QueryDef

n°756546
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-06-2004 à 14:39:58  profilanswer
 

je comprend pas ce coup ci :
 
erreur de compilation
declaration existante dans la portée en cour
 
  il souligne ca : Dim rs As DAO.Recordset
 
il a pas aimé la modif
 
 

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  (Resolue) comment afficher le resultat dans les zones de texte ?

 

Sujets relatifs
[VBA] afficher mes données excel dans une listboxremplaer un caractere dans une chaine (champs texte)
pas de resultat de requeteAfficher un programme C++ Win32 sur le bureau, comment faire ?
Extraire un mot d'un texte sous Access[ALGO] Afficher un arbre de manière optimale
[PHP/MySQL] Afficher une fiche avec une url variable[JAVA]Comment insérer un texte dans un fichier audio?
[C++] Afficher la liste de tout les périfériques du système 
Plus de sujets relatifs à : (Resolue) comment afficher le resultat dans les zones de texte ?


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