Base de données sous VB6

jyver Messages postés 46 Date d'inscription dimanche 5 juin 2005 Statut Membre Dernière intervention 10 juillet 2007 - 16 sept. 2005 à 12:56
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 - 7 nov. 2005 à 01:28
Bonjour,

Quel type de fichier utiliser pour créer une base de donnée ?
ex : stocker le nom l'age d'une personne par exemple

Et comment ensuite utiliser cette base de donnée pour en extraire les valeurs souhaitées ?
Je suis novice en VB6 mais je connais pas mal VBA (Excel)
Merci pour vos réponses

10 réponses

vaneri2004 Messages postés 28 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 17 février 2006
16 sept. 2005 à 15:28
Moi pos trop comprendre (Quel type de fichier??? )
tu dois tout d'abord référencer dans le projet
--- Microsoft ActiveX Data Object 2.x library

Ensuite tout dépend de la base de données que tu veux utiliser... Access, SQL Server, Oracle, ...
pour établir la connexion.

Si tu est novice je te conseille Access + simple ;-)
Fait des recherches sur les sources du site et tu trouveras sans doute un modèle pour la connection ;-)
Bonne prog
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
16 sept. 2005 à 17:14
Comme le dit vaneri, Access est plus simple a utiliser.


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Disons que tu as une Base de donnée du non de MaBase qui contient une table nommée MaTable.


Dans MaTable, il ya Non, Prénom, Age par exemple.





Pour remplir les champs Non, Prénom, Age, il faut déjà te connecter a ta base.


Pou cela :





Private Sub CmdAjouter_Click()


Dim Cnn As New ADODB.Connection


Dim Rst As New ADODB.Recordset





' Ouverture de la connection


Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _


"Data Source= .\Base de donnée\Introx Manut.mdb;"





‘Maintenant « connexion avec la table »





' Ouverture du Recordset (tu mettre des conditions)


Rst.Open "SELECT * FROM [MaTable] ", Cnn, adOpenKeyset, adLockOptimistic





' Ajout d'un enregistrement


Rst.AddNew





' Spécification des valeurs des champs


Rst!Nom = TxtNom ‘Bien sur tu auras dans ta form VB


Rst!Prénom = TxtPrénom ‘ des TextBox : TxtNom…. Ou tu mettra


Rst!Age = TxtAge ‘ le Nom, Prenon….





' Enregistrement des modifications effectuées sur l'enregistrement en cours dans le Recordset


Rst.Update





' Fermeture du Recordset


Rst.Close





' Fermeture de la connection


Cnn.Close





Voila une manier simple pour écrire dans une base depuis VB
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
16 sept. 2005 à 17:36
dans mon exemple, j'ai pas nomé la base "MaBase". mais bon, je penses que tu as compri que c'est:
Data Source = (Le chemin sur le disque " C:Dossier.....MaBase.mdb")

Maintenant, pour visualiser pour en extrère les valeurs soufaité, tu fais:


Private Sub Viualiser_Click()<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Dim Cnn As New ADODB.Connection


Dim Rst As New ADODB.Recordset


' Ouverture de la connection


Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _


"Data Source= .\MaBase.mdb;"


‘Maintenant « connexion avec la table »


' Ouverture du Recordset (ici, tu as un champ sur ta form nommé TxtNomRec, et tu veux afficher les infos sur le nom que tu auras mi dedans)


Rst.Open "SELECT Non, Prénom, Age FROM [MaTable] WHERE Nom = '" & TxtNomRec & "'", Cnn, adOpenKeyset, adLockOptimistic




' Spécification des valeurs des champs


TxtNom = Rst!Nom


TxtPrénom = Rst!Prénom


TxtAge = Rst!Age




' Fermeture du Recordset


Rst.Close


' Fermeture de la connection


Cnn.Close

End sub ' je l'ai oublier dans CmdAjouter.

Voila comment Simplement comment extraire les données
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
16 sept. 2005 à 17:46
<TD id=HB_Focus_Element vAlign=top width=\"100%\" background=\"\" height=250 body UNSELECTAB<>Dernier truc, ces exemples ne sont qu'un appercu Pour avoir une idée . J'utilise cette méthode depuis longtemps, et jamais de problème. cette methode c'est ADO. maintenant, il faut bien sur gérer les erreurs. connaitre d'autres propriétés ou fonction. mais, j'espère que cela t'aura un peu aidé.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jyver Messages postés 46 Date d'inscription dimanche 5 juin 2005 Statut Membre Dernière intervention 10 juillet 2007
17 sept. 2005 à 23:08
Merci pour cette première réponse fort instructive. Cependant si l'ordinateur utilisant le programme ne possède pas Access, est-ce que ca marche?
L'objet "Microsoft ActiveX Data Object 2.x library" est à ajouter d'abord ?

Jyver
Novice VB
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
17 sept. 2005 à 23:49
Oui, meme si tu n'as pas access, cela marche. bien sur, pas seul, il faut une base de donnée. elle peut etre sous WinDev, Oracle....
Maintenant, je t'ai parlé de access, parceque c'est le plus facile a utilsé. et surtou pour des débutants. en plus, il ne sert a rien d'utiliser
Oracle, pour gérer une aplication de notre niveau. ont a pas besoin. c'est comme utiliser un basouka pour tuer une mouche.

