Probleme d'actualisation de combo box [VB] - Programmation
Marsh Posté le 09-04-2001 à 12:55:39
enfin qqun....
Pour la methode refresh, je sais, jai essaye mais sans succes... je ne comprend pluis et je suis carrement depite
Marsh Posté le 09-04-2001 à 15:09:48
est_ce que tes listes sont reliées à une BDD?
T'as essayer refresh sur ta form et sur ta liste?
Qu'est-ce que tu souhaite obtenir?
Marsh Posté le 09-04-2001 à 15:24:39
en fait, je fais la connection a la data base moi meme, donc elle est independante, et meme si je remplace index par un entier valide il veut pas....
Objectif: preselectionne dans une combobox una ligne dont on connait l'itemdata, dou parcours de tous les elements et test de tous les items datas..
Marsh Posté le 09-04-2001 à 15:39:06
je vois pas, essaye sur www.vbfrance.com, il doit y avoir des mecs plus calés!
Si j'ai une idée...
Bon courage, moi aussi je suis en stage
Marsh Posté le 10-04-2001 à 15:20:43
toujours pas de reponses????
PS: vbfrance.com nexiste pas ?!?
Marsh Posté le 10-04-2001 à 15:29:48
http://www.vbfrance.com
Y avait une virgule qui trainait...
Marsh Posté le 10-04-2001 à 15:33:13
Tu pourrais pas donner le code de toutes ta procédures, afin d'y voir plus clair...Parce que dans tes 5 lignes, je vois rien qui cloche!
Marsh Posté le 10-04-2001 à 16:00:24
cest justement ca le pb: il ny a rien qui cloche dans la procedure, dautant plus que le reste na rien a voir avec la combobox, jai pense que le fais de lire, puis modifier la valeur pose peut etre probleme, mais je ne sais pas plus
Marsh Posté le 10-04-2001 à 16:16:14
Quelques lignes de plus...
Le problème vient peut etre du type de Index (long ou integer).
et pis tout dépend de la taille de ta combo.
Marsh Posté le 10-04-2001 à 16:39:14
Private Sub p_table_Click()
If modifier = True Then
Set connection = New ADODB.connection
connection.ConnectionString = "driver={SQL Server};server= ;uid= ;pwd= ;database=TEST"
connection.ConnectionTimeout = 30
connection.Open
Set record = New ADODB.Recordset
record.ActiveConnection = connection
record.Open "select * from _materiel where id_materiel = " & p_table.TextMatrix(p_table.Row, 0)
Form3.Show
Form3.nouveau = False
Form3.modifier = True
Form3.p_id_departement.Text = ""
Form3.p_id_departement.Enabled = False
Form3.p_bnumber.Text = record.Fields(1)
Form3.p_bnumber.Enabled = False
Form3.p_cout.Text = record.Fields(4)
Form3.p_date_deb.Text = record.Fields(6)
Form3.p_date_fin.Text = record.Fields(7)
Form3.p_divers.Text = record.Fields(22)
Form3.p_harddisk.Text = record.Fields(12)
Form3.p_localisation.Text = record.Fields(5)
Form3.p_processeur.Text = record.Fields(10)
Form3.p_marque.Text = record.Fields(8)
Form3.p_modele.Text = record.Fields(9)
Form3.p_ram.Text = record.Fields(11)
Form3.p_reference.Text = record.Fields(3)
Form3.p_type.ListIndex = RTrim(record.Fields(2))
Form3.p_ip1.Text = record.Fields(13)
Form3.p_ip2.Text = record.Fields(14)
Form3.p_ip3.Text = record.Fields(15)
Form3.p_ip4.Text = record.Fields(16)
Form3.p_mac1.Text = record.Fields(17)
Form3.p_mac2.Text = record.Fields(18)
Form3.p_mac3.Text = record.Fields(19)
Form3.p_mac4.Text = record.Fields(20)
For Index = 0 To Form3.p_id_user.ListCount - 1
If Form3.p_id_user.ItemData(Index) = RTrim(record.Fields(23)) Then
Form3.p_id_user.ListIndex = Index
Exit For
End If
Next
For Index = 0 To Form3.p_id_contrat.ListCount - 1
If Form3.p_id_contrat.ItemData(Index) = RTrim(record.Fields(24)) Then
Form3.p_id_contrat.ListIndex = Index
Exit For
End If
Next
Form3.p_id_contrat.Enabled = False
MsgBox "message de debogage", vbOKOnly, "Problème"
Form6.Hide
connection.Close
ElseIf attribuer = True Then
Form6.Hide
Form5.Show
Form5.WindowState = 2
Else
MsgBox "ERREUR -> Selectionner un mode: Modification ou Attribution des clés"
End If
End Sub
Marsh Posté le 11-04-2001 à 02:56:48
jai un doute...
la comparaison n'est pas fausse?
Form3.p_id_user.ItemData(Index) = RTrim(record.Fields(23))
le .Itemdata(Index) retourne un long et RTrim retourne un string sans les espaces.....
c'est pas plutot
Form3.p_id_user.Item(Index) = RTrim(record.Fields(23))
Ok jai peut etre dit une co...
Marsh Posté le 11-04-2001 à 02:58:41
c'est pas plutot
Form3.p_id_user.list(Index) = RTrim(record.Fields(23))
bah oui fallait lire liste pas Item car item ça marche pas
Marsh Posté le 11-04-2001 à 08:29:23
non, itemdata retourne ce que tu veux, tout depend du type que tu lui donne... dautant plus que incomprehensiblement ca marche quand jaffiche une messagebox..
Marsh Posté le 11-04-2001 à 11:47:20
probleme resolu, merci a ceux qui ont essaxe de maider
PS: le pb etait linitialisation des combobox dans form_activate au lieus de form_load... et oui, je sais, je suis con ;-)
Marsh Posté le 09-04-2001 à 09:31:25
Voici mon code :
For Index = 0 To Form3.p_id_user.ListCount - 1
If Form3.p_id_user.ItemData(Index) = record.Fields(23) Then
Form3.p_id_user.ListIndex = Index
End If
Next
'MsgBox Form3.p_id_user.ListIndex
et mon probleme est que lorsque la cond. est vraie, et quil rentre dans la 3° ligne, il modifie bien la valeur de listindex, mais ne le repercute a lecran que lorsquon enleve le commentaire de la MsgBox ou lorsquon est en mode debbug!!!!
Comprend plus trop bien la?????
HELP, cest pour un stage....:benetton: