Faire apparaitre le résultat d'une requête dans une TextBox - VB/VBA/VBS - Programmation
Marsh Posté le 12-02-2004 à 16:09:29
Je trouve ton titre de particulièrement mauvais gout, et je te conseille d'en changer, sinon aucun d'entre nous ne daignera répondre à ta question.
Marsh Posté le 12-02-2004 à 16:10:06
Comment ça ? Et le support de microsoft alors ? Celui qui fait que les solutions libres coutent finalement plus cher que les solutions proprio et payantes ? 
Marsh Posté le 12-02-2004 à 16:24:37
Kadreg: Je ne vois pas où est le mauvais goût, depuis lundi je parcours sites FR, UK et US, idem pour les forums, les tutoriels etc et je n'avance... J'ai acheté un bouquin de merde dont je tairai l'éditeur... Quant à l'aide de microsoft, dans le genre light et répondre à côté de la question c'est pas mal... Alors le titre traduit mon état d'esprit...  
Et pardonnez-moi d'être néophyte, l'informatique, bdd etc c'est pas vraiment mon boulot mais ça m'intéresse (je suis pilote instructeur SEP/MEP/IR/RUVP)... ALors je ne peux pas savoir en quelques heures et en parcourant quelques sites (près de 30) ce qui fait votre métier et que vous avez probablement mis pas mal de temps à maîtriser, peut-être même que vous n'en avez pas fait le tour... 
Alors pour le redire, le titre est mon état esprit et nullement une critique à ceux qui répondent, si tu l'as interprété comme tel, je te fais mes excuses... Mais si je devais reposter ce message, mon titre resterait tel quel... 
Marsh Posté le 12-02-2004 à 16:25:51
| geraldlec a écrit : Kadreg: Je ne vois pas où est le mauvais goût,   | 
 
 
C'est pire que je le pensais ![[:spamafote] [:spamafote]](https://forum-images.hardware.fr/images/perso/spamafote.gif)
Marsh Posté le 12-02-2004 à 16:35:17
franchement, prends des cours de prog, parceque là tes questions elles sont en dessous de la moquette. 
 
même moi qui suis une bite en C# et qui n'achète pas de bouquin et dont tout le monde se fout quand je pose une question débile sur ce langage, je suis sûr que mes questions sont moins ridicules... 
 
while et les concaténations de chaîne, c'est la première leçon de n'importe quel tutorial, faut pas pousser mémé non plus...
Marsh Posté le 12-02-2004 à 23:38:52
franchement dans ce cas-ci, l'objet Command sert surtout à enculer les mouches! 
 
tu fais un  
| Code : 
 | 
 
 
tu balances la requête sur la méthode Execute de la connexion et en voiture Simone, c'est le b.a.ba. ça hein. 
 
