VB6 - Vrai/faux dans un textbox ou une checkbox d'après base de donnée

smilingjoe2 Messages postés 20 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 19 août 2005 - 18 août 2005 à 18:53
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 20 août 2005 à 12:39
bonjour,


j'ai une form qui me permet de selectionner un patient.
La liste des noms est affichée dans une listbox, les infos relatives aux patients sont dans des textbox et 1 checkbox. Infos et noms proviennent d'une table access.

Mon problème se situe au niveau du checkbox qui ne change pas. J'ai essayé differents choses :
.Add Check1, "SelectedValue", "Cathetere", , "cathetere" - text, value à la place de selected value ...
( j'utilise une databound collection)


J'ai aussi essayé d'utilsier un textbox, là les infos arrivent bien, mais sous forme de 0 / -1 à la place du oui/non de la base. Même en mettant le textbox.dataformat à boolean.


quelqu'un aurait-il une idée ? Merci d'avance

11 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
18 août 2005 à 23:29
salut
VB -> True 1 False 0SQL -> True 0 False -1

(de mémoire, à vérifier^^)
PCPT
0
smilingjoe2 Messages postés 20 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 19 août 2005
19 août 2005 à 10:46
Ok. Donc ce que j'obtiens c'est un resultat sql. Mais comment faire pour le 'traduire' soit en français dans ma textbox --> oui/Non
soit pour le faire comprendre par un checkbox ?
J'ai essayé aussi les If
0
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 1
19 août 2005 à 11:51
en VB6 il faut mettre Form1.CheckBox1.Value = Checked ou Form1.CheckBox1.Value = Unchecked

Voilou, j'espère que ça t'aidera.



Bon courage




C2
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
19 août 2005 à 11:55
Je suppose que tu alimentes tes zones avec un recordset fonction d'une requête SQL avec comme critère listbox.value ?
Du style (c'est grossier hein, juste pour donner l'idée ^^) ...

txt_NomPatient.text = Recordset("Nom") si ta table contient un champ Nom,
txt_PrénomPatient.text= Recordset("Prénom")
txt_AgePatient.text = Recordset("Age")
etc ...

Et bien, pour ta checkbox, c'est quasiment la même chose, mais utilise une variable avec, par exemple :

Dim Temp as String
temp = Recordset("Cathetere")

'Comme c'est pour alimenter une checkBox, normalement, tu n'as donc que 2 valeurs possibles dans ce champ.

if temp = "<Contenu de ton champ>" then
chk_Cathetere.value = true
else
chk_Cathetere = false
end if

Et le tour est joué.

Molenn.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
smilingjoe2 Messages postés 20 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 19 août 2005
19 août 2005 à 12:41
En fait, je crée une première requete sql qui compte le nbre d'enregistrement de la BD.
Ensuite je crée une seconde requete qui rempli ma listbox :


RequeteqSql = "SELECT * FROM Patients"
RecPatient.CursorLocation = adUseClient
RecPatient.Open RqSql, Connex, adOpenDynamic, adLockOptimistic, adCmdText
I = 0
RecPatient.MoveFirst

Do While RecPatient.EOF = False
ListPatient.AddItem RecPatient!RefPatient
ListPatient.List(I, 0) = RecPatient!RefPatient
ListPatient.List(I, 1) = RecPatient!Nom

ListPatient.ColumnWidths = "0;"

RecPatientt.MoveNext
I = I + 1
Loop
RecPatientt.MoveFirst


Ensuite je lie les textbox ( et j'aurais aimé le checkbox) à la liste des patients, ainsi, encliquant sur un nom dans la liste, les textbox sont actualisées.
Set Boundpatient.DataSource = RecPatient


With Boundpatient
.Add Pat(0), "Text", "RefPatient", , "Identifiant"
.Add Pat(1), "Text", "Nom", , "Nom du patient"
.Add Pat(2), "Text", "Prenom", , "Prénom du patient"
.Add Pat(4), "Text", "DateNais", , "Date de Naissance"
.Add Pat(5), "Text", "PoidsNais", , "Poids de Naissance"
.Add Pat(6), "Text", "TermeNaisS", , "Terme de Naissance en semaines"
.Add Pat(7), "Text", "TermeNaisJ", , "Terme de Naissance en Jours"
.Add Pat(3), "Text", "Parents", , "Nom des parents"
.Add Pat(8), "Text", "Commentaire", , "Commentaire" 'invisible
.Add Pat(9), "Text", "Cathetere", , "cathetere" ' --- > resultat = 1- / 0
End With


Il est (semble ?) impossible de lier un checkbox avec Boundpatient. Avec un Boundpatient2 ça ne marchait pas non plus.
Donc, j'ai triché ( je sais c'est pas beau) en reprenant un peu de toutes vos sugegstions :


pat(9).visible = false je cache la textbox qui m'em.. ennuyait!


Private Sub Pat_Change(Index As Integer)


Dim Temp As String
Temp = Pat(9)
If Temp = "-1" Then
chk_Cathetere.Value = Unchecked
Else
chk_Cathetere =Checked
End If


End Sub


Merci à tous. 'Ma' solution n'est pas trés propre, mais elle fonctionne alors .......
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 août 2005 à 14:03
"Boundpatient" est une ListView?

désolé, j'ai un peu perdu le fil.
ta checkBox, c'est un bouton radio séparé? ou la propriété de la liste.
ton bidouillage, j'ai vu pire, mais c'est dommage d'en arriver là....

si tu arrive à récupérer maintenant la bonne valeur, supposons un chechbox (CHK), et le résultat [-1 / 0] en variable REZ
CHK.Value IIf(REZ 0, Checked, Uncheched)

l'idée est là.

PCPT
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 août 2005 à 14:04
k*
0
smilingjoe2 Messages postés 20 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 19 août 2005
19 août 2005 à 19:12
Désolé d'avoir été si long, mais ma première réponse était : Hein ?????. Grand débutant, je connaissais pas les listview. Donc j'ai d'abord été voir ce que c'était avant de te répondre. Et donc :
Non, je ne crois pas. Dans ma version (anglais) de vb6, ça s'appelle databoundlist.
Ca se presente comme ça :



Ceci dit, comme je bosse le soir, je vais travailler sur ton idée cette nuit, je donnerais des nouvelles demain matin. Etape 1 : trouver à quoi correspond ta variable REZ .....
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 août 2005 à 19:41
path de ton image en local, donc pas visible ;)

