cs_JACKY007
Messages postés23Date d'inscriptionvendredi 16 septembre 2005StatutMembreDernière intervention 1 décembre 2010 17 déc. 2012 à 09:15
Attention, en bdd il ne faut jamais utilisé de "SELECT * " (sauf avec un Count...) car si un jour pour des raisons de maintenance on venait à ajouter une colonne : 1) Ton code risque de ne plus fonctionner 2) Dans le meilleur des cas tu ralentis la récupération de données (il suffit d'imaginer que la colonne que tu rajoutes soit de type Blob avec des vidéos de démo !)
;)
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 16 déc. 2012 à 12:21
Très bon boulot (hormis quelques corrections de fonctionnement).
Reste aussi à corriger l'orthographe à certains endroits, tu es faché avec le S de "conStante" par exemple (3 fois) mais cela reste un travail excellent surtout pour ceux qui commence avec VB6. J'avoue qu'il y a quelques années cela m'aurait été bien utile, mais je suis passé à .NET maintenant, mais VB6 m'intéresse encore beaucoup.
Bonne prog et merci pour ce travail qui n'a surement pas été simple (j'ai mis 10 ca les vaux).
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 16 déc. 2012 à 10:50
Supprimer Xa=... résout le bug d'impression.
Encore un autre bug : cliquer sur le nom d'une catégorie quand on est dedans ou sur une ligne vide crashe l'appli.
Et cette intro est absolument inutile et pénible pour l'utilisateur. 1,5 seconde suffit largement.
cs_Cheval
Messages postés81Date d'inscriptiondimanche 21 juillet 2002StatutMembreDernière intervention11 octobre 2015 15 déc. 2012 à 17:44
Je sais j'ai pas mal d'erreur de programation... Mais j'ai des causes aténuantes... le premier basic que j'ai eu ,il y a 40 ans et il est dificile de ce défaire des mauvaises habitude!!!!
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 15 déc. 2012 à 14:36
Il te faut corriger ceci : Dans les OpenDatabase, il faut inclure le répertoire, exemple :
Set MaDB = Espace.OpenDatabase(App.Path & "\MOTCLES.MDB")
"On Error Resume Next" ne doit être utilisé que dans des cas très particuliers et n'est pas là pour masquer un code qui ne prend pas le soin de tester la présence d'objet ou de contenu. C'est un piège que tu dresses toi même et qui te fera perdre du temps un jour, puisqu'il masque une erreur évitable; exemple :
- Set RsUsers = MaDB.OpenRecordset("SELECT * FROM Liste")
- On Error Resume Next
- RsUsers.MoveLast
Supprime le "On Error" et mets en place un If :
If RsUsers.RecordCount > 0 Then
et ensuite, tu peux faire tes Move
Beaucoup d'à peu près :
Quand tu charges ta DB, toutes ces syntaxes sont identiques :
- Set RsUsers = MaDB.OpenRecordset("SELECT * FROM Liste WHERE MotsCles")
- Set RsUsers = MaDB.OpenRecordset("Liste")
- Set RsUsers = MaDB.OpenRecordset("SELECT * FROM Liste")
(avec la palme de l'inutile pour la première syntaxe)
Dans la mesure où tu répètes ces actions plusieurs fois, il aurait été souhaitable de mettre ce code dans une Sub ou une Function et de l'appeler quand cela est utile.
De plus, les données n"tant pas sujettes à modification, pourquoi les relire sans cesse ?
Nous voilà revenu à l'époque du minitel : Tout en majuscules ! Pouah!
Dommage aussi que tout ton code ne soit pas indenté, ce qui le rend illisible.
De plus, on le crie à longueur de journée sur le forum : DAO est obsolète et il faut utiliser ADO :
DAO = moteur de DB présent par défaut pour les syntaxes comme "Dim maDB As Database"
Bien sûr, il fonctionne à peu près, mais, par exemple, la méthode .Find ne fonctionne pas toujours (bug connu)
ADO = moteur très ressemblant à DAO. Il faut ajouter la référence à "MS ActiveX Data Objects". Voir les différents exemples parmi les sources du site et le forum.
Quel dommage. L'idée était bonne.
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 15 déc. 2012 à 10:28
Pourquoi du full-screen ? Pourquoi ne pas utiliser un TreeView pour présenter le contenu ?
Bug à l'impression : pas de marge à droite donc le texte "dépasse" et est illisible une fois imprimé.
17 déc. 2012 à 09:15
;)
16 déc. 2012 à 12:21
Reste aussi à corriger l'orthographe à certains endroits, tu es faché avec le S de "conStante" par exemple (3 fois) mais cela reste un travail excellent surtout pour ceux qui commence avec VB6. J'avoue qu'il y a quelques années cela m'aurait été bien utile, mais je suis passé à .NET maintenant, mais VB6 m'intéresse encore beaucoup.
Bonne prog et merci pour ce travail qui n'a surement pas été simple (j'ai mis 10 ca les vaux).
16 déc. 2012 à 10:50
Encore un autre bug : cliquer sur le nom d'une catégorie quand on est dedans ou sur une ligne vide crashe l'appli.
Et cette intro est absolument inutile et pénible pour l'utilisateur. 1,5 seconde suffit largement.
15 déc. 2012 à 17:44
15 déc. 2012 à 14:36
Set MaDB = Espace.OpenDatabase(App.Path & "\MOTCLES.MDB")
"On Error Resume Next" ne doit être utilisé que dans des cas très particuliers et n'est pas là pour masquer un code qui ne prend pas le soin de tester la présence d'objet ou de contenu. C'est un piège que tu dresses toi même et qui te fera perdre du temps un jour, puisqu'il masque une erreur évitable; exemple :
- Set RsUsers = MaDB.OpenRecordset("SELECT * FROM Liste")
- On Error Resume Next
- RsUsers.MoveLast
Supprime le "On Error" et mets en place un If :
If RsUsers.RecordCount > 0 Then
et ensuite, tu peux faire tes Move
Beaucoup d'à peu près :
Quand tu charges ta DB, toutes ces syntaxes sont identiques :
- Set RsUsers = MaDB.OpenRecordset("SELECT * FROM Liste WHERE MotsCles")
- Set RsUsers = MaDB.OpenRecordset("Liste")
- Set RsUsers = MaDB.OpenRecordset("SELECT * FROM Liste")
(avec la palme de l'inutile pour la première syntaxe)
Dans la mesure où tu répètes ces actions plusieurs fois, il aurait été souhaitable de mettre ce code dans une Sub ou une Function et de l'appeler quand cela est utile.
De plus, les données n"tant pas sujettes à modification, pourquoi les relire sans cesse ?
Nous voilà revenu à l'époque du minitel : Tout en majuscules ! Pouah!
Dommage aussi que tout ton code ne soit pas indenté, ce qui le rend illisible.
De plus, on le crie à longueur de journée sur le forum : DAO est obsolète et il faut utiliser ADO :
DAO = moteur de DB présent par défaut pour les syntaxes comme "Dim maDB As Database"
Bien sûr, il fonctionne à peu près, mais, par exemple, la méthode .Find ne fonctionne pas toujours (bug connu)
ADO = moteur très ressemblant à DAO. Il faut ajouter la référence à "MS ActiveX Data Objects". Voir les différents exemples parmi les sources du site et le forum.
Quel dommage. L'idée était bonne.
15 déc. 2012 à 10:28
Bug à l'impression : pas de marge à droite donc le texte "dépasse" et est illisible une fois imprimé.