Tuto VB/Access

Fermé
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 - 5 juin 2008 à 11:53
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 - 22 août 2008 à 16:18
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 lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
18 juin 2008 à 09:11
Salut tout le monde.

Comment ça va bien ?

J'avais une petite question Polux. :)
Est ce qu'il y aurait un moyen de vérifier ce qui a déjà été inséré dans une combo ?
Parce que j'ai des champs qui se répentent. Donc je pensais ajouter un champ qui vérifie si la valeur qu'on veut ajouter est déjà présente.
Private Sub initCombo1()
Dim vrai As Boolean
Dim test As String

    With Form2
        .Combo1.Clear
        ModESEnt_STD.initTableEnt_STD
        vrai = ModESEnt_STD.LirePremier
        While vrai = True
           .Combo1.AddItem ModESEnt_STD.getlib_verbe
            vrai = ModESEnt_STD.LireSuivant
        Wend
    End With
    
End Sub

Au lieu de faire directement Combo1.addItem ..., on fait var = ModESEnt ....
On vérifie si la valeur est présente. Si elle est présente, on lit le suivant, sinon on l'ajoute.

Merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
18 juin 2008 à 09:56
Salut,

Bon j'ai les doigts croisés depuis ce matin pour Rikki (une petite pensée pour elle en passant) mais je m'autorise de les décroiser pour te répondre :D

Il me semble que j'utilise déjà une méthode pour vérifier une donnée avant de la mettre dans une combo ... j'en suis pas sûr, je vais vérifier et je te dis quoi.

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
18 juin 2008 à 09:59
Merci de ton aide. ;)

Moi je ne m'en fais pas pour elle, je suis sûr qu'elle y arrivera.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
18 juin 2008 à 10:01
Je confirme ... regarde dans ModfrmForm1, il y a un tableau myListe() et une méthode verifListe() pour éviter les doublon dans les combos ...
Tu peux t'en inspirer pour ce que tu veux faire, c'est le même principe.

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
18 juin 2008 à 10:07
Ah mais oui. Je suis bête.

Parce qu'en fait j'utilise non seulement le même principe, mais également les même valeur étant donné que je dois récupérer les valeurs déjà existantes.

Encore une fois, je te remercie. :)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
18 juin 2008 à 10:10
De rien ... :D

;o)
0

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

Posez votre question
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
19 juin 2008 à 08:09
Salut.

Rikk est de retour ?

Allez hop, kawa pour tout le monde et Thé pour la miss. :)
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180
19 juin 2008 à 08:17
Yop, merci.

J'espère que t'as bien dormi.

J'dois rendre mon applic aujourd'hui moi, courage.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
19 juin 2008 à 08:54
Kikou les p'tits loups,

Comment ça va trop bien vous ?

Alors Rikki, comment ça c'est passé ?

Merci pour le kawa Slave.

La bonne journée à vous deux ...

;o)
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180
19 juin 2008 à 08:56
Ca va.
Foiré un sur deux.

À croire ce que j'ai entendu ce matin, j'aurais fait 1.7 (note maximale = 6, note minimale = 1, moyenne pour être suffisant = 4) à mon économie \o/

Coz I roxx.

Sinon l'Anglais, comme t'as dit... Two fingers in the nose >:)

Suis en train de faire mon menu principal pour mon applic Access..
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
19 juin 2008 à 09:50
Allez hop ça faisait longtemps.

Polux, j'ai un problème. :)

Si je veux insérer des choses dans un datagrid, je suis obligé de récupérer ce qu'il y a dans la table où je veux ajouter des éléments.
adoData.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & bdd
    adoData.RecordSource = "select Position_affichage,Libelle,id_std, is_std from SEQ_STD"
    adoData.CommandType = adCmdText
    adoData.Refresh

Mais j'aimerais que rien ne s'affiche dans mon datagrid, et je ne sais pas trop comment faire.

J'ai essayé d'enlever le adoData.refresh, en me disant que si on ne le rafraichissait pas, il ne m'afficherait rien dans le datagrid. J'ai eu raison mais dans ce cas, j'ai une erreur lors d'une tentative d'ajout d'un élément.

