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
OUUUIIIIIIIIIIIIIIINNNNNNNNNNNNNNNNNNNNNNNNNNNN !!!!!!!!!!!!!!!!!!!!
MrSlave
Messages postés
2587
Date d'inscription
Statut
Membre
Dernière intervention
147
Qu'est ce que j'ai encore fait comme connerie ? :(
Tu manipules des données directement de l'IHM vers la base de données ......... :(((
Alors qu'il y a un module pour faire la transition ....
Tu veux ajouter dans Table Ent_STD ... ModESEnt_STD sert à ça ... il suffit d'ajouter la méthode pour le faire. Comme ça, ensuite, n'importe où dans ton code tu pourras passer par cette méthode pour ajouter des enregistrement dans la table Ent_STD ... sans être obligé de tout réécrire ... et je pense que ta méthode ne marche pas ...
Alors qu'il y a un module pour faire la transition ....
Tu veux ajouter dans Table Ent_STD ... ModESEnt_STD sert à ça ... il suffit d'ajouter la méthode pour le faire. Comme ça, ensuite, n'importe où dans ton code tu pourras passer par cette méthode pour ajouter des enregistrement dans la table Ent_STD ... sans être obligé de tout réécrire ... et je pense que ta méthode ne marche pas ...
En gros Java.
Mais ils ont commencé l'objet alors qu'on avait quasiment pas les bases.
Ils ont essayé avec le C, mais en quelques heures à peines. (j'ai toujours du mal avec l'histoire des pointeurs).
Heureusement que j'ai pas mal travaillé chez moi pour le PHP/HTML/CSS, sinon j'aurais été mal.
Un peu de XML aussi.
Mais quand je suis arrivé ça ne faisait qu'un an que cette section était ouverte.
Et ça c'est vu ... :S
Mais ils ont commencé l'objet alors qu'on avait quasiment pas les bases.
Ils ont essayé avec le C, mais en quelques heures à peines. (j'ai toujours du mal avec l'histoire des pointeurs).
Heureusement que j'ai pas mal travaillé chez moi pour le PHP/HTML/CSS, sinon j'aurais été mal.
Un peu de XML aussi.
Mais quand je suis arrivé ça ne faisait qu'un an que cette section était ouverte.
Et ça c'est vu ... :S
Je crois que je vais te demander un petit coup de main là parce que je me noie.
Déjà je ne sais pas si je dois affecter ma requête à une variable et utiliser cette variable après, ou utiliser CommandText.
Déjà je ne sais pas si je dois affecter ma requête à une variable et utiliser cette variable après, ou utiliser CommandText.
Eh bien résonne en objet, même avec VB ... le principe reste identique. D'ailleur VB manipule des objets, ça doit pouvoir t'aider.
Pour info : je ne suis venu à l'informatique que pour une réorientation professionnelle (j'ai été 15 ans qualiticien et 8 ans responsable commercial avant) ... j'ai suivi une formation de 12 mois avec un stage en entreprise de 2 mois. Pendant la formation, on a survolé le VB, le HTML, PHP et autres langages. La formation était plutôt orientée base de données (client/serveur), spécifications et conceptions.
Le langage n'est qu'une question de syntaxe. Mais les mécaniques et raisonnement pour faire fonctionner une appli restent les mêmes quelque soit le langage. J'ai fait des appli en Java, en C et C++, en VB et même des applis pour du net avec PHP, Ajax, Javascript etc ... sans parler des bases de données ...
Il y a assez de tutos ou forums sur le net pour trouver des solutions à un problème. Il y a aussi de très bons livres dédiés à chaque langage.
Si tu as appris le Java en cours, tu dois savoir ce qu'est l'encapsulation des données et des méthodes liées aux données, je pense. Il en est de même pour VB.
voili voilou ...
Ne fais pas une fixation sur le langage, mais concentres toi sur l'organisation de tes données ...
Pour info : je ne suis venu à l'informatique que pour une réorientation professionnelle (j'ai été 15 ans qualiticien et 8 ans responsable commercial avant) ... j'ai suivi une formation de 12 mois avec un stage en entreprise de 2 mois. Pendant la formation, on a survolé le VB, le HTML, PHP et autres langages. La formation était plutôt orientée base de données (client/serveur), spécifications et conceptions.
Le langage n'est qu'une question de syntaxe. Mais les mécaniques et raisonnement pour faire fonctionner une appli restent les mêmes quelque soit le langage. J'ai fait des appli en Java, en C et C++, en VB et même des applis pour du net avec PHP, Ajax, Javascript etc ... sans parler des bases de données ...
Il y a assez de tutos ou forums sur le net pour trouver des solutions à un problème. Il y a aussi de très bons livres dédiés à chaque langage.
Si tu as appris le Java en cours, tu dois savoir ce qu'est l'encapsulation des données et des méthodes liées aux données, je pense. Il en est de même pour VB.
voili voilou ...
Ne fais pas une fixation sur le langage, mais concentres toi sur l'organisation de tes données ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si j'ai bonne mémoire (j'en doute) ... ce qui est chiant avec access c'est qu'il n'accepte pas les insert en SQL ... ça a peut être changer, mais il me semble qu'il faille faire un Add avant d'inserer les données.
Je vais regarder ça ...
Je vais regarder ça ...
Bon ma journée est finie, je rentre chez moi.
Je reprendrais tout ça au calme demain matin après un peu de repos. :)
Bonne soirée à toi.
Je reprendrais tout ça au calme demain matin après un peu de repos. :)
Bonne soirée à toi.
Salut, salut.
J'espère que vous allez bien. :)
Ba voui, je suis encore là.
Dites moi (si vous le savez bien entendu ^^), j'ai une erreur(pour changer) : "type défini par l'utilisateur non défini", sur la ligne "Set rs = New ADOBD.Recordset" de ma fonction.
Voici mon code :
Donc si vous avez une idée de mon problème, et si vous voulez m'aider (il y en a peut être qui ne veulent pas), j'accepte vos solutions avec grand plaisir.
Merci. :)
J'espère que vous allez bien. :)
Ba voui, je suis encore là.
Dites moi (si vous le savez bien entendu ^^), j'ai une erreur(pour changer) : "type défini par l'utilisateur non défini", sur la ligne "Set rs = New ADOBD.Recordset" de ma fonction.
Voici mon code :
Function Insertion(ByVal un As String, ByVal deux As String, ByVal trois As String) Dim rs As New ADODB.Recordset Dim requete As String Dim vrai As Boolean requete = "Insert into ent_std values ('" & un & "','" & deux & "','" & trois & "','','','','','','','','','')" Set rs = New ADOBD.Recordset rs.Open requete, ModuleBdD.cnx Insertion = True End Function
Donc si vous avez une idée de mon problème, et si vous voulez m'aider (il y en a peut être qui ne veulent pas), j'accepte vos solutions avec grand plaisir.
Merci. :)
SI tu nous as manquée.
http://www.commentcamarche.net/forum/affich 6743129 tuto vb access?page=4#238
http://www.commentcamarche.net/forum/affich 6743129 tuto vb access?page=4#238
Salut les p'tits loups ... :o))
Alors pour l'erreur :
Dim rs As New ADODB.Recordset << ----- elle est là ...
Ceci dit ... je ne pense pas que ça marche quand même ... :DDD ... ça, c'est fait ...
Kikou Rikki ...
Si tu relis les posts d'hier tu verras que oui ton absence nous a chagriné ...
Voili voilu voilou et hop --->>> je suis parti boire mon café ...
;o)
Alors pour l'erreur :
Dim rs As New ADODB.Recordset << ----- elle est là ...
Ceci dit ... je ne pense pas que ça marche quand même ... :DDD ... ça, c'est fait ...
Kikou Rikki ...
Si tu relis les posts d'hier tu verras que oui ton absence nous a chagriné ...
Voili voilu voilou et hop --->>> je suis parti boire mon café ...
;o)
J'ai partiellement reglé mon problème. :)
Maintenant c'est une erreur "type donnée incompatible dans l'expression du critère"
Je n'ai plus que ça dans ma fonction :
C'est bizarre parce que tous mes champs sont des champs de texte. (Enfin 12 champs de texte et 1 champs numérique auto-incrémental).
Je vais bien finir par réussir une requête d'insertion, nom d'une pipe en bois ! :P
Maintenant c'est une erreur "type donnée incompatible dans l'expression du critère"
Je n'ai plus que ça dans ma fonction :
Set rs = New ADODB.Recordset rs.Open "Insert into ent_std(id_std, lib_complement, lib_sujet, top_debut, top_fin, lib_std, mod_cal_retenu, date_last_calc, th_act, taux_alea, mod_cal_dernier_trn, lien_photo) values ('" & un & "','" & deux & "','" & trois & "','','','','','','','','','')", ModuleBdD.cnx rs.Close
C'est bizarre parce que tous mes champs sont des champs de texte. (Enfin 12 champs de texte et 1 champs numérique auto-incrémental).
Je vais bien finir par réussir une requête d'insertion, nom d'une pipe en bois ! :P
Comme je te l'ai dit hier ... il ne faut pas indiquer l'identifiant qui est auto incrémenté en insertion automatique ... tu donnes plus de champs à mettre à jour que de données (ca va pas le faire) et pourquoi mettre les champs vides ???
Ca corrige ta requête SQL mais je doute que ça fasse ce que tu veux faire ...
Rikki qui est sur Access a peut être une idée ??
;o)
Ca corrige ta requête SQL mais je doute que ça fasse ce que tu veux faire ...
Rikki qui est sur Access a peut être une idée ??
;o)
Pardon pardon, mal lu...
Y a un petit truc qui me chipote par contre, où est-ce que tu montres que c'est en auto increment ?
Si je reprends ton code...
C'est indiqué dans la déclaration de id_std ? Parce que j'ai pas tout le code moi hein, oublie pas ^^.
Donc vu que tu commences directement par qqch qui n'est pas numérique... Ca doit poser problème par là j'suppose (En gros je répète ce qu'à déjà dit Polux :( )
Y a un petit truc qui me chipote par contre, où est-ce que tu montres que c'est en auto increment ?
Si je reprends ton code...
rs.Open "Insert into ent_std(id_std, lib_complement, lib_sujet, top_debut, top_fin, lib_std, mod_cal_retenu, date_last_calc, th_act, taux_alea, mod_cal_dernier_trn, lien_photo) values ('" & un & "','" & deux & "','" & trois & "','','','','','','','','','')", ModuleBdD.cnx
C'est indiqué dans la déclaration de id_std ? Parce que j'ai pas tout le code moi hein, oublie pas ^^.
Donc vu que tu commences directement par qqch qui n'est pas numérique... Ca doit poser problème par là j'suppose (En gros je répète ce qu'à déjà dit Polux :( )
dans un Insert tu indiques les champs où tu veux mettre des valeurs ... ce n'est pas la définition de la table ...
Pour Rikkounette ... l'insertion dans une table Access (ou autre) n'a rien à voir avec le type de connexion ... ADODB est un gestionnaire de connexion (on dit aussi "driver") ...
Vous avez les mêmes profs ??? :DDD
je vous laisse encore plancher sur le sujet ... j'ai une big réunion dans pas longtemps et je ne serai dispo que cet aprem ...
Et comme c'est en sciant que Léonard devint scie, c'est en programmant qu'on devient programmeur ...
;o)
EDIT: correction ... non vous avez pas les mêmes profs ... bien vue Rikki ;o)
Table maTable(id, champ1, champ2, champ3) Insert Into myTable(champ1, champ3) value ('Papa', 'Maman') ID champ1 champ2 champ3 -------------------------------------------------- 1 Papa Maman
Pour Rikkounette ... l'insertion dans une table Access (ou autre) n'a rien à voir avec le type de connexion ... ADODB est un gestionnaire de connexion (on dit aussi "driver") ...
Vous avez les mêmes profs ??? :DDD
je vous laisse encore plancher sur le sujet ... j'ai une big réunion dans pas longtemps et je ne serai dispo que cet aprem ...
Et comme c'est en sciant que Léonard devint scie, c'est en programmant qu'on devient programmeur ...
;o)
EDIT: correction ... non vous avez pas les mêmes profs ... bien vue Rikki ;o)
Il y a un truc que je ne comprend pas dans ton code Polux.
Tu as une méthode fillStruct qui fait appel à inittab.
Vu que Mod_cal_retenu est un champ de type texte je l'ai mis à "" et non à 0.
Mais quand je pointe sur Mod_cal_retenu, ça m'affiche .Mod_cal_retenu = 0.
Je ne comprend pas d'où vient le 0.
Idem, tout à l'heure sur le code :
Si je pointais vers rs.Fields(8), ça m'affichait rs.Fields(8) = "M1" (donc là ça va).
Mais si je pointais toute la ligne, j'avais .Mod_cal_retenu = 0.
J'ai repris le code du début, mais je dois avouer que je ne comprend pas.
Je suis vraiment désolé de te prendre tout ton temps comme ça.
J'espère pouvoir te rendre la pareille un jour (m'enfin ça m'étonnerais vu mes connaissances par rapport aux tiennes ^^).
Tu as une méthode fillStruct qui fait appel à inittab.
With entStd .id_STD = -1 .Lib_Verbe = "" .Lib_Complement = "" .Lib_Sujet = "" .Mod_cal_retenu = "" End With
Vu que Mod_cal_retenu est un champ de type texte je l'ai mis à "" et non à 0.
Mais quand je pointe sur Mod_cal_retenu, ça m'affiche .Mod_cal_retenu = 0.
Je ne comprend pas d'où vient le 0.
Idem, tout à l'heure sur le code :
If Not IsNull(rs.Fields(8)) Then .Mod_cal_retenu = rs.Fields(8) Else .Mod_cal_retenu = "" End If
Si je pointais vers rs.Fields(8), ça m'affichait rs.Fields(8) = "M1" (donc là ça va).
Mais si je pointais toute la ligne, j'avais .Mod_cal_retenu = 0.
J'ai repris le code du début, mais je dois avouer que je ne comprend pas.
Je suis vraiment désolé de te prendre tout ton temps comme ça.
J'espère pouvoir te rendre la pareille un jour (m'enfin ça m'étonnerais vu mes connaissances par rapport aux tiennes ^^).
dans le module modent_std il faut aussi changer le type dans la structure :
ça doit le faire ...
Private Type TabEnt_STD id_STD As Long Lib_Verbe As String Lib_Complement As String Lib_Sujet As String Mod_calc_retenu As String End Type
ça doit le faire ...
J'espère vous avez bien mangé :)
Je viens de me rendre compte d'une nouvelle catastrophe naturelle, après avoir recommencé un bout de mon applic sur Access avec un backup tout moisi, je vois que tous les formulaires sont effacés après que je sois allée manger...
Je sais plus quoi penser.
EDIT : Aha. En supprimant puis rajoutant les tables liées, les formulaires se font la malle ? Génial, ça ...
Je viens de me rendre compte d'une nouvelle catastrophe naturelle, après avoir recommencé un bout de mon applic sur Access avec un backup tout moisi, je vois que tous les formulaires sont effacés après que je sois allée manger...
Je sais plus quoi penser.
EDIT : Aha. En supprimant puis rajoutant les tables liées, les formulaires se font la malle ? Génial, ça ...
Bon alors et ce café bien fort ???.... l'est zou ???
Il est gros ton projet Rikki ?
Il est gros ton projet Rikki ?
C'est clair ... que ça fout les boules ... mais, il faut voir le bon coté ... tu feras plus souvent des backup maintenant :DD
"Censé gérer les absences des élèves" ... vous programmez les absences chez vous ???
avec un planning et tout et tout ? ^^
mouais c'est moyen ...
MrSlave a l'air de mieux s'en sortir maintenant ... il fait des Insert à tour de bras with two fingers in the nose ...
"Censé gérer les absences des élèves" ... vous programmez les absences chez vous ???
avec un planning et tout et tout ? ^^
mouais c'est moyen ...
MrSlave a l'air de mieux s'en sortir maintenant ... il fait des Insert à tour de bras with two fingers in the nose ...
Euh ... Polux ?
Est ce que tu sais à quoi correspond l'erreur :
"Méthode ou membre de donnée introuvable" ?
Parce qu'en fait au lieu d'utiliser la table ent_std pour verbes, sujets ... je dois utiliser une table element (qui comporte des champs différents).
J'ai donc changer tout ce qui avait attrait à ent_std mais je une erreur dans le id_element de fillstruct.
Est que tu sais d'où ça pourrait venir ?
Ps : finger in the nose ?
Mwai, on verra demain. xD
Est ce que tu sais à quoi correspond l'erreur :
"Méthode ou membre de donnée introuvable" ?
Parce qu'en fait au lieu d'utiliser la table ent_std pour verbes, sujets ... je dois utiliser une table element (qui comporte des champs différents).
J'ai donc changer tout ce qui avait attrait à ent_std mais je une erreur dans le id_element de fillstruct.
Est que tu sais d'où ça pourrait venir ?
Ps : finger in the nose ?
Mwai, on verra demain. xD
vu d'ici ... non je vois pas ... mais si tu mets ton code ... je vais peut être entrevoir le pourquoi du comment ...
Je ne vais peut être pas tout mettre. ^^
FillStruct :
Besoin d'autre chose ? ;)
Private Type TabElement id_element As Long type_element As String Lib_element As String actif As Boolean End Type Public element As TabElement
Public Function getId_element() As Long getId_element = element.id_element End Function
Public Sub initTableElement() Dim query As String Dim vrai As Boolean query = "Select Distinct * from element" Set rs = New ADODB.Recordset vrai = ModuleBdD.OpenRecordset(query, rs) If vrai = False Then MsgBox "Erreur initialisation table Element", vbExclamation, "ERREUR" Exit Sub Else Call fillStruct(rs) End If End Sub Public Sub initTab() With element .id_element = -1 .type_element = "" .Lib_element = "" .actif = "" End With End Sub
FillStruct :
Public Sub fillStruct(rs As ADODB.Recordset) initTab With entStd If Not IsNull(rs.Fields(0)) Then .id_element = rs.Fields(0) Else .id_element = 0 End If ...
Besoin d'autre chose ? ;)
Première erreur:
Deuxième erreur
Voili voilou :O))
Public Sub fillStruct(rs As ADODB.Recordset) initTab With entStd '<<--------- l'erreur ici Mettre With element ...
Deuxième erreur
Public Sub initTab() With element .id_element = -1 .type_element = "" .Lib_element = "" .actif = "" <<-------------------- type booléen dans la structure mettre False par défaut. End With End Sub
Voili voilou :O))