Tuto VB/Access
MrSlave
Messages postés
2587
Date d'inscription
Statut
Membre
Dernière intervention
-
Rikkunter Messages postés 6023 Date d'inscription Statut Membre Dernière intervention -
Rikkunter Messages postés 6023 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- 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
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.
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
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
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)
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)
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)
Tu peux t'en inspirer pour ce que tu veux faire, c'est le même principe.
;o)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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)
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)
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..
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..
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.
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.
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.
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 ...
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 ...
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 :
Et dans le bouton pour ajouter une nouvelle séquence :
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
Euh, Slave, je comprends pas trop ton truc (Comme d'hab, j'ai pas ton programme, j'suis un peu larguée... Bref)
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 ?
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 ?
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 :
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 ? ^^
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 ? ^^
En fait j'ai changé.
J'ai une fonction avec flag en argument qui contient :
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
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
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)
Vais au kawa et je re pour lire la réponse.
;o)
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 :
Je devrais commencer par récupérer l'id du standard que je viens de créer puis :
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ô
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ô
Oui, c'est normal que tu affiches tout avec ta requête :
Ca devrait aller mieux si tu y mets une condition ...
;o)
"select Position_affichage,Libelle,id_std, is_std from SEQ_STD"
Ca devrait aller mieux si tu y mets une condition ...
;o)
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.
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.
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)
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)
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.
@ +
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.
@ +
(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 ;)
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 ;)
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)
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)
Yeahhh .... Mr Slave .... le retour .. tsoin tsoin !!!
Ca va bien merci et toi ? racontes un peu ta soutenance, tes longues vacances ... etc :D
;o)
Ca va bien merci et toi ? racontes un peu ta soutenance, tes longues vacances ... etc :D
;o)
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. :)
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. :)
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)
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)
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.
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.
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
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