Une idée peut être ?

Merci.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
19 juin 2008 à 10:03
Il faut mettre un flag ... je m'explique. Tu déclares un flag en variable globale du module. Tu fais le refresh quand le flag est à True par exemple et tu fais pas le refresh que le flag est à False ...

Donc quand tu fais un rajout que tu veux voir afficher, tu passes le flag à True et dans le code tu mets une condition:
If flag = True Then adoData.Refresh

épicétou...

;o)

Rikki, c'est bien je trouve 1.7 ... et puis c'est pile poil le reflet de la réalité ... quand on prévoit 4 % de croissance économique, on arrive péniblement à faire entre 1.5 et 2 ... tu es en plein dedans ... :D

Bon gras kawa avant de parit en réu ...
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
19 juin 2008 à 11:56
En fait ça me pose un problème au niveau du Form1.adoData.Recordset.addNew.
Erreur : variable objet ou bloc with non définie.

Je vois pas trop quel est le problème. :S
En tout cas, j'avais la même erreur lorsque je ne mettais pas le refresh.

Pourtant j'ai fait :
Dim Flag As Boolean
Flag = False
If Flag = True Then
        adoData.Refresh
    End If

Et dans le bouton pour ajouter une nouvelle séquence :
Flag = True
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180 > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
19 juin 2008 à 13:04
Euh, Slave, je comprends pas trop ton truc (Comme d'hab, j'ai pas ton programme, j'suis un peu larguée... Bref)

Dim Flag As Boolean
Flag = False
If Flag = True Then
        adoData.Refresh
    End If



Jamais Flag sera True O.o
Même si tu mets un bouton, le truc va pas se redéclancher... J'ai loupé un épisode encore ?
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011
19 juin 2008 à 13:21
De toute façon, rien ne pourra marcher.
Vu que j'ai mis ça dans un bouton, qui va me permettre de valider une première partie afin d'accéder à la seconde :
adoData.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & bdd
    adoData.RecordSource = "select Position_affichage,Libelle,id_std, is_std from SEQ_STD"
    adoData.CommandType = adCmdText
    adoData.Refresh

Donc je ne reviendrais jamais dans cette partie.
Donc mettre un flag ne servira à rien.

En gros :
PArtie 1 => validation et chargement du Datagrid (voir le code au dessus) => partie 2 => ajout d'élement au Datagrid.

Donc si je met un flag, je vais m'en servir dans le 1er bouton (validation ...) mais je ne vais passer la valeur du flag à true que dans le 2eme (ajout ...).

C'est compréhensible ? ^^
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180 > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
19 juin 2008 à 13:23
Pas trop, j'attends Polux, j'bloque encore dans ce truc de Boolean...
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011
19 juin 2008 à 13:36
En fait j'ai changé.

J'ai une fonction avec flag en argument qui contient :
Form1.adoData.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & bdd
    Form1.adoData.RecordSource = "select Position_affichage,Libelle,id_std, is_std from SEQ_STD"
    Form1.adoData.CommandType = adCmdText
    If flag = True Then
        Form1.adoData.Refresh
    End If

Ca fait presque ce que je veux.
En effet rien n'est chargé quand j'appuie sur le premier bouton (parce que flag à false), donc tout va bien.
Mais si je rajoute un élément, je passe flag à true, tout ce que j'ai dans ma base est ajouté, et non simplement l'élément que je viens de créer.

J'ai encore besoin d'une idée. ^^

Merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
19 juin 2008 à 13:53
là c'est moi qui suit plus .... tu as bien employé le flag qui te raffraichit ton datagrid quand tu le décides (en passant, bien vu Rikki dans ton post 509). Je ne vois pas où est le blème maintenant ...

Vais au kawa et je re pour lire la réponse.

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
19 juin 2008 à 14:01
Ouaip, mais quand il refresh, il n'affiche pas seulement les infos que je viens d'entrer mais toute ma table.
En fait je crois qu'au lieu de faire :
"select Position_affichage,Libelle,id_std, is_std from SEQ_STD"

Je devrais commencer par récupérer l'id du standard que je viens de créer puis :
"select Position_affichage,Libelle,id_std, is_std from SEQ_STD where id_std = '" & Id & "' "

Comme ça il ne m'affichera que ce que je veux.

Allez hop, je teste. ;)

EDIT : ah ouai mais non en fait.

"Type de données incompatible dans l'expression du critère." sur Form1.adoData.Refresh . Oô
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
19 juin 2008 à 14:21
Oui, c'est normal que tu affiches tout avec ta requête :
"select Position_affichage,Libelle,id_std, is_std from SEQ_STD"


Ca devrait aller mieux si tu y mets une condition ...

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
19 juin 2008 à 14:22
C'est ce que j'ai fais mais j'ai une erreur maintenant.

Faut que j'en trouve la cause, nom d'une pipe ! ^^

EDIT : je n'ai rien changé au code entre l'erreur citée ci-dessous et maintenant mais j'ai une nouvelle erreur.
"La méthode Refresh de l'objet Iadodc a échouée".

EDIT2 : ma requête est bonne, je récupère bien la bonne valeur.
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
19 juin 2008 à 14:43
Problème corrigé.

Chu stupide, je met des guillemets pour un int. :(
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180 > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
19 juin 2008 à 14:45
Chu stupide


:D


Chu stupide
Chu stupide
Chu stupide
Chu stupide
Chu stupide
Chu stupide
Chu stupide
Chu stupide



\o/
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011
19 juin 2008 à 14:51
Il vaut mieux l'avouer que croire que nous ne le sommes pas. ;)

Par contre c'est comme si mon Form1.adoData.recordset.addNew ne fonctionnait pas.
Il m'ajoute les valeurs les une par dessus les autres, mais pas à la suite ...

/me mène l'enquête.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
20 juin 2008 à 08:42
Bonjour les p'tits loups,

Eh ben quel calme ce matin ... z'êtes pas malades au moins ?

Bon je vais me mettre un kawa au fond du gosier avant de déclencher les hostilités.

@++

;o)
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180
20 juin 2008 à 08:45
Nop nop pas morte moi...
J'ai une "bonne" nouvelle ceci dit, 3 en économie, et non 1.7 >:)

'Jour au fait :p

Ca va bien ?

Vendredi... Puff pff, on y voit la fin.
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
20 juin 2008 à 08:53
Bonjour à vous deux.

Moi non plus, chu pas malade. Pourtant j'ai quasiment pas dormi de la nuit. :S

M'enfin bon, comme le dit si bien Rikk, ce soir c'est le we. \o/
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180 > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
20 juin 2008 à 08:55
Et les vacances pour toi, non ?
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011
20 juin 2008 à 08:56
J'ai la soutenance de projet lundi.

Soirée lundi soir.

Fin du rangement et état des lieux ... de l'appart mardi.

Soirée mardi soir ....

C'est pas des vacances ça. :D
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
20 juin 2008 à 09:05
Y a des nantis quand même ... ^^

Félicitations pour le 3 en économie Rikki.

Petite journée pour moi, je vais partir de bonne heure cet aprem direction Paris... je vais faire la fête de la zik là bas avec des zamis ...

Voili, voilou ... bon je continue d'écrire mes spec ... pfff le plus chiant à faire dans ce métier.

@ +
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180
20 juin 2008 à 11:38
(Je tiens à noter que 3 est une note pitoyable en temps normal vu que la moyenne est à 4, mais je suis contente avec ça xD)

Sur ce, c'est bientôt manger, donc bon ap à vous, et bonne fête de la musique à Polux si on le revoit pas avant ;)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
20 juin 2008 à 11:47
Merci, bon app à toi aussi

Malheureusement je vais partir plus tard que prévu ... y a des blèmes ici :-S ... ça risque de me pousser vers 16h cette histoire pffffffff

Bon week a vous deux aussi, okazou on se croise pas ici ... et "M***E" à Slave pour sa soutenance lundi ... et enfin des vacances pour moi :DD

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016
20 juin 2008 à 11:53
Bon app' à vous deux.

J'aime pas la récursivité. ^^

Je fini également à 16h et après ça va être tranquille.

Ps : ah merde, j'y pensais plus mais il faut que je fasse des pp. Grrrrr !
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
1 juil. 2008 à 08:27
Je suis de retour. \o/

Comment ça va bien les gens ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 juil. 2008 à 08:33
Yeahhh .... Mr Slave .... le retour .. tsoin tsoin !!!

Ca va bien merci et toi ? racontes un peu ta soutenance, tes longues vacances ... etc :D

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
1 juil. 2008 à 08:43
Coucou Polux.

Moi ça va.
La reprise est dure. Le pire c'est de se lever à 6h30 alors que les derniers jours je ne me levait pas avant 11h/12h (mais les nuits n'étaient pas plus longues ^^).
La soutenance c'est très bien passée. La note englobait soutenance/rapport/... donc je m'en sors avec un 14,5. Ce qui fait que j'ai mon DUT et que je vais en école d'ingé l'année prochaine. \o/

Et pour les vacances, elles étaient trop courtes. :P
5 jours c'est peu. J'en ai passé 4 avec des amis et une petite journée tranquille.

Maintenant c'est parti pour 2 mois de travail en attendant la rentrée.
Mais c'est kewl, il fait beau. :)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 juil. 2008 à 08:48
ben voilà, pour pas que la reprise soit dure, faudrait pas s'arrêter ....

Content pour toi pour ton DUT.

2 mois de boulot, c'est vite passé. Surtout en juillet et août. Les gens partent et rentrent de vacances, c'est cool... :DDD

Vais me faire un kawa bien chaud ...

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
1 juil. 2008 à 09:00
Je valide le kawa.

Pour la peine je m'en fait un aussi. :)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
1 juil. 2008 à 10:03
Euh .... Polux ?

Est ce que je peux te poser une petite question ? ^^

C'est pour mon projet en vb, mais ma question est plutôt du genre algo, pas vb.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 juil. 2008 à 10:10
ben voui, pose ta question ... on est là pour ça quand même ...

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
1 juil. 2008 à 10:23
Alors je vais éssayer d'être clair.

Je ne sais pas si tu te rappelle de mon projet, mais en fait je dois réaliser une base de temps pour différentes actions (appelés standards.)
Ces standards sont décomposés en séquences (sous-actions).
Le problème c'est que les séquences peuvent elles même être des standards (donc décomposés en séquences).

Ca va je suis clair ? ^^
Au final je dois calculer un temps pour le standard.
Si aucune des séquences n'est un standard, le calcul n'est pas dur, mais sinon, je dois utiliser la récursivité et ça se complique vite.

En gros je pensais faire quelque chose comme ça :
1/ Récupération du dernier Id inséré (pour savoir quel standard doit on calculer)
2/ Récupération de toutes les séquences.
3/ Vérification des séquence pour voir si certaines sont des standards. (j'ai inséré un champ qui me dira si une séquence est un standard ou pas)
4/ Si pas de standard, alors calcul du temps par quelques calculs simples. (ça c'est bon. ^^)
5/ Si il y a un standard, je dois récupérer les séquences et à nouveau tout recommencer. :P

Mon problème c'est que je ne vois pas trop comment je peux organiser ça.

Un petit exemple.

Imaginons un standard (std1) qui comporte des séquences.
std1 (seq1, seq2, seq3, seq4).
Mais la seq2 et la seq4 sont également des standards, donc elles ont également des sequences.
std1 (seq1, seq2, seq3, seq4)
seq2 = std2 (seq2.1, seq2.2, seq2.3, seq2.4)
seq4 = std4 (seq4.1, seq4.2, seq4.3, seq4.4)

Je vais donc calculer seq2 et seq4 facilement.
Pis après je calcule std1. Tout d'abord seq1 et seq3 et je rajoute seq2 et seq4.

Ps : En fait, je ne suis pas sûr que ça soit si dur que ça.
Ca fait beaucoup de bien de tout reprendre de haut. xD
0