VB ACCESS: Requete SQL

Résolu
EvilGost Messages postés 235 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 mai 2011 - 1 déc. 2004 à 15:42
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008 - 22 sept. 2005 à 22:31
Bonjour,

replonger dans le vb est difficile...j'ai l'impression d'avoir tout oublié...

J'ouvre une connection de vb vers access et je souhaite créer une table, hors, je rencontre un message d'erreur : Erreur de synthaxe Create Table.

J'ai testé avec une requete tout simple du genre:
CREATE TABLE toto (id SHORT, test TEXT);
ca fonctionne

par contre, celle requete ci:
SQL = "CREATE TABLE Test (id INT NOT NULL AUTO_INCREMENT,PRIMARY
KEY (id), Tech_Date DATETIME, Tech_Pole TEXT, C1 DATETIME, C2 DATETIME, C3
DATETIME, C4 DATETIME, C5 DATETIME, C6 DATETIME, C7 DATETIME, C8 SHORT, C9
SHORT, C10 SHORT, C11 SHORT, C12 DATETIME, C13 DATETIME, C14 DATETIME, C15
DATETIME, C16 SHORT);"


ne fonctionne pas, savez vous pourquoi?
Pareillement, il est impossible d'ajouter IF NOT EXIST à CREATE TABLE avec access...mais ca c'est secondaire

Je vous remercie beaucoup

EvilGost ;)

11 réponses

Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
1 déc. 2004 à 16:05
Salut,

Comme je n'ai pas la science infuse j'ai testé avec access...

Il semblerait que l'AUTO_INCREMENT ne passe pas le reste fonctionne si tu enlèves AUTO_INCREMENT

Bye,
Cramsoturf le VBien en quête de nouveau programme :big)
3
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
1 déc. 2004 à 17:27
Sinon

Pour savoir si elle existe c'est simple :

Dim oTable As TableDef
dim oExist as boolean
for each oTable in MyDb.Tabledefs If oTable.name MyTable then oExist true: exit for

next oTable
Cramsoturf le VBien en quête de nouveau programme :big)
3
EvilGost Messages postés 235 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 mai 2011 2
1 déc. 2004 à 16:07
je viens de tester, en fait, c'est PRIMARY
KEY (id), qui ne fonctionne pas, mais merci quand meme.

En revanche, mon soucis, c'est que je voulais savoir si une table existe, savez vous si c'est possible?

EvilGost ;)
0
EvilGost Messages postés 235 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 mai 2011 2
1 déc. 2004 à 16:12
ah bah si, c'etait auto increment, par contre, je galère toujours avec mon probleme ci-dessus.....

En revanche, mon soucis, c'est que je voulais savoir si une table existe, savez vous si c'est possible?

merci :)

EvilGost ;)
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 déc. 2004 à 17:10
Salut,

essaie de voir si cette requete peut t aider:
SELECT Name
FROM MSysObjects 

@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
1 déc. 2004 à 17:22
Salut

Je ne connais pas se msysObjects mais j'ai fait ma petite enquête
le mieux c'est de ne pas créer au départ ton champs et va sur ce lien il te dise comment faire pour faire un NuméroAuto:

http://support.microsoft.com/default.aspx?scid=kb;fr;304418

Cramsoturf le VBien en quête de nouveau programme :big)
0
EvilGost Messages postés 235 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 mai 2011 2
2 déc. 2004 à 10:40
Dans Dim oTabel As TableDef, il me dit que TableDef n'est pas défini, il faut une référence bien spécifique?

car moi, j'utilise ADO, donc j'ai du:
Dim CTdb as adodb.connection
Dim RcDB as adodb.recordset...

A quoi dois-je assoscier TableDefs?

je te remercie infiniment pour ton aide en tout cas ;)
EvilGost ;)
0
EvilGost Messages postés 235 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 mai 2011 2
2 déc. 2004 à 12:03
Finalement, j'ai réussi, j'ai ajouté un composant ADOX, merci énormément CramFr, je valide ta réponse ;)

EvilGost ;)
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
2 déc. 2004 à 16:44
Toujours avec plaisir pour aider un compatriote ;-)

Cramsoturf le VBien en quête de nouveau programme :big)
0
alfajac Messages postés 17 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 20 septembre 2005
20 sept. 2005 à 14:01
Salut



C'est bien tout ca, mais pour tester la validité d'un lien a une table, vous faites comment ?

Je parle pour les tables liées ...



On peut les tester en faisant un recordset .. et si il est null (j'ai
toujours des données dans mes tables) a ce moment la c'est qu'il y a un
probleme ... donc lien de table a refaire ...



une autre idée svp ?


Le Negociateur
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
22 sept. 2005 à 22:31
Salut,
Pour ma part, je ne connais pas d'option direct mais si tu prends :

Dim oTable As TableDef
Dim cConnect as string

For Each oTable In CurrentDb.TableDefs
If oTable.Connect <> "" Then
cConnect = oTable.Connect
Exit For
End If
Next oTable
cConnect = Mid(cConnect, InStrRev(cConnect, "=") + 1)
et tu regardes si la source existe
A=

Cramsoturf le VBien en quête de nouveau programme
0
Rejoignez-nous