LES BASES DE DONNÉES EN VB6

edsinouhe Messages postés 7 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 28 juin 2010 - 28 juin 2010 à 08:23
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 8 mars 2011 à 19:35
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/51945-les-bases-de-donnees-en-vb6

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
8 mars 2011 à 19:35
Tu dois ajouter la référence "Microsoft ActiveX Data Objects 2.8 Library" à ton projet ...
eleveamateur Messages postés 6 Date d'inscription dimanche 6 mars 2011 Statut Membre Dernière intervention 7 mars 2011
8 mars 2011 à 09:03
j'ai essaier avec VB6 mais en compilent le message suivant apare
'compile error:user-difinedtype not difined'(Conn As ADODB.Connection. ou est le problemme.
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
12 août 2010 à 09:38
J'ai ajouté au chargement DataGrid.Columns(0).Locked=True et ça marche ... Merci !
Galaad9999 Messages postés 27 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 27 août 2010
12 août 2010 à 04:47
Alors voilà, je cherche pendant près d'une heure pour le bug, ensuite je poste le message précédent, je prends une gauffre (mais ça on s'en balance en fait), je cherche encore 10 minutes et là, Oh!Miracle je tombe sur ce thread : http://www.bigresource.com/Tracker/Track-vb-5zVPR05u/

Je copie ci-dessous la solution trouvée par ce gars en australie :
********************
You need to go to the Custom settings of your datagrid then goto 'Splits' and set the 'Locked' value to on.

You could, if you wanted to, add a line like this prior to loading your database

datagrid1.Splits(0).Locked = True

Then, every time you want to edit the datagrid you should use a line like the following....

datagrid1.AllowUpdate = True
datagrid1.Splits(0).Locked = False

Once your edit is done lock it up again to keep it all safe.

datagrid1.AllowUpdate = False
datagrid1.Splits(0).Locked = True
***********
Et le pire, c'est que cela semble fonctionner ;-)
Galaad9999 Messages postés 27 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 27 août 2010
12 août 2010 à 04:36
Salut ghuysmans99,

Toujours pas de solution pour ton bug ? (oui j'ai le même en fait ;-) )

Bien à toi/vous,
Galaad9999 Messages postés 27 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 27 août 2010
2 août 2010 à 19:50
Bonsoir,

Super....et hop, je télécharge le source complété et j'essaie de m'en sortir ;-)

Quoiqu'il en soit, merci pour vos conseils et pour le temps investit pour ma demande....

Et rassurez-vous, ce ne sera sans doute pas la dernière :-D
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
2 août 2010 à 18:34
La programmation objet de base de donnée est beaucoup plus intuitive et plus facile. C'est pour cela que, oui, je pense aussi qu'il vaut mieux lier les objets ADO aux contrôles. Le débutant devra faire des efforts pour apprendre la syntaxe de ces méthodes mais après, à l'usage c'est bien mieux. Perso, je préfère l'objet ADO (ADODB) plutôt que le contrôle ADO (ADODC). Parce que l'espace mémoire allouée est plus petit, le code est plus souple et puis c'est aussi une histoire de goût ;-)
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
2 août 2010 à 18:03
Voilà, j'espère qu'elle est plus compréhensible maintenant.

@GALAAD9999 : Les étapes à suivre pour utiliser une base de données en VB6 sont simples : au démarrage du programme, tu dois te connecter à la base de données avec l'objet ADODB.Connection et à la fermeture tu dois fermer la connexion et détruire cet objet. A chaque fois que tu veux exécuter une requête, tu dois utiliser la méthode Execute de ton objet ADODB.Connection. Si cette requête renvoit un résultat, tu dois le stocker dans un ADODB.Recordset, le parcourir, le fermer à l'aide de sa méthode Close et le détruire.
Dans ma source, je manipule aussi la base de la façon que tu décris, à part que je modifie au chargement du formulaire la chaine de connexion de l'ADODC. C'est plus simple, oui, mais tu ne t'en serviras pas dans le cas d'un formulaire de login ;) De toutes façons on peut faire la même chose sans lier les contrôles mais avec plus de code, ce n'est qu'une question de goût ...
Galaad9999 Messages postés 27 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 27 août 2010
2 août 2010 à 11:05
Salut ghuysmans99,

Tout d'abord merci d'avoir fait ce source. Ensuite, serait-il possible dés lors de le commenter un peu plus (dans le code, ou un simple text file) avec par exemple les étapes à suivre (dans l'ordre ;-) ) et le pourquoi ?

Aussi, dans un livre que je possède (mais ou les accès bdd sont très peu discutés), au lieu de créer un "objet ??" connexion (cnx), et lui donner le type d'accès (oldb....), il (le livre) me fait mettre un composant OLE ADO sur ma feuille, et ce ce dernier qui possède l'esseble de ces info, ensuite "il n'y a plus qu'à" (toujours facile à dire/écrire ;-) ) lier les composants ?? N'est-ce pas plus simple ? Quel(s) avantage(s) procure ta méthode ?

Merci d'avance,
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
30 juil. 2010 à 15:19
Wow j'ai mal interprété (je considérais que le "j'" me représentait). Ookay j'ai compris maintenant ce que tu voulais dire. Mais t'étais quand même pas obligé de me coller un 3, en plus en ne donnant pas d'explications à propos des "Possibilités de mise en oeuvrE simplistes et mal codées".
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
30 juil. 2010 à 15:14
Non, non, je ne me suis pas trompé. Moi, j'avais envie d'apprendre [...]
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
30 juil. 2010 à 14:16
@philippe734 : Primo, c'est pas "j'avais envie d'apprendre" mais "j'avais envie de faire apprendre aux débutants". Le code n'est certes pas commenté mais les noms de variable sont choisis de façon logique, le code est structuré et je reste à l'écoute des gens.
"les possibilités mises en oeuvrE sont simplistes et mal codées" ... WHY?
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
29 juil. 2010 à 19:48
J'avais envie d'apprendre à utiliser les bases de données en vb6 via un datagrid. Puis, après avoir consulté une dizaine de sources comme celle là, et après avoir maitrisé le sujet, je me suis senti obligé d'en publier une. Cette source n'est pas commentée, les possibilités mises en oeuvres sont simplistes et mal codées...
richardkangiama Messages postés 4 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 16 décembre 2011
29 juin 2010 à 11:15
bjr

ce vous avaiz pleinnement raison mais moi j'ai conseillerais pour ceux qui voudrons crée des applications en VB 6.0 avec BDD d'utiliser les code
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
28 juin 2010 à 08:52
Je ne connaissais pas cet exemple. Il fait la même chose que mon programme ...
edsinouhe Messages postés 7 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 28 juin 2010
28 juin 2010 à 08:23
bonjour,

Pour ceux qui souhaitent devenir balaizes en base de données, il existe le programme VISDATA dans les samples de visual basic. En recherchant sur ce nom vous trouverz toutes les sources de ce programme...

Evidemment, il faut avoir eu le cd d'installation et avoir installé tous les samples...

bon développement
Rejoignez-nous