A voir également:
- Tuto VB/Access
- Vb - Télécharger - Langages
- Tuto tableau croisé dynamique - Guide
- Tuto torrent - Guide
- Tuto chromecast - Guide
- Tuto rufus windows 11 - Guide
284 réponses
Mmmm.
Je suis à la recherche de listes.
J'ai trouvé ça pour les listes liées : http://faq.vb.free.fr/index.php?question=160
Mais n'y aurait-il pas des listes prédéfinies ?
Je veux juste ajouter quelques valeurs dans une liste puis les réutiliser après.
Donc, si j'avais juste à faire, list.add, ça serait pas mal. ^^
Je suis à la recherche de listes.
J'ai trouvé ça pour les listes liées : http://faq.vb.free.fr/index.php?question=160
Mais n'y aurait-il pas des listes prédéfinies ?
Je veux juste ajouter quelques valeurs dans une liste puis les réutiliser après.
Donc, si j'avais juste à faire, list.add, ça serait pas mal. ^^
Listes prédéfinies ??? je ne comprends pas ....
Je voulais parler des collections. ^^
http://faq.vb.free.fr/index.php?question=171
J'ai trouvé ce que je cherchais. :P
Aller, pour la peine je te paye un kawa. :)
http://faq.vb.free.fr/index.php?question=171
J'ai trouvé ce que je cherchais. :P
Aller, pour la peine je te paye un kawa. :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'y crois pas, j'ai des erreurs sur des choses qui fonctionnaient très bien avant. Oô
Je ne sais pas pourquoi, mais je ne n'arrive pas à ajouter plusieurs lignes dans mon Datagrid, dès que j'en rajoute une elle efface la précédente.
Vu que j'ai déjà fait l'erreur, je me dis "couillon, t'as oublié le Form.adoData.recordset.addNew", mais en fait non, il était bien présent.
Alors j'ai essayé de faire quelques modifs mais maintenant j'ai une erreur "Indice en dehors de la plage" sur une fonction que je n'ai pas touchée. (à la ligne if Myliste ...)
Cette fonction étant appelée par le remplissage d'une combobox.
Mais là je capte pas. :S
Comment ça l'indice est en dehors de la plage ? Oô
Je ne sais pas pourquoi, mais je ne n'arrive pas à ajouter plusieurs lignes dans mon Datagrid, dès que j'en rajoute une elle efface la précédente.
Vu que j'ai déjà fait l'erreur, je me dis "couillon, t'as oublié le Form.adoData.recordset.addNew", mais en fait non, il était bien présent.
Alors j'ai essayé de faire quelques modifs mais maintenant j'ai une erreur "Indice en dehors de la plage" sur une fonction que je n'ai pas touchée. (à la ligne if Myliste ...)
Private Function verifliste(valeur As String) As Boolean Dim i As Integer For i = 1 To nb If myListe(i) = valeur Then verifliste = True Exit Function End If Next i verifliste = False End Function
Cette fonction étant appelée par le remplissage d'une combobox.
Mais là je capte pas. :S
Comment ça l'indice est en dehors de la plage ? Oô
As-tu vérifié que myListe se remplit bien ?
Vérifie que nb contient bien le nombre de données de ta liste ... parfois on incrémente nb d'une valeur supplémentaire dans la boucle, il faut donc faire nb - 1 !!!
;o)
Vérifie que nb contient bien le nombre de données de ta liste ... parfois on incrémente nb d'une valeur supplémentaire dans la boucle, il faut donc faire nb - 1 !!!
;o)
nb = 2 et i = 2
Je remet le code au cas où. ^^
Mais je passe une fois dans la boucle et je n'ai pas de problèmes. C'est lors du 2eme passage que j'ai l'erreur. :S
Pour info, j'ai Myliste(i) = <indice en dehors de la plage> quand je passe la souris dessus.
Je remet le code au cas où. ^^
Public Sub combo1_Click() Dim myId() As Long Dim i, j, y As Long Dim nb, nb2 As Long Dim vrai As Boolean With Form2 .Combo2.Enabled = True .Combo1.Enabled = False nb = 0 nb2 = 0 i = 1 Call ModESEnt_STD.searchIdByItem("Lib_Verbe", .Combo1.Text) vrai = ModESEnt_STD.LirePremier While vrai = True If i > nb Then nb = nb + 1 ReDim Preserve myId(nb) myId(i) = ModESEnt_STD.getIdStd End If i = i + 1 vrai = ModESEnt_STD.LireSuivant Wend .Combo2.Clear For y = 1 To nb Call ModESEnt_STD.searchItemById("Id_Std", myId(y)) vrai = ModESEnt_STD.LirePremier While vrai = True If verifliste(ModESEnt_STD.getLib_Sujet) = False Then j = j + 1 If j > nb2 Then nb2 = nb2 + 1 ReDim Preserve myListe(nb2) myListe(j) = ModESEnt_STD.getLib_Sujet End If .Combo2.AddItem ModESEnt_STD.getLib_Sujet End If vrai = ModESEnt_STD.LireSuivant Wend Next y End With End Sub
Mais je passe une fois dans la boucle et je n'ai pas de problèmes. C'est lors du 2eme passage que j'ai l'erreur. :S
Pour info, j'ai Myliste(i) = <indice en dehors de la plage> quand je passe la souris dessus.
oui ça veut dire que l'indice de i n'est pas dans myListe ... si myListe contient qu'un seul élément, il ne peut pas lire le 2ème puisque qu'il n'existe pas
En fait, j'ai réussi à résoudre mon problème en passant nb2 à 1.
Parce que le problème venait de la deuxième utilisation de verifliste.
J'ai donc regarder ce qui le différenciait du 1er. Et j'ai vu que i était initialisé à 1 mais que y n'était pas initialisé, donc passé à 0 par défaut (enfin je suppose ^^).
Bon bah je reviens au point de départ. xD
Quand j'ajoute une ligne, elle m'efface la précédente.
Parce que le problème venait de la deuxième utilisation de verifliste.
J'ai donc regarder ce qui le différenciait du 1er. Et j'ai vu que i était initialisé à 1 mais que y n'était pas initialisé, donc passé à 0 par défaut (enfin je suppose ^^).
Bon bah je reviens au point de départ. xD
Quand j'ajoute une ligne, elle m'efface la précédente.
Oulala, tu fait bien un addnew avant et un update après ? et dans ta base, la ligne aussi est effacée ?
Désolé de ne pas t'avoir répondu mais je suis parti 2 min avant que tu ne me répondre. ^^
J'avais bien addnew et update.
J'ai résolu mon problème, c'était à cause du refresh de l'adoData. :)
Pis c'est kewl parce que ce problème m'a permis de faire ce que je voulais faire. C'est à dire ouvrir un datagrid vide puis ajouter des valeurs sans avoir besoin qu'il y en ai déjà.
Aller hop, la journée commence bien, je vais payer le kawa à tout le monde au café.
J'avais bien addnew et update.
J'ai résolu mon problème, c'était à cause du refresh de l'adoData. :)
Pis c'est kewl parce que ce problème m'a permis de faire ce que je voulais faire. C'est à dire ouvrir un datagrid vide puis ajouter des valeurs sans avoir besoin qu'il y en ai déjà.
Aller hop, la journée commence bien, je vais payer le kawa à tout le monde au café.
Salut,
Je crois je sers plus à grand chose ... tu trouves les soluces tout seul, c'est super :DD
Bonne journée
;o)
Je crois je sers plus à grand chose ... tu trouves les soluces tout seul, c'est super :DD
Bonne journée
;o)
Ca pourrait arriver. :P
Tiens, une question me vient à l'esprit. ^^
Comment est ce que je peux faire pour modifier une variable qui soit commune à une fonction récursive. (je sais c'est pas compréhensible, je vais faire un exemple)
Imaginons la fonction test dans laquelle je calcule une valeur val.
Cette fonction test se rappelle elle-même et va calculer une valeur val2 qu'elle va ajouter à la valeur val.
Cette fonction test se rappelle elle-même et va calculer une valeur val3 qu'elle va ajouter à la valeur val2.
Cette fonction test se rappelle elle-même et va calculer une valeur val4 qu'elle va ajouter à la valeur val.
(vive le copier-coller).
Je suis un peu perdu. Parce qu'en rappelant test, je vais initialiser val. :S
Aurais-tu une petite idée ?
Merci
Tiens, une question me vient à l'esprit. ^^
Comment est ce que je peux faire pour modifier une variable qui soit commune à une fonction récursive. (je sais c'est pas compréhensible, je vais faire un exemple)
Imaginons la fonction test dans laquelle je calcule une valeur val.
Cette fonction test se rappelle elle-même et va calculer une valeur val2 qu'elle va ajouter à la valeur val.
Cette fonction test se rappelle elle-même et va calculer une valeur val3 qu'elle va ajouter à la valeur val2.
Cette fonction test se rappelle elle-même et va calculer une valeur val4 qu'elle va ajouter à la valeur val.
(vive le copier-coller).
Je suis un peu perdu. Parce qu'en rappelant test, je vais initialiser val. :S
Aurais-tu une petite idée ?
Merci
voui .... j'ai une petite idée ...
Et si tu mets une variable globale en haut dans le module ??? ça le ferai pas ?
;o)
Et si tu mets une variable globale en haut dans le module ??? ça le ferai pas ?
;o)
J'espère que c'est pas encore une question alakon mais ...
Est ce qu'il est possible de comparer une valeur à toutes celles qui sont dans une combobox ?
:)
Est ce qu'il est possible de comparer une valeur à toutes celles qui sont dans une combobox ?
:)
Là je sais pas, faut que je regarde de plus près ...
oups !!! pas vu l'heure. Tu liras ça demain.
;o)
oups !!! pas vu l'heure. Tu liras ça demain.
;o)
Voui, je lis ça aujourd'hui ^^
Mais je suis bête parce que tu avais déjà fait une fonction pour. :P
Je l'avais pô vu.
Néanmoins je ne comprend pas pourquoi j'ai des valeurs en doubles. Je n'y ai pas touché à ce que tu avais fait.
Au début ça fonctionnait, après non.
Mais je suis bête parce que tu avais déjà fait une fonction pour. :P
Je l'avais pô vu.
Néanmoins je ne comprend pas pourquoi j'ai des valeurs en doubles. Je n'y ai pas touché à ce que tu avais fait.
Au début ça fonctionnait, après non.
Salut ... me souviens plus bien de tout :-Z ... mais si ça fonctionner avant, pas de raison que ça marche plus ... regarde si il y a bien un Combo1.Clear avant la mise à jour de la combo. Il faut que tu fasses du pas à pas pour bien voir si tout se passe bien ... c'est pas toujours cool de repasser le process ligne par ligne mais ça permet de bien ce qui se passe ...
Je file au kawa ...
@+
Je file au kawa ...
@+
J'ai peut être trouvé le problème ....
Voilà ta fonction verifliste.
Tu as remplie la liste en ajoutant des verbes au début, donc là pas de problèmes, je n'ai pas de doublons.
Mais dans la 2eme fonction (qui va ajouter des sujets dans la 2eme combo), quand elle fait appel à verifliste, la première liste n'a pas été vidée.
Donc on va comparer les sujets à ce que contient la liste, c'est à dire les verbes.
Je vais faire quelques tests pour voir ce que ça donne.
Private Function verifliste(valeur As String) As Boolean Dim i As Integer For i = 1 To nb If myListe(i) = valeur Then verifliste = True Exit Function End If Next i verifliste = False End Function
Voilà ta fonction verifliste.
Tu as remplie la liste en ajoutant des verbes au début, donc là pas de problèmes, je n'ai pas de doublons.
Mais dans la 2eme fonction (qui va ajouter des sujets dans la 2eme combo), quand elle fait appel à verifliste, la première liste n'a pas été vidée.
Donc on va comparer les sujets à ce que contient la liste, c'est à dire les verbes.
Je vais faire quelques tests pour voir ce que ça donne.
Je viens de trouver l'erreur.
Encore un problème d'initialisation.
J'avais ça.
Mais nb2 était initialisé à 1 et j à 0 par défaut (vu que je ne l'avais pas initialisé).
Je n'ai plus de doublons, je suis heureux. :)
Encore un problème d'initialisation.
If verifliste(ModESEnt_STD.getLib_Complement) = False Then j = j + 1 If j > nb2 Then nb2 = nb2 + 1 ReDim Preserve myListe(nb2) myListe(j) = ModESEnt_STD.getLib_Complement End If
J'avais ça.
Mais nb2 était initialisé à 1 et j à 0 par défaut (vu que je ne l'avais pas initialisé).
Je n'ai plus de doublons, je suis heureux. :)