Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Méthode Append pour ajouter une colonne à une table.

2 réponses
Avatar
Laurent
Bonjour,

En VBA, j'aimerais pouvoir ajouter à une table, une colonne correspondant à
une colonne d'une autre table : les propriétés la colonne crée devant être
biensur toutes identiquesd'origine à la colonne d'origine copiée (nom,
format, type de donnée, taille, valeur par défaut, etc.. ).

En fait j'aimerais copier un champs d'une table dans une autre simplement.

J'ai, pour se faire, mis au point le code ci-dessous qui en principe crée le
champs "Toto" dans la table "Alertes" dans la base de destination à partir du
champs "Toto" de la table "Alertes" de la base de données en cours.

Je précise que je n'utilise pas "Createfield" parceque les propriétés de
cette méthode sont limitées au nom, à la taille et au type.. ce qui est
insufisant dans mon cas puisque je veux copier toutes les propriétés.. j'ai
bien pensé faire une boucle pour copier toutes les propriétés mais cela me
semble lourd .. il doit exister un façon plus simple..

Mon exemple se traduit par le message suivant : "AJout impossible : il
existe déjà un objet de ce nom dans la collection" alors que le champs toto
n'est pas présent dans la table de destination..

D'avance merci pour vos réponses.

Laurent
-----------------------------------------
Mon code :

Dim prty As Property, prty2 As Property
Dim fld As Field, tb As TableDef, tb2 As TableDef, db_en_cours As Database,
db_destination As Database, fld2 As Field

Const nom_db_destination = "D:\Mes documents\informatique\Mise à jour Base
de donnée\base de destination.mde"
Const Champs_à_copier = "toto"
Const Table_du_champs = "Alertes"

Set db_en_cours = CurrentDb
Set tb2 = db_en_cours.TableDefs(Table_du_champs)
Set fld = tb2.Fields(Champs_à_copier)

Set db_destination = OpenDatabase(nom_db_destination)
Set tb = db_destination.TableDefs(Table_du_champs)

tb.Fields.Append fld

---------------------------------------

2 réponses

Avatar
3stone
Salut,

"Laurent"
| En VBA, j'aimerais pouvoir ajouter à une table, une colonne correspondant à
| une colonne d'une autre table : les propriétés la colonne crée devant être
| biensur toutes identiquesd'origine à la colonne d'origine copiée (nom,
| format, type de donnée, taille, valeur par défaut, etc.. ).
[...]

Pas regardé ton code, mais tu peux regarder ceci :

http://www.3stone.be/access/articles.php?lng=fr&pg&


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Laurent
Merci..

Cet exemple utilise createfield qui est la solution ultime ultime que je
souhaiterais utiliser parecequ'il faut charger une à une toutes les
propriétés des champs et comme en fonction du type de champs ces propriétés
varient, cela va être lourd à gérér ..

Mon idée était d'utiliser un objet Field existant d'un table et d'une base
donnée (avec toutes ses propriétés bien comme il faut) et d'utiliser cet
objet pour faire l'append de ma collection Fields d'une autre table d'une
autre base.

En fait je pense que mon code n'est vraiment pas très loin de la réalité,
mais il ya quelque chose que je ne comprend pas.. et comme j'aime bien aller
au bout des choses ..

Merci quand même.

Laurent


Salut,

"Laurent"
| En VBA, j'aimerais pouvoir ajouter à une table, une colonne correspondant à
| une colonne d'une autre table : les propriétés la colonne crée devant être
| biensur toutes identiquesd'origine à la colonne d'origine copiée (nom,
| format, type de donnée, taille, valeur par défaut, etc.. ).
[...]

Pas regardé ton code, mais tu peux regarder ceci :

http://www.3stone.be/access/articles.php?lng=fr&pg&


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/