et, pour les références, avec ADO, tu dois bien avoir:


"Microsoft ADO Ext. 2.1 for DDL and Security".
"Microsoft ActiveX Data Objects 2.1 Library".
"Microsoft Jet and Replication Objects 2.1 Library".


autre chose?



-----------------------------------------------------------------------------------
La connaissance ne connait pas de limite, puisque Les recherches la nourrissent
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
17 sept. 2005 à 23:59
Remarque: pour ta question ou tu demandes si on peut utiliser le programme sans qu'il y ais access d'installé, je viens de voir un autre
sens a ta question. si tu veux parlé de l'utilisé après avoir fini le programme, c'es oui. en effet, lorsque ton code est prêt,
tu fais le compactage, et si tu veux, tu mets ton Programme sur un CD, et tu le place sur un ordinateur qui vient d'etre installé,
(c'es a dire un ordinateur qui ne contient ni Access, ni VB, "Vraiment rien de spécial") et tu pourra utiliser le programme sans problème



-----------------------------------------------------------------------------------
La connaissance ne connait pas de limite, puisque Les recherches la nourrissent
0
jyver Messages postés 46 Date d'inscription dimanche 5 juin 2005 Statut Membre Dernière intervention 10 juillet 2007
20 sept. 2005 à 12:51
Merci,
en effet ta remarque répond à ma question. Les 3 objets que tu m'as énoncé
"Microsoft ADO Ext. 2.1 for DDL and Security".
"Microsoft ActiveX Data Objects 2.1 Library".
"Microsoft Jet and Replication Objects 2.1 Library".

sont à placer sur la form ? ou simplement à intégrer dans la barre d'outils ?

également ceci:
Rst.Open "SELECT * FROM [MaTable] ", Cnn, adOpenKeyset, adLockOptimistic
A quoi sert un recordset ? et les options (adopenkeyset, adlockoptimistic), quelles sont les autres disponibles et quelles sont leur role ?

Merci de prendre de ton temps pour me répondre.
Aurais-tu éventuellemnt un exemple de base de données avec son application VB à me proposer ?
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
21 sept. 2005 à 14:58
ces Trois objets, tu les coches dans Reference:
>projet
>>references
tu coches les 3 "objets", et tu valide avec OK

ensuite, un recordsest, à quoi il sert?
dans l'exemple, tu as vu Cnn qui est la connection. donc, grace a elle, tu t'es connecté a la base de donnée.
maintenant, le fait de te connecter a la base n'est pas tout. si tu veux te connecter à ta base, c'est pour y
prendre des information, ou, pour y ajouter des données. pour cela, tu fais une requete. cette requette
te permetteras de définir la table que tu veux utiliser, les champs, si elle sera en lecture seul ou modifiable
Etc... "j'ai essayé d'expliquer terre a terre. j'espère ne pas avoir mal employé un terme"
et, c'est Rst.Open qui ouvre (active) ta requete.

donc, quand comme dans l'exemple, je dis:
Rst.Open "SELECT * FROM [MaTable] ", Cnn, adOpenKeyset, adLockOptimistic

la, le caractère " *" veut dire que tu selectionnes tous les champs de la table [MaTable] .maintenant,
si tu n'as pas besoins de tous les champ de la table, tu aurais remplacé le * par les noms des champs voulu,
en les séparant par une virgule: Select Nom, Prenom, Age From [MaTable]

dans cette requette, il n'y a pas de codition de selection. donc, tu "prendras" tous les enregistrement de la table.
Mais, tu peux poser des conditions de selection. c'est a dire que si tu ne veux que les employés Agé de 45 ans,
tu fais: Select Nom, Prénom From [employé] where Age = 45 La, where pose la condition.

Maintenant, pou ce qui est de : adOpenKeyset, adLockOptimistic

si tu ne met rien après la Cnn, tu auras une requete qui ne peut qu'utiliser les enregistrements. (Lire, Afficher).
MAis, tu ne peux pas modifier ou enregistrer.
il ya des parametres à Ajouter, (comme ce que tu as dans l'exemple) qui précise si l'on ne doit que lire, ou si
on peut modifier ou écrire dans la tabe. ces parametres servent à cela.

Te donner les autres!
je pense qu'il y en a 4 (je n'en suis pas sur) et, ne les connais pas par coeur.

je verais dans mes docs, et te les enverai avec des explications.

En Espérant t'avoir aidé, et surtout, sans t'avoir mis dans le fau.

A+
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
7 nov. 2005 à 01:28
Attention, à mon avant dernier message, quand je dis rien de spécial, il faut un minimum pour la sauvegarde des données. donc, ne mettre que windows, ca passe pas.:!!!! :)

et pour l'empaquetage, assures toi que tous les DLL sont dans le CD.
(mieux vaut tard que jamais...:)=)
0
Rejoignez-nous