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: