Tuto VB/Access

MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   -  
 Rikkunter -
Bonjour,

Je dois réaliser une base de temps avec le couple VB6 / Access.

Je recherche donc des tutos car je n'ai jamais utilisé ni l'un, ni l'autre.

Merci.
A voir également:

284 réponses

MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
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. ^^
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Listes prédéfinies ??? je ne comprends pas ....
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
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. :)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
lol merci mais j'ai rien fait là ........ je plane un peu aujourd'hui ^^
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
sympa Claire :oP ...

Même pas proposé le kawa :-S

;o)
0

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

Posez votre question
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
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 ...)
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ô
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
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)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
nb = 2 et i = 2

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.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
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


0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
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.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Oulala, tu fait bien un addnew avant et un update après ? et dans ta base, la ligne aussi est effacée ?

0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
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é.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Salut,

Je crois je sers plus à grand chose ... tu trouves les soluces tout seul, c'est super :DD

Bonne journée

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Mais si je trouve les réponses c'est grâce à toute l'aide que tu m'a apportée. ;)
Et puis tant mieux, ça prouve que je m'améliore.

Bonne journée à toi aussi. :)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
'tin, manquerait plus que tu regresses ... ôO

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
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
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
voui .... j'ai une petite idée ...

Et si tu mets une variable globale en haut dans le module ??? ça le ferai pas ?

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
-__________________-"

Je suis un NooB.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
^^
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
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 ?

:)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Là je sais pas, faut que je regarde de plus près ...

oups !!! pas vu l'heure. Tu liras ça demain.

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
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.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
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 ...

@+
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
J'ai peut être trouvé le problème ....
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.
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
En fait c'était pas tout à fait ce que j'ai marqué avant, c'est encore plus bête.

J'ajoute mes sujets dans une liste j, mais pour je fais les vérifications (pour voir si le sujet est déjà présent) avec la liste i qui est remplie de verbes.

xD
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Je viens de trouver l'erreur.

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. :)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
lol ... tu vois, tu as presque plus besoin de moi :DD

;o)
0