putain j'ai été trop gentil, j'ai donné un code tout fait et je vais me faire banner par un modo ![[:itm] [:itm]](https://forum-images.hardware.fr/images/perso/itm.gif)
Marsh Posté le 13-02-2004 à 12:46:39
t'as essayé d'exécuter ta requête dans Access/tonoutild'administration pour voir si ça retournait bien des rows?
Marsh Posté le 13-02-2004 à 12:51:53
un enregistrement, un record. 
 
Elle tourne mais si elle renvoie des rows et pas dans ton appli, ya comme un gros problème  Ca doit renvoyer pareil dans les 2
  Ca doit renvoyer pareil dans les 2 
Marsh Posté le 13-02-2004 à 12:56:13
effectivement ça fait 5 jours que j'essaie de résoudre les problèmes de mon appli... 
Avec ça, ça marche: 
 
Private Sub Command1_Click() 
Dim base As Database 
Dim listeFPROCHE As Recordset 
Dim requete As String 
Set base = OpenDatabase(App.Path & "\base.mdb" ) 
requete = "SELECT * FROM Fproche WHERE THEMES LIKE '" & look & "';" 
    lstResultats.Clear 
    Set listeFPROCHE = base.OpenRecordset(requete) 
    While Not listeFPROCHE.EOF 
    lstResultats.AddItem listeFPROCHE("REF_DVD" ) & " " & listeFPROCHE("THEMES" ) 
    listeFPROCHE.MoveNext 
    Wend 
    listeFPROCHE.Close 
    base.Close 
 
Mais j'essaie la même méthode en passant par là (voir mon premier message), or je n'arrive pas à afficher le résultat de ma requête dans une misérable textbox  
 
Marsh Posté le 13-02-2004 à 13:05:13
dans ton premier post, tu utilises ADO, et ici du DAO. 
 
au fait, ton exemple tout au dessus ne pouvait pas fonctionner pour une raison bête: t'as pas associé ton objet Command à l'objet Connection. En fait perso j'utilise rarement Execute, plutôt ceci: 
 
Call MonRecordset.Open(strSql, MaConnexion)
Marsh Posté le 13-02-2004 à 13:13:41
j'ai saisi la différence entre dao et ado 
mais là je pige que dalle 
je le mets où le  
Call MonRecordset.Open(strSql, MaConnexion)? 
 
j'en suis là: 
 
Private Sub Command1_Click() 
Dim cnx As ADODB.Connection 
Dim cmd As ADODB.Command 
Dim prm1 As ADODB.Parameter 
Dim rst As ADODB.Recordset 
Set cnx = New ADODB.Connection 
Set cmd = New ADODB.Command 
Set prm1 = New ADODB.Parameter 
Set rst = New ADODB.Recordset 
 
cnx.Provider = "Microsoft.Jet.Oledb.4.0" 
cnx.ConnectionString = App.Path & "\base.mdb" 
cnx.Open 
 
cmd.CommandText = "SELECT * FROM Fproche WHERE themes = hebdo" 
 
Set rst = cmd.Execute 
End Sub 
Marsh Posté le 13-02-2004 à 13:21:23
vire toute ligne comprenant "cmd". 
la ligne avec le recordset doit être la dernière.
Marsh Posté le 13-02-2004 à 13:35:03
t'ain... 
 
Private Sub Command1_Click()  
Dim base As Database  
Dim listeFPROCHE As Recordset  
Dim requete As String  
Set base = OpenDatabase(App.Path & "\base.mdb" )  
requete = "SELECT * FROM Fproche WHERE THEMES LIKE '" & look & "';"  
Set listeFPROCHE = base.OpenRecordset(requete)  
TextBox1.Text = "" 
While Not listeFPROCHE.EOF  
    TextBox1.Text = TextBox1.Text & listeFPROCHE("REF_DVD" ) & " " & listeFPROCHE("THEMES" ) & vbCrLf 
    listeFPROCHE.MoveNext  
Wend  
listeFPROCHE.Close  
base.Close 
 
 
Je te jure, si ça résoud ton problème, va te cacher très loin, parceque c'est pitoyable de faire plancher tout le monde parceque tu n'a pas pris la peine de voir comment marchait un textbox et la concaténation de chaîne.
Marsh Posté le 13-02-2004 à 13:40:44
désolé de faire chier tout le monde, j'ignorais que ce forum était réservé aux initiés, et si ce topic t'emmerde, et bien zappe le et ne t'occupe pas de moi 
 
En tout cas merci à ceux qui sont impatients et qui s'impliquent 
Marsh Posté le 13-02-2004 à 13:51:59
Y'a pas d'élitisme qui tien franchement... 
 
Tu crées un contrôle de type "TextBox" pour mettre tes données dedans. 
 
Le premier truc que tu fais ensuite dans VB, c'est NomDuTextBox suivit d'un point, et ô miracle, une liste apparaît avec toutes ses propriétés. 
 
C'est pas compliqué de chercher ensuite dans la liste ce qui est succeptible de modifier le texte qui est dedans... surtout quand ça s'appelle ".Text" 
 
Quant à la concaténation, bah je regrette, mais c'est quand même le b.a-ba quand tu apprends un langage, que veux-tu pouvoir programmer si tu ne sais pas concaténer deux chaînes ensemble ? 
 
Je reprends ma première réponse : tu trouves une réponse à ton problème dans le premier tuto débile de VB... 
 
Regarde ce lien (tuto débile épisode 1) et tu as ta réponse. 
http://pages.cpsc.ucalgary.ca/~sau [...] tutorial1/ 
 
Regarde ensuite les deux derniers paragraphes : 
 
MSDN Visual Basic Documentation 
et 
MSDN Sample Programs: The Location!! 
 
Combiné à l'aide native de VB qui couvre largement ce dont on a besoin pour démarrer, t'as plus aucune excuse pour poser des questions aussi bateau. 
 
Que tu aies un problème pour te connecter à la base, ou que ton appli plante parceque tu fous des valeurs null dans un champ, je comprends que ces problèmes de débutant puissent dérouter. Mais là, c'est quand même un peu gros.
Marsh Posté le 13-02-2004 à 14:03:17
geraldlec >> désolé j'ai édité ton titre qui ne voulait vraiment rien dire et qui manque de respect vis à vis des personnes qui ont de *vrais* problèmes dans leur vie 
 
MagicBuzz >> OK, son cas est très simple, mais ce qui est évident pour toi ne l'est pas forcément pour lui vu que l'info n'est pas son métier. Quand tu auras appris à maitriser les VORs, DME et autres feux VASI aussi bien que lui (à moins qu'il n'ait que la certification VFR), tu pourras peut être le prendre de haut
Marsh Posté le 13-02-2004 à 14:03:37
bin la text box ne me pose pas de problème, ni la listresult, ce qui me pose probleme c'est exécuter la requête et afficher le resultat en ado... en dao ça marche mais pas ado... et pouquoi je m'emmerde à essayer de le faire en ado alors que ça marche en dao, parce que ça m'intéresse de voir les 2 méthodes... 
et encore pardon de devoir passer par la phase débutant...  
 
en fait je pense que tu n'as pas bien lu ma question initiale.. comme dans l'autre topic où je demandais ce que worksheet était et que tu me réponds "bin c ta feuille", alors que dans access il n'y a pas de feuilles... 
 
Alors je vais aller faire un tour sur le site dont tu me parles, mais pas pour le tutoriel 1, mais les suivants. 
 
Quant à toi je te suggère d'apprendre à lire entre les lignes; savoir lire c'est une chose (ne pas savoir lire c'est être analphabête), comprendre en est une autre, ne pas comprendre c'est l'illétrisme. 
 
Encore une fois, personne ne t'oblige à lire ce topic... C
Marsh Posté le 13-02-2004 à 14:04:35
C'est comme la vente, la formation etc... Quand on aime pas, on change de métier.
Marsh Posté le 13-02-2004 à 14:05:40
| geraldlec a écrit :   | 
 
Euh du calme hein, sinon je ferme 
Marsh Posté le 13-02-2004 à 14:09:40
| Harkonnen a écrit : geraldlec >> désolé j'ai édité ton titre qui ne voulait vraiment rien dire et qui manque de respect vis à vis des personnes qui ont de *vrais* problèmes dans leur vie  | 
 
[truc qu'à rien à voir] 
Je sais m'en servir des trucs de navigation aérienne, je fais du filght sim tous les soirs  chais même atterrir en full auto maintenant (juste un crash sur 2
 chais même atterrir en full auto maintenant (juste un crash sur 2  )
) 
[/truc qu'à rien à voir]
Marsh Posté le 13-02-2004 à 14:10:38
Je suis d'accord avec toi pour le titre Harkonnen... mais hier j'étais vraiment désappointé... Pour info je suis instructeur IR, c'est à dire IFR, donc oui si je maîtrisais vb6 comme je maîtrise le vol aux instruments je ne poserai pas ces questions "bêtes" pour certains. Par contre j'y répondrai simplement et gentiment, parce que je suis instructeur, mon métier c'est d'enseigner et que je serai tout simplement présent sur ce forum...
Marsh Posté le 13-02-2004 à 14:14:09
| geraldlec a écrit : bin la text box ne me pose pas de problème, ni la listresult, ce qui me pose probleme c'est exécuter la requête et afficher le resultat en ado... en dao ça marche mais pas ado... et pouquoi je m'emmerde à essayer de le faire en ado alors que ça marche en dao, parce que ça m'intéresse de voir les 2 méthodes...  | 
 
Je cite : 
 
----------------- 
Hello  
  
Aucun site, tutoriel ou forum n'explique clairement comment afficher le résultat d'une requête.. Quant à l'aide c'est une usine à gaz...   
  
Quand on a ça (ci-dessous), comment fait-on apparaître dans une text box ou autre chose le resultat de la requete ?? 
----------------- 
 
Pour moi, tu sais pas récupérer les infos de ta requête dans un textbox, point barre. Y'a pas d'ADO ou DAO qui tiens. 
 
Donc : 
1) pose des vraies questions 
2) poste ton vrai problème 
 
Parceque jusqu'à présent, on a des "ça marche pas" mais on n'a aucun symptôme. Si t'as un message d'erreur, poste-le, si t'as un problème d'interprétation, poste-le. Au moins on saura ce qui va pas. 
 
Franchement, quand tu vas chez le médecin, tu lui dis "je vais pas bien" avec un regard de chien battu ? Je pense pas. Tu va plutôt lui dire "je me sens fébril et je tousse sans arrêt", ça lui évitera de te faire une coloscopie pour rien.
Marsh Posté le 13-02-2004 à 14:15:18
| MagicBuzz a écrit :   | 
 
lopette  
 
quand tu feras atterrir un DC-3 en manuel par temps de pluie et grand vent de travers en pleine nuit sur un aéroport sans ILS, on en reparlera  
 
 
| geraldlec a écrit : Je suis d'accord avec toi pour le titre Harkonnen... mais hier j'étais vraiment désappointé... Pour info je suis instructeur IR, c'est à dire IFR, donc oui si je maîtrisais vb6 comme je maîtrise le vol aux instruments je ne poserai pas ces questions "bêtes" pour certains. Par contre j'y répondrai simplement et gentiment, parce que je suis instructeur, mon métier c'est d'enseigner et que je serai tout simplement présent sur ce forum...  | 
 
l'incident est clos  
 
restez courtois, c'est tout ce que je vous demande. surtout que vous avez surement bcp à apprendre l'un de l'autre si le Buzz se sert encore du pilote automatique pour atterrir sur FS 2k4 ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif)
Marsh Posté le 13-02-2004 à 14:22:01
Quand à l'autre post, ouais, j'ai dis "ben c'est ta feuille". 
 
Parceque j'ai juste lu le premier post où tu donnes aucune info (je viens juste de découvrir que tu fais une macro VBA dans Access et non pas un programme VB), et ensuite, je suis le premier à avoir demandé aux autre d'arrêter de te donner des exemples Excel. Moi je t'ai donné aucun exemple de ce type. Alors je lis pas dans les lignes de la main, mais certains de plus bonne fois que moi lisent pas mieu, alors m'insulte pas sur ce point quand c'est d'autant plus insultant pour ceux qui perdent leur temps à t'aider. 
 
 
Si je le lance un SOS radio en te disant "ouin ! je perds de l'altitude, je vais me crasher" 
tu vas bêtement me répondre "augmente les gaz, reprend de la portance, et tire progerssivement le manche à balais". seulementy t'as pas sû lire entre les lignes mon pote, je suis en planeur, j'ai pas de manette des gaz. tes posts sont du même niveau, alors je perds mon temps à répondre ici, parceque ce topic me fait chier à remonter sans arrêt, mais de ton côté, fait au moins l'effort de poser clairement ton problème.
Marsh Posté le 13-02-2004 à 14:23:19
Euh comme a dit le représentant de la maison des Harkonnen, "ce qui est évident pour toi ne l'est pas forcément pour lui vu que l'info n'est pas son métier"... 
 
Enfin bref... 
Voila en je suis, j'ai viré les cmd comme me le conseillais drasche, donc j'ai ça... et du coup je ne sais même plus comment exécuter ma requête SQL: 
 
Private Sub Command1_Click() 
Dim cnx As ADODB.Connection 
Dim prm1 As ADODB.Parameter 
Dim rst As ADODB.Recordset 
Set cnx = New ADODB.Connection 
Set prm1 = New ADODB.Parameter 
Set rst = New ADODB.Recordset 
cnx.Provider = "Microsoft.Jet.Oledb.4.0" 
cnx.ConnectionString = App.Path & "\base.mdb" 
cnx.Open 
'cmd.CommandText = "SELECT * FROM Fproche WHERE themes = hebdo" 
Call MonRecordset.Open(strSql, MaConnexion) 
End Sub 
donc pas de requête et pas d'affichage 
quant à msdn, c'est d'un clair... 
(c comme dans fs2004, je trouve super le tutoriel du vol aux instruments  apprends avec ça et pars en vol de nuit ou par visi 0, on va rire
 apprends avec ça et pars en vol de nuit ou par visi 0, on va rire  
 
Marsh Posté le 13-02-2004 à 14:25:54
pour remettre dans le contexte: 
 
| Code : 
 | 
 
 
Hop la requête est là puis tu fais ton traitement de remplissage (qui était une ListBox si j'ai bien vu le second code, et non une textbox  )
)
Marsh Posté le 13-02-2004 à 14:26:24
| Harkonnen a écrit :   | 
 
pour info, atterrir avec le pilote auto est bien plus difficile qu'en manuel, parceque l'avion fait ce qui lui plaît, et le temps que tu détecte un problème, t'es déjà bien dans la merde. en manuel, tu sens si l'avion se comporte bizarrement. fait un atterrissage full auto avec un vent de travers avec des rafales, tu vas voir ce que ça va donner.
Marsh Posté le 13-02-2004 à 14:28:11
au fait, un exemple complet de lecture et parcours d'un recordset ADO dans ma signature (c'est pas une DB Access mais ça change rien à la suite).
Marsh Posté le 13-02-2004 à 14:31:52
sqlBT =	"..." 
 
dim rsBT 
set rsBT = CreateObject("ADODB.RecordSet" ) 'Ca marche aussi comme ça 
set rsBT.ActiveConnection = cnx 
rsBT.Open sqlBT 
 
' affichage 
 
rsBT.Close 
set rsBT = Nothing 
 
 
Tu fous ça juste après le cnx.open
Marsh Posté le 13-02-2004 à 14:32:34
Si tu perds de l'altitude et que tu lances en sos c'est que t en limite de portance (ou en dessous de la VSO), donc je te répondrai de mettre du manche en avant pour prendre de la vitesse, que tu sois en vol moteur ou non aucune importance... C'est ça lire entre les lignes.
Marsh Posté le 13-02-2004 à 14:38:29
oui surtout que pour atterrir en auto il faut la qualif, que l'appareil soit équipé du système et idem pour l'aéroport... tu ne te poses pas en auto sur l'altiport de megève par exemple  
 
Y a un proverde africain qui dit "manger une noix de coco c'est faire confiance à son anus"  
 
Pour info j'adore fs2004, c'est très formateur pour l'avionique et la nav... Mais comme dit Harkonnen, poser un DC3 sur courte piste par vent de travers... Ca c'est du sport  surtout qu'un dc3 quand tu remets les gaz... et bien ça réagit lentement... lentement... lentement...
 surtout qu'un dc3 quand tu remets les gaz... et bien ça réagit lentement... lentement... lentement...  
  
 
Drasche, je vais voir tout ça et vous tiens au courant (ou vous casse les pieds) bientôt  
 
 
et tout cas merci à tous 
Marsh Posté le 13-02-2004 à 14:40:31
ça dépends, si je suis comme toi et que j'y comprends rien à ce que je fais, c'est peut-être simplement parceque j'ai déjà poussé le manche vers le bas, et donc pousser un peu plus, ça va rien arranger.
Marsh Posté le 13-02-2004 à 14:42:01
ben là c'est la même chose, c'est vraiment de ce niveau, et c'est pour ça que ça m'aggace : y'a une donnée sur 10 dans la demande, et on sait pas réellement ce qui merde. alors y'a une infinité de problèmes possible, et on peut être bons ou être profs de VB, ça changera rien : on peut pas répondre à une question qui n'est pas complète.
Marsh Posté le 13-02-2004 à 14:44:06
au fait un dc3 ne peut atterrir en full auto... il n'est pas équipé... D'ailleurs il n'existe pas vraiment de système d'atterrissage automatique, mais de catégorie de système d'attero auto...  si vous voulez un topo... fillez moi vos mails parce que là ça rique d'être long...
 si vous voulez un topo... fillez moi vos mails parce que là ça rique d'être long... 
Marsh Posté le 12-02-2004 à 16:07:52
Hello
 
  
Aucun site, tutoriel ou forum n'explique clairement comment afficher le résultat d'une requête.. Quant à l'aide c'est une usine à gaz...
Quand on a ça (ci-dessous), comment fait-on apparaître dans une text box ou autre chose le resultat de la requete ??
Merci
'Déclaration des variables
Dim cnx As ADODB.Connection
Dim cmd As ADODB.Command
Dim prm1 As ADODB.Parameter
Dim rst As ADODB.Recordset
'Instanciation des variables
Set cnx = New ADODB.Connection
Set cmd = New ADODB.Command
Set prm1 = New ADODB.Parameter
Set rst = New ADODB.Recordset
'Connexion à la base de données
cnx.ConnectionString = "Provider=" & PiloteDaccesAlaBaseDeDonnées & ";DSN=" & NomDuDSN & ";UID=" & NomUtilisateur & ";PWD=" & MotDePasse & ";"
cnx.Open
'Préparation de l'objet Command
cmd.CommandText = "SELECT * FROM Client WHERE nom = ?"
'Préparation du paramètre
prm1.Name = "nom" 'Nom du champ correspondant
prm.Type = adVarChar 'Type du champ
prm.Direction = adInput 'Type de paramètre : Entrée, Sortie, Entrée/Sortie
prm.Size = 40 'Taille maximale du champ
prm.Value = "Dupond" 'Valeur du paramètre
'Exécution de la requête
Set rst = cmd.Execute
Message édité par geraldlec le 13-02-2004 à 14:00:27