Creation de table

cs_pierre63 Messages postés 50 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 9 mars 2009 - 13 nov. 2003 à 18:38
cs_pierre63 Messages postés 50 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 9 mars 2009 - 13 nov. 2003 à 22:28
Bonjour,
A partir de mon code sous vb j'aimerais crer une table dans un ma base access ! voila ce que j'ai taper dans mon code, vb me dis que la syntaxe est incorrect !

Set rs2 = db.OpenRecordset("CREATE TABLE nomtable {numacte n(10) PRIMARY KEY, date d, mode c(50), libelle c(50), credit n(10,2), debit n(10,2), montant n(10,2)};", dbOpenDynaset)

Merci pour votre aide !

5 réponses

cs_phil23 Messages postés 79 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 14 juillet 2005 1
13 nov. 2003 à 19:39
Ce code fonctionne et peut t'aider.

Dim db As DAO.Database
Set db = DAO.Workspaces(0).OpenDatabase("c:\temp\MaBase.mdb", False, False)

db.Execute "CREATE TABLE NomTable" & _
" (numacte COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, " & _
"[date] DATETIME, mode TEXT(50), libelle TEXT(50), credit SINGLE, debit SINGLE, montant SINGLE);"
db.Close

Dans ton exemple tu écris db.OpenRecordset et j'ai donc pensé que tu utilises DAO mais les commandes dans la syntaxe SQL ne correspondent pas à DAO. n(10) ou c(50) ?!?
0
cs_phil23 Messages postés 79 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 14 juillet 2005 1
13 nov. 2003 à 19:42
J'ai oublié de te dire que si tu veux nommer un champ avec un mot réservé il faut l'entourer avec [].

date est un mot réservé. Il faut écrire [date]
0
cs_pierre63 Messages postés 50 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 9 mars 2009
13 nov. 2003 à 22:00
je penes avoir ecit ce que tu m'as dis mais ca ne merche pas !
nomtable = "cpt" & rs!nom & rs!prenom & rs!num_util

Set rs2 = db.OpenRecordset("CREATE TABLE nomtable (numcpt COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, [date] datetime, mode text(50), libelle text(50), credit single, debit single, montant single);", dbOpenDynaset)

Dites moi ce que vous en pensée ?

Merci !
0
cs_phil23 Messages postés 79 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 14 juillet 2005 1
13 nov. 2003 à 22:19
Il n'est pas possible d'utiliser une instruction CREATE TABLE avec la fonction OpenRecordset.
Mon exemple précédent est juste, il faut faire db.EXECUTE....

et si nomtable est une variable il faut l'utiliser comme ça:

nomtable = "cpt" & rs!nom & rs!prenom & rs!num_util

db.Execute "CREATE TABLE " & nomtable & " (numcpt COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, [date] datetime, mode text(50), libelle text(50), credit single, debit single, montant single);"
0

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

Posez votre question
cs_pierre63 Messages postés 50 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 9 mars 2009
13 nov. 2003 à 22:28
Je te remercie car en effet ca marche !
Mercie !
0
Rejoignez-nous