tu récupères "-1" ou "0" dans une txtbox si j'ai bien survolé ;)

et après, tu joues sur le Change....
considère que le ce txtbox, c'est mon REZ. et que ce REZ dans la syntaxe donnée ci-dessus, tu peux remplacer (normalement) ta ligne par la mienne, en y integrant ton code de récupération de la base, à la place du mot "REZ"....

j'préfère pas me relire...

umm, copie moi juste ta ligne exacte de ta récupération du "-1 / 0" et le nom de ton checkbox, je vais te synthétiser çà ;)

bon courage
PCPT
0
smilingjoe2 Messages postés 20 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 19 août 2005
19 août 2005 à 23:58
Décidemment, j'ai vraiment du mal !! Et pour les images et pour les concepts .
La ligne qui récupère le "-1 / 0" : de la Bd vers les textbox ? ou du textbox vers le check ?


Pat = les textbox qui vont de Pat(0) à Pat(9) avec un control array


De la BD vers la textbox :
With Boundpatient
.Add Pat(9), "Text", "Cathetere", , "cathetere"
end with


Du textbox vers le checkbox :


Private Sub Pat_Change(Index As Integer)
Dim Temp As String
Temp = Pat(9)
If Temp = "-1" Then
chk_Cathetere.Value = Checked
Else
chk_Cathetere = Unchecked
End If
End Sub
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 août 2005 à 12:39
salut,
bon, le truc, c'est que rien qu'en posant un DBlist (normalement c'est le même objet que le tien), la fonction ".add", je l'ai pas.
donc dur dur de voir la bonne syntaxe.....
désolé, trop particulier.....

tu disais, au début, que tu arrivais à récupérer la valeur, mais que le checkbox ne changeait pas. (0/1 ~ -1/0)
t'as essayé un truc du genre check1.value = Not (...retour de requête) pour voir si la syntaxe était acceptée?

sinon, récupère ce que tu as mis dans Pat(9) dans une variable (dizons REZ), et .....ci-dessus.... çà devrait aller

PCPT
0
Rejoignez-nous