omartt
Messages postés83Date d'inscriptionlundi 17 août 2009StatutMembreDernière intervention 3 août 2013
-
19 sept. 2010 à 13:01
omartt
Messages postés83Date d'inscriptionlundi 17 août 2009StatutMembreDerniè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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
omartt
Messages postés83Date d'inscriptionlundi 17 août 2009StatutMembreDerniè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