Crée une base de donnée

Résolu
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006 - 26 juil. 2004 à 22:34
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006 - 27 juil. 2004 à 18:28
bonsoir,je veux crée une base de donnée dans mon programme pendant l'execution,qui sera du type :

|chaine|prog|date |time |durée...
TF1 |abc |27/08/2004|15:00|50
.
.
...ect
merci de votre aide.

23 réponses

cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 juil. 2004 à 15:52
Je crois que tu as des champs qui n'acceptent pas les valeur NULL alors essay de remplir tous les champs

Rc!Chaine = "TF1"
Rc!Prog=...
Rc!Date...
...
...
Rc.Update

Sinon pour l'autre question lisez ca :

ADO n'est pas automatiquement compatible avec le code de vos applications d'accès aux données existantes. Bien qu'ADO encapsule la fonctionnalité de DAO et RDO, vous devez convertir de nombreux éléments du langage vers la syntaxe ADO. Dans certains cas, ceci signifie uniquement une simple conversion de certaines fonctions de votre code existant. Dans d'autres cas, il peut être plus intéressant de récrire l'application en utilisant les nouvelles fonctionnalités ADO.

DAO (Data Access Objects) a été la première interface orientée objet à exposer le moteur de base de données Microsoft Jet (utilisé par Microsoft Access) et à permettre aux développeurs Visual Basic de connecter directement des tables Access, ou d'autres bases de données, par l'intermédiaire d'ODBC. Le modèle DAO est particulièrement adapté aux applications de systèmes autonomes ou aux déploiements locaux, à petite échelle.

RDO (Remote Data Objects) est une interface d'accès aux données orientée objet pour ODBC, combinée au style pratique de DAO, offrant une interface qui exploite virtuellement toute la flexibilité et la puissance de bas niveau d'ODBC. Le modèle RDO a pour inconvénients l'accès peu performant aux bases de données Jet ou ISAM et l'obligation d'utiliser des pilotes ODBC existants pour accéder aux bases de données relationnelles. Cependant, le modèle RDO a conquis un grand nombre de développeurs SQL Server, Oracle et d'autres bases de données relationnelles volumineuses. RDO offre les objets, les propriétés et les méthodes nécessaires pour accéder aux aspects les plus ardus des procédures stockées et des jeux de résultats complexes.

ADO est le successeur des modèles DAO et RDO. Du point de vue fonctionnel, ADO 2.0 est plus proche de RDO, dont il partage généralement les mappages. ADO « aplatit » le modèle d'objet utilisé par DAO et RDO, c'est-à-dire qu'il contient moins d'objets, mais plus de propriétés, de méthodes (d'arguments) et d'événements. Par exemple, le modèle ADO n'a pas d'équivalent aux objets rdoEngine et rdoEnvironment qui exposaient les interfaces du gestionnaire de pilotes ODBC et d'hEnv. Vous ne pouvez pas non plus créer de sources de données ODBC à partir d'ADO, bien que votre interface puisse passer par le fournisseur de services ODBC OLE DB.

La plupart des fonctionnalités contenues dans les modèles DAO et RDO ont été regroupées en objets uniques pour constituer un modèle d'objet beaucoup plus simple. Pour cette raison, vous pouvez éprouver au départ des difficultés à trouver l'objet, la collection, la propriété, la méthode ou l'événement ADO approprié. À la différence de DAO et RDO, bien que les objets ADO soient hiérarchiques, ils peuvent également être créés hors de la portée de la hiérarchie.

Notez toutefois qu'ADO ne prend pas en charge actuellement toutes les fonctionnalités DAO. ADO inclut des fonctionnalités de type RDO pour interagir avec des sources de données OLE DB, additionnées de technologies à distance et DHTML.

En général, il est probablement trop tôt dans l'évolution d'ADO pour migrer immédiatement la plupart des applications DAO (sauf, peut-être, celles utilisant ODBCDirect) vers ADO, parce qu'il n'accepte pas encore la définition de données (DDL), les utilisateurs, les groupes, etc. Toutefois, si vous utilisez DAO uniquement pour les applications client-serveur sans faire appel au moteur de base de données Jet ou DDL, vous pouvez probablement migrer vers ADO immédiatement. Le cas échéant, Microsoft fournira un composant DDL ADO pour aider la migration DAO vers ADO et un support DDL générique pour les fournisseurs OLE DB.

Qui s'y frotte, s'y pique .
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 juil. 2004 à 23:49
Salut Zame
Inspire toi de cette source qui va lire et écrire une structure de DB Acces : Click ici
Vala
Jack
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 juil. 2004 à 00:04
voici un autre lien efficace :

http://www.microsoft.com/accessdev/articles/dao2.htm#Table

si tu comprend pas en anglais fais moi signe

Qui s'y frotte, s'y pique .
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 00:13
merci pour les liens,j'ai pas de pbs avec l'anglais,mais plutot avec les termes .
peut on dire que une table=colonne field=ligne
0

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

Posez votre question
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 juil. 2004 à 00:15
non

une table contient des colonnes
et les colonnes sont appeles field
et field en francais c'est un champ
ligne=row ou record

Qui s'y frotte, s'y pique .
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 juil. 2004 à 00:19
plus exactement

ligne=row
enregistrement=record

la table "table1" peut contenir les champs suivant

"chaine" de type TEXTE
"prog" de type TEXTE
"date" de type DATE
"time" de type DATE
"durée" de type NUMERIQUE

et

TF1,abc ,27/08/2004,15:00,50 est l'enregitrement (record)

Qui s'y frotte, s'y pique .
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 00:24
merci ca m'éclairci les idées,j'aurai du prendre un dico.enfait j'arrive à crée la table avec les champs,mais c après pour inserer les données,que j'ai un prob.je vais voir le lien que tu ma donné.
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 00:30
merci pour le lien,il est tres instructif,il à le mérite d'etre clair
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 juil. 2004 à 00:36
De rien !

et surtout n'hésites pas à nous demander si tu as besoin d'aide.

On est tous passé par là

Qui s'y frotte, s'y pique .
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 00:41
je suis pas newbies partout ,la bdd c un domaine que je commence,merci de ton aide.
sino tu sais pas si il y a une méthode simplifiée pour les records,parce que là pour chaques record il faut specifié la colonne.on sais jamais?
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 juil. 2004 à 00:44
oui utilise une requete SQL

ex :
set db=opendatabase("base")

db.execute "Insert into table1 values ("tf1","..",...)"

c tout

Qui s'y frotte, s'y pique .
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 00:58
si j'ai bien compri ADOX c pour la structure et ADOB pour les données
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 01:30
j'arrive pas a mettre en place ton code

----------------------
set db=opendatabase("base")
db.execute "Insert into table1 values ("tf1","..",...)"
-----------------------

voici mon code:

Sub CreateTable()
Dim tbl As New ADOX.Table
Dim key As New ADOX.key
Dim keyq As New ADODB.Command

' Initialiser la table et l'ajouter à la base
tbl.Name = "Table1"
tbl.Columns.Append "Chaine", adBSTR, 50
tbl.Columns.Append "Programme", adBSTR, 100
tbl.Columns.Append "Date", adDate
tbl.Columns.Append "Time", adDate
tbl.Columns.Append "Duree", adInteger

' Definir une clé primaire sur la table
key.Name = "ClePrimaire"
key.Type = adKeyPrimary
key.RelatedTable = "Table1"
key.Columns.Append "Champ1"

' Ajouter la clé à la table
tbl.Keys.Append key

End Sub
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 juil. 2004 à 13:11
ajoutes Microsoft ADO Ext 2.5 Dans le menu Projet/Références

ensuiste tu mets ce code dans Form_load

Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
Dim key As New ADOX.key

' Création de la base de donnée
cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDataBase.mdb"

' Ajout d'une table
tbl.Name = "Table1"
tbl.Columns.Append "Chaine", adVarWChar, 50
tbl.Columns.Append "Programme", adVarWChar, 50
tbl.Columns.Append "Date", adDate
tbl.Columns.Append "Time", adDate
tbl.Columns.Append "Duree", adInteger
cat.Tables.Append tbl

' Ajout d'une clé primaire
key.Name = "ClePrimaire"
key.Type = adKeyPrimary
key.RelatedTable = "Table1"
key.Columns.Append "Chaine"
tbl.Keys.Append key

Set key = Nothing
Set tbl = Nothing
Set cat = Nothing

et va voir ton disk c:

Qui s'y frotte, s'y pique .
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 13:22
oui,mais mom probleme n'est pas là.c pour les recordsets que je n'y arrive pas
ton code crée 1 table et 5 champs c ca?
les clé primaire je comprend pas la definition ,personnellement,je pense que quand on passe aux base de donnée,on passe vraiement à autre chose.
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 13:25
question :comment verifier que j'enregistre un record?

ce code est bon?

il me renvoi pas d'erreur,mais je sais pas comment verifer

'This function will show you how to add a record to the database which
'i have created already with access 2000

'Dim our variables
Dim DB As Database
Dim RS As Recordset
Dim WS As Workspace

'This sets a workspace for the database
Set WS = DBEngine.Workspaces(0)
'this opens the database
Set DB = WS.OpenDatabase(App.Path & "\basedao.mdb")
'this opens a table inside the database
Set RS = DB.OpenRecordset("Programmes", dbOpenTable)

'Tells the database we want to add a new record to the recordset
RS.AddNew

'Put the data in the proper fields
'RS is your recordset and ("field_name") points to the field you want to
'set the data for
RS("Chaine") = "coucou"

'Update the database. If you dont, the database will add it, but
'it wont be visible
RS.Update

'close the database
DB.Close
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 juil. 2004 à 14:10
Astuce:

au lieu de mettre RS("Chaine") on peut mettre RS!Chaine directement

Mainteant astuce pour testet si votre enregistrement à été transmis

juste apres
RS("prog") = "coucou"
RS.Update
en ajoute
RS.Bookmark = RS.LastModified
If RS!prog = "coucou2" Then MsgBox "OK" Else MsgBox "Erreur"

.......................

RS.Bookmark c'est le pointeur des record RS
RS.LastModified c'est le n° du dernier enregistrement modifié

ensuite ya le teste

ya autre moyen c'est plus efficace

c'est de mettre au debut du code

On Error GoTo Lab

ensuire à la fin juste apres DB.CLose

Exit Sub

Lab:

MsgBox Err.Description

si t'as pas compris fais moi signe ;)

Qui s'y frotte, s'y pique .
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 14:43
voilà,g compris pour dao,mais comme je veux utiliser ado,et j'ai un probleme avec ce code:
Set Rc = New ADODB.Recordset
Rc.Open "Table1", Ct, adOpenDynamic, adLockOptimistic

Rc!Chaine = "TF1"
Rc.Update
Rc.MoveNext

erreur:l'operation demandée nécessite un enregistrement actuel.

j'ai pas du positionner le curseur au bon endroit ou pas du tout.
sinon,j'ai bien compris ton code.je pose beaucoup de question,en faite je veux surtout comprendre.
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 juil. 2004 à 15:08
euuh

Je crois que ca manque un

Rc.addnew

Qui s'y frotte, s'y pique .
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
27 juil. 2004 à 15:18
en fait g déjà essayé avec addnew mais il me donne une erreur
il me dis <saississez une valeur dans le champs>.
par contre ,tu me conseil ado ou dao?
parce que si dao me suffit autant l'utiliser,mais d'après ce que j'ai lu ,ado est plus simple,plus rescent
0
Rejoignez-nous