CLASS VB POUR TABLE ACCESS

cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009 - 17 févr. 2006 à 12:34
le roi_hidri Messages postés 1 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 14 mars 2006 - 14 mars 2006 à 12:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36086-class-vb-pour-table-access

le roi_hidri Messages postés 1 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 14 mars 2006
14 mars 2006 à 12:12
bien contunie
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
17 févr. 2006 à 18:33
Je suis interessé par ton projet, générer un form.
J'aimerais bien savoir comment générer un form (avec des contrôles) que ce soit en mode création du projet ou déjà compilé. C'est à dire générer un form utilisable par l'application. Quelle est l'intérêt mes applis se ressemble beaucoup côté ergonomie des interfaces alors pourquoi pas faire un générateur suivant des principes qui me sont propres. A ce moment je pourrais sérieusement travailler le design qui pour moi est encore un problème.
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
17 févr. 2006 à 17:34
Ha ok, je vois ce que tu veux dire maintenant, mais comme' je l'ai mis dans le titre c pour une table Access. bref, je posterais bientot une source capable de générer un form Vb à partir d'une table Access, un peu comme ta source mais à la différence que moi, je veux génèrer un form, ce n'est pas un form dynamique...
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
17 févr. 2006 à 17:06
Ton code je suis marche bien et je continue de dire que l'idée est très bonne.
Pour le code je me suis limité à l'exemple du source et j'ai du oublier de le download, mille choses à la fois.

Je prends ta fonction MODIFIER : Public Sub MODIFIER(rs As ADODB.Recordset, cn As ADODB.Connection, sql As String, Frm As Form, ParamArray NomChamp() As Variant)

Pour moi, si rs, cn et sql ne sont envoyés en paramètre cela permet déjà que ta classe puisse être utilisée pour tous les providers, ces variables doivent être des propriétés de la classe. De deux au lieu d'envoyer la form en paramètre, ce qui limite les possibilités de ta fonction MODIFIER, tu lui envoi la liste des valeurs pour la modification en une variable array. sachant que la valeur 1 corespond au champ 1 et etc ...
Tu pourras de ce fait créer une méthode qui lit les valeurs des champs recordset sur un formulaire et renvoie le résultat sous forme d'Array.

C'est juste des suggestions mais ton code il marche impec,bien que je trouve un peu des redondances.
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
17 févr. 2006 à 13:21
Certes, j'ai déposé cette source pour donner une idée sur la manipulation d'une table par une classe. Evidemment, on peur rajouter ce que l'on veut. De plus, je suis en train d'améliorer la fonction lister, pour qu'elle accepte les valeurs null...
je voulais initialiser le recordset comme tu dis, mais sans le faire ça marche très bien aussi. Alors je vois pas l'intérêt.
Je ne vois pas ce que tu veux dire par:
"pour la modification tu envoi les nouvelles valeurs en paramètre comme une variable de type array, ceci te permettra de créer une méthode qui lit les nouvelles valeurs dans un form et renvoi le résultat en variant (array)."
Actuellement, je ne vois pas ce qui m'empêche de parcourir le recordset, as-tu regardé mon code en entier?
De plus, je ne vois pas quoi mettre dans l'image pour que ça soit bien représentatif, t'as une idée?
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
17 févr. 2006 à 12:34
Je trouve que la capture d'écran n'exprime pas l'importance de ce code.

En gros l'idée est bonne, tu voudrais alléger le travail d'implémentation de table basé sur un form, une classe qui se charge du travail suivant les paramètres.

Néanmoins je le trouve toujours figé puisque tu peux l'améliorer pour une plus grande utilisation. A cet effet il s'agira toujours d'une classe mais avec des propriétés et des méthodes supplémentaires. Certains des éléments que tu envoie en paramètre sont plutot des propriétés de la classe qu'il faut initialiser avant d'utiliser tes méthodes (ajouter, modifier et supprimer).
De ce fait le recordset ouvert doit d'abord être initialiser par un "set class.lerecordset =..." ceci permet de passer les tables de n'importe quel provider, la reconnaissance des champs est automatique. Bien évidemment tu devrais ajouter des méthodes pour se déplacer dans le recordset. pour la modification tu envoi les nouvelles valeurs en paramètre comme une variable de type array, ceci te permettra de créer une méthode qui lit les nouvelles valeurs dans un form et renvoi le résultat en variant (array).
En gros tu créeras autant de méthodes que tu voudras pour des cas spécifiques mais une seule méthode tout terrain pour (ajouter, modifier et supprimer)
Rejoignez-nous