En langage JET-SQL, vous devez être plus précis avec la syntaxe et ajouter le mot 'COLUMN' dans la phrase 'ALTER TABLE'. Exemple:
strSql = "ALTER TABLE MyTable ADD COLUMN MyField DECIMAL (28,3);"
strSql = "ALTER TABLE MyTable ADD COLUMN MyText TEXT(3);"
Selon l'aide, vous pouvez définir une valeur par défaut mais je ne l'ai jamais essayée. Cette syntaxe est uniquement valide avec la base de données Access/JET. Je ne pense pas que cela fonctionnera si vous atteignez votre table d'accès via ODBC ou ADO.
Dans de telles situations, vous pouvez modifier la structure de votre base de données par d'autres moyens. Vous trouverez un exemple here. Cela a été fait avec le modèle d'objet DAO, mais peut être facilement basculé sur le modèle d'objet ADO commun à utiliser avec une connexion ADODB.
EDIT: une "solution ADO implicite" (ce qui signifie en utilisant la connexion ADODB mais pas les tables ADO objets etc » peuvent être les suivantes:
(pour des exemples de chaîne de connexion, vérifiez here)
Dim myConnection AS ADODB.connection
set myConnection = New ADODB.connectionString
myConnection.connectionString = 'here is your connection string'
myConnection.open
myConnection.execute "ALTER TABLE myTable ADD Column MyField DECIMAL (12,3);"
myConnection.close
Si vous travaillez avec le fichier mdb actif, il suffit d'écrire:
CurrentProject.Connection.Execute "ALTER TABLE myTable ADD Column MyField DOUBLE;"
C'est ce
.
Si vous préférez utiliser des objets ADO, ajoutez la bibliothèque ADOX à votre source de code et utilisez la méthode Table.columns.append
. Vous trouverez un exemple. here
Vous devez probablement ajouter le tag ms-access – Knox
MS-Access n'intervient pas - uniquement le moteur de base de données Jet. –