ado Vb6 comment ajouter des tables?

Résolu
omartt Messages postés 83 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 3 août 2013 - 19 sept. 2010 à 13:01
omartt Messages postés 83 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 3 août 2013 - 21 sept. 2010 à 13:36
Bonjour
Je voudrai ajouter des tables à une bd Access en se servant de ce code: la connexion se fait mais l'ajout des tables ne s’effectue pas.
message d’erreur:
Erreur de syntax dans la définition de champ.

Dim db As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command

Private Sub cmdCreateTable_Click()

If db Is Nothing Then
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database password=; Data Source=" & App.Path & "\database.mdb"

If db.State = adStateOpen Then
MsgBox "Database Connection successful...!"
Else
MsgBox "Sorry, can't connect to the Database ...."
End If
Set cmd.ActiveConnection = db
cmd.CommandText = "CREATE TABLE Customer (CustomerID , Address , City , State , PostalCode)"

cmd.Execute , , adCmdText"

cmd.Execute , , adCmdText
db.Close
Set db = Nothing
Set cmd = Nothing
End If

End Sub
cordialement

4 réponses

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
19 sept. 2010 à 13:56
Salut

Il manque le type de chaque champ.
Ouvre ton moteur de recherche favori et tape "CREATE TABLE" (avec les guillemets) et tu auras la syntaxe à utiliser.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
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
20 sept. 2010 à 09:09
Fait attention :
Char(6) veut dire que chaque champ comportera 6 caractères.
Si le texte que tu y mets ne fait que 3 caractères, le champ sera complété par des espaces pour arriver à 6.
Cela peut avoir une influence quand tu reliras les valeurs.

Préfère VarChar(6)
La longueur du champ s'adaptera à la longueur de la chaine, maxi 6 caractères.
Aura aussi une influence bénéfique sur la taille de la DB (puisqu'on y stockera pas d'espaces inutiles)
3
omartt Messages postés 83 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 3 août 2013
20 sept. 2010 à 00:55
merci jack
voici le code
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
Set cmd = New ADODB.Command
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database password=; Data Source=" & App.Path & "\data.mdb"
If db.State = adStateOpen Then
MsgBox "Database Connection successful...!"
Else
MsgBox "Sorry, can't connect to the Database ...."
End If
Set cmd.ActiveConnection = db
cmd.CommandText = "CREATE TABLE Customer (CustomerID Char(6) PRIMARY KEY, Name Char(20), Address Char(30), City Char(30), State Char(2), PostalCode Char(9))"

cmd.Execute , , adCmdText
db.Close
Set db = Nothing
Set cmd = Nothing
0
omartt Messages postés 83 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 3 août 2013
21 sept. 2010 à 13:36
merci beaucoup jack
0
Rejoignez-nous