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

Changer le nom d'un champ VBA OfficeSystem.Access

5 réponses
Avatar
jfd
Bonsoir et meilleurs voeux à tous

Je cherche à adapter cette fonction:
http://officesystemaccess.seneque.net/vba/changer_nom_champ.htm

( un grand merci) à une table liée sachant que cette table est:

Dim CheminTab As String
CheminTab = DLookup("CheminTab", "AARCPMName")

Je bloque lourdement et un coup de pouce serait le bienvenue
Merci par avance

PS. Par ailleurd je bloque aussi sur la création de table pour cette même
base liée alors que la création de champs est ok

jfd

5 réponses

Avatar
Gilbert
Bonjour,Je n'ai pas compris ce qui te bloque.Peux-tu préciser?En attendant
voici un exemple de création de table et de champs dans cette table
:'Ouverture Accueil_Données.mdbSet Db_Accueil_Données DBEngine.Workspaces(0).OpenDatabase(Fichier_Accueil_Donnees)'Création table
Tbl_Options_Dates dans Accueil_Données.mdbNomTable = "Tbl_Options_Dates"Set
matable = Db_Accueil_Données.CreateTableDef(NomTable) 'Création d'une
tableSet Fld = matable.CreateField("Ref_Date", dbLong, 4) 'création du
premier champFld.OrdinalPosition = 0 'champ
position 0Fld.Attributes = dbFixedField + dbAutoIncrField 'définition
numéroauto et taille du champ fixe (constante par défaut pour les champs
numériques).Fld.Required = Truematable.Fields.Append Fld
'ajout du champ dans la tableSet idx = matable.CreateIndex("PrimaryKey")
'création d'un indexidx.Primary = True 'clé
primaireidx.Required = Trueidx.Unique = True
' sans doublonsSet Fld = idx.CreateField("Ref_Date")
'définition du champ qui sert d'indexidx.Fields.Append Fld
'ajout du champ dans l'indexmatable.Indexes.Append idx
'ajout de l'index dans la tableSet Fld = matable.CreateField("Texte_Date",
dbText) 'création du deuxième champFld.AllowZeroLength = False
'chaine vide autoriséeFld.Attributes = dbVariableField
'définition numéroautoFld.OrdinalPosition = 1
'champ position 1Fld.Size = 50 'taille
100 caractèresFld.Required = True 'valeur
nulle interditematable.Fields.Append Fld 'ajout du
champ dans la tableSet Fld = matable.CreateField("Formule_Date", dbText)
'création du deuxième champFld.AllowZeroLength = False
'chaine vide autoriséeFld.Attributes = dbVariableField
'définition numéroautoFld.OrdinalPosition = 2
'champ position 2Fld.Size = 50 'taille
100 caractèresFld.Required = True 'valeur
nulle interditematable.Fields.Append Fld 'ajout du
champ dans la tableDb_Accueil_Données.TableDefs.Append matable Set Fld Nothing Set idx = Nothing Set matable = Nothing Set Db_Accueil Nothing Set Db_Accueil_Données = Nothing-- Cordialement,
Gilbert


"jfd" a écrit dans le message de
news:
Bonsoir et meilleurs voeux à tous

Je cherche à adapter cette fonction:
http://officesystemaccess.seneque.net/vba/changer_nom_champ.htm

( un grand merci) à une table liée sachant que cette table est:

Dim CheminTab As String
CheminTab = DLookup("CheminTab", "AARCPMName")

Je bloque lourdement et un coup de pouce serait le bienvenue
Merci par avance

PS. Par ailleurd je bloque aussi sur la création de table pour cette même
base liée alors que la création de champs est ok

jfd


Avatar
Gilbert
Bonjour,
Le premier message ayant semble-t-il des problèmes de retour à la ligne, je
le renvoie en espérant que ce sera plus lisible.

Je n'ai pas compris ce qui te bloque.Peux-tu préciser?

En attendant voici un exemple de création de table et de champs dans cette
table:

'Ouverture Accueil_Données.mdb
Set Db_Accueil_Données DBEngine.Workspaces(0).OpenDatabase(Fichier_Accueil_Donnees)

'Création table Tbl_Options_Dates dans Accueil_Données.mdb
NomTable = "Tbl_Options_Dates"
Set matable = Db_Accueil_Données.CreateTableDef(NomTable) 'Création d'une
table

Set Fld = matable.CreateField("Ref_Date", dbLong, 4) 'création du premier
champ
Fld.OrdinalPosition = 0 'champ position 0
Fld.Attributes = dbFixedField + dbAutoIncrField 'définition numéroauto
et taille du champ fixe (constante par défaut pour les champs numériques).
Fld.Required = True
matable.Fields.Append Fld 'ajout du champ dans la table

Set idx = matable.CreateIndex("PrimaryKey") 'création d'un index
idx.Primary = True 'clé primaire
idx.Required = True
idx.Unique = True ' sans doublons
Set Fld = idx.CreateField("Ref_Date") 'définition du champ qui sert d'index
idx.Fields.Append Fld 'ajout du champ dans l'index
matable.Indexes.Append idx 'ajout de l'index dans la table

Set Fld = matable.CreateField("Texte_Date",dbText) 'création du deuxième
champ
Fld.AllowZeroLength = False 'chaine vide non autorisée
Fld.Attributes = dbVariableField
Fld.OrdinalPosition = 1 'champ position 1
Fld.Size = 50 'taille 50 caractères
Fld.Required = True 'valeur nulle interdite
matable.Fields.Append Fld 'ajout du champ dans la
table

Set Fld = matable.CreateField("Formule_Date", dbText) 'création du deuxième
champ
Fld.AllowZeroLength = False 'chaine vide autorisée
Fld.Attributes = dbVariableField 'définition numéroauto
Fld.OrdinalPosition = 2 'champ position 2
Fld.Size = 50 'taille 100 caractères
Fld.Required = True 'valeur nulle interdite
matable.Fields.Append Fld 'ajout du champ dans la
table

Db_Accueil_Données.TableDefs.Append matable

Set Fld =Nothing
Set idx = Nothing
Set matable = Nothing
Set Db_Accueil =Nothing
Set Db_Accueil_Données = Nothing


--
Cordialement,

Gilbert


"jfd" a écrit dans le message de
news:
Bonsoir et meilleurs voeux à tous

Je cherche à adapter cette fonction:
http://officesystemaccess.seneque.net/vba/changer_nom_champ.htm

( un grand merci) à une table liée sachant que cette table est:

Dim CheminTab As String
CheminTab = DLookup("CheminTab", "AARCPMName")

Je bloque lourdement et un coup de pouce serait le bienvenue
Merci par avance

PS. Par ailleurd je bloque aussi sur la création de table pour cette même
base liée alors que la création de champs est ok

jfd


Avatar
jfd
Bonjour Gilbert
Désolé je viens juste de lire ta réponse.

En fait j’essaye de créer une table sur une base dorsale (liée) et n’y
arrivant pas j’étais parti sur un mauvais chemin par la copie d’une table
existante dans laquelle j’aurais changé les noms de champs……………( certainement
une fausse route)

Est que ta fonction est ok dans le cas d’une mde frontale et d’une mdb
liée contenant les données?

Bon dimanche

jfd

"Gilbert" a écrit :

Bonjour,
Le premier message ayant semble-t-il des problèmes de retour à la ligne, je
le renvoie en espérant que ce sera plus lisible.

Je n'ai pas compris ce qui te bloque.Peux-tu préciser?

En attendant voici un exemple de création de table et de champs dans cette
table:

'Ouverture Accueil_Données.mdb
Set Db_Accueil_Données > DBEngine.Workspaces(0).OpenDatabase(Fichier_Accueil_Donnees)

'Création table Tbl_Options_Dates dans Accueil_Données.mdb
NomTable = "Tbl_Options_Dates"
Set matable = Db_Accueil_Données.CreateTableDef(NomTable) 'Création d'une
table

Set Fld = matable.CreateField("Ref_Date", dbLong, 4) 'création du premier
champ
Fld.OrdinalPosition = 0 'champ position 0
Fld.Attributes = dbFixedField + dbAutoIncrField 'définition numéroauto
et taille du champ fixe (constante par défaut pour les champs numériques).
Fld.Required = True
matable.Fields.Append Fld 'ajout du champ dans la table

Set idx = matable.CreateIndex("PrimaryKey") 'création d'un index
idx.Primary = True 'clé primaire
idx.Required = True
idx.Unique = True ' sans doublons
Set Fld = idx.CreateField("Ref_Date") 'définition du champ qui sert d'index
idx.Fields.Append Fld 'ajout du champ dans l'index
matable.Indexes.Append idx 'ajout de l'index dans la table

Set Fld = matable.CreateField("Texte_Date",dbText) 'création du deuxième
champ
Fld.AllowZeroLength = False 'chaine vide non autorisée
Fld.Attributes = dbVariableField
Fld.OrdinalPosition = 1 'champ position 1
Fld.Size = 50 'taille 50 caractères
Fld.Required = True 'valeur nulle interdite
matable.Fields.Append Fld 'ajout du champ dans la
table

Set Fld = matable.CreateField("Formule_Date", dbText) 'création du deuxième
champ
Fld.AllowZeroLength = False 'chaine vide autorisée
Fld.Attributes = dbVariableField 'définition numéroauto
Fld.OrdinalPosition = 2 'champ position 2
Fld.Size = 50 'taille 100 caractères
Fld.Required = True 'valeur nulle interdite
matable.Fields.Append Fld 'ajout du champ dans la
table

Db_Accueil_Données.TableDefs.Append matable

Set Fld =Nothing
Set idx = Nothing
Set matable = Nothing
Set Db_Accueil =Nothing
Set Db_Accueil_Données = Nothing


--
Cordialement,

Gilbert


"jfd" a écrit dans le message de
news:
> Bonsoir et meilleurs voeux à tous
>
> Je cherche à adapter cette fonction:
> http://officesystemaccess.seneque.net/vba/changer_nom_champ.htm
>
> ( un grand merci) à une table liée sachant que cette table est:
>
> Dim CheminTab As String
> CheminTab = DLookup("CheminTab", "AARCPMName")
>
> Je bloque lourdement et un coup de pouce serait le bienvenue
> Merci par avance
>
> PS. Par ailleurd je bloque aussi sur la création de table pour cette même
> base liée alors que la création de champs est ok
>
> jfd


.



Avatar
Gilbert
Bonjour,

Je ne l'ai jamais utilisé à partir d'une mde, mais je ne pense pas que cela
pose problème.
Essaie et dis-nous si ça fonctionne.

--
Cordialement,

Gilbert


"jfd" a écrit dans le message de
news:
Bonjour Gilbert
Désolé je viens juste de lire ta réponse.

En fait j'essaye de créer une table sur une base dorsale (liée) et n'y
arrivant pas j'étais parti sur un mauvais chemin par la copie d'une table
existante dans laquelle j'aurais changé les noms de champs.....(


certainement
une fausse route)

Est que ta fonction est ok dans le cas d'une mde frontale et d'une mdb
liée contenant les données?

Bon dimanche

jfd

"Gilbert" a écrit :

> Bonjour,
> Le premier message ayant semble-t-il des problèmes de retour à la ligne,


je
> le renvoie en espérant que ce sera plus lisible.
>
> Je n'ai pas compris ce qui te bloque.Peux-tu préciser?
>
> En attendant voici un exemple de création de table et de champs dans


cette
> table:
>
> 'Ouverture Accueil_Données.mdb
> Set Db_Accueil_Données > > DBEngine.Workspaces(0).OpenDatabase(Fichier_Accueil_Donnees)
>
> 'Création table Tbl_Options_Dates dans Accueil_Données.mdb
> NomTable = "Tbl_Options_Dates"
> Set matable = Db_Accueil_Données.CreateTableDef(NomTable) 'Création


d'une
> table
>
> Set Fld = matable.CreateField("Ref_Date", dbLong, 4) 'création du


premier
> champ
> Fld.OrdinalPosition = 0 'champ position 0
> Fld.Attributes = dbFixedField + dbAutoIncrField 'définition


numéroauto
> et taille du champ fixe (constante par défaut pour les champs


numériques).
> Fld.Required = True
> matable.Fields.Append Fld 'ajout du champ dans la table
>
> Set idx = matable.CreateIndex("PrimaryKey") 'création d'un index
> idx.Primary = True 'clé primaire
> idx.Required = True
> idx.Unique = True ' sans doublons
> Set Fld = idx.CreateField("Ref_Date") 'définition du champ qui sert


d'index
> idx.Fields.Append Fld 'ajout du champ dans l'index
> matable.Indexes.Append idx 'ajout de l'index dans la table
>
> Set Fld = matable.CreateField("Texte_Date",dbText) 'création du deuxième
> champ
> Fld.AllowZeroLength = False 'chaine vide non autorisée
> Fld.Attributes = dbVariableField
> Fld.OrdinalPosition = 1 'champ position 1
> Fld.Size = 50 'taille 50 caractères
> Fld.Required = True 'valeur nulle


interdite
> matable.Fields.Append Fld 'ajout du champ dans


la
> table
>
> Set Fld = matable.CreateField("Formule_Date", dbText) 'création du


deuxième
> champ
> Fld.AllowZeroLength = False 'chaine vide autorisée
> Fld.Attributes = dbVariableField 'définition numéroauto
> Fld.OrdinalPosition = 2 'champ position 2
> Fld.Size = 50 'taille 100


caractères
> Fld.Required = True 'valeur nulle


interdite
> matable.Fields.Append Fld 'ajout du champ dans


la
> table
>
> Db_Accueil_Données.TableDefs.Append matable
>
> Set Fld =Nothing
> Set idx = Nothing
> Set matable = Nothing
> Set Db_Accueil =Nothing
> Set Db_Accueil_Données = Nothing
>
>
> --
> Cordialement,
>
> Gilbert
>
>
> "jfd" a écrit dans le message de
> news:
> > Bonsoir et meilleurs voeux à tous
> >
> > Je cherche à adapter cette fonction:
> > http://officesystemaccess.seneque.net/vba/changer_nom_champ.htm
> >
> > ( un grand merci) à une table liée sachant que cette table est:
> >
> > Dim CheminTab As String
> > CheminTab = DLookup("CheminTab", "AARCPMName")
> >
> > Je bloque lourdement et un coup de pouce serait le bienvenue
> > Merci par avance
> >
> > PS. Par ailleurd je bloque aussi sur la création de table pour cette


même
> > base liée alors que la création de champs est ok
> >
> > jfd
>
>
> .
>


Avatar
jfd
Bonsoir et merci
Je vais essayer de mettre en place cela.
A bientôt
jfd




"Gilbert" a écrit :

Bonjour,

Je ne l'ai jamais utilisé à partir d'une mde, mais je ne pense pas que cela
pose problème.
Essaie et dis-nous si ça fonctionne.

--
Cordialement,

Gilbert


"jfd" a écrit dans le message de
news:
> Bonjour Gilbert
> Désolé je viens juste de lire ta réponse.
>
> En fait j'essaye de créer une table sur une base dorsale (liée) et n'y
> arrivant pas j'étais parti sur un mauvais chemin par la copie d'une table
> existante dans laquelle j'aurais changé les noms de champs.....(
certainement
> une fausse route)
>
> Est que ta fonction est ok dans le cas d'une mde frontale et d'une mdb
> liée contenant les données?
>
> Bon dimanche
>
> jfd
>
> "Gilbert" a écrit :
>
> > Bonjour,
> > Le premier message ayant semble-t-il des problèmes de retour à la ligne,
je
> > le renvoie en espérant que ce sera plus lisible.
> >
> > Je n'ai pas compris ce qui te bloque.Peux-tu préciser?
> >
> > En attendant voici un exemple de création de table et de champs dans
cette
> > table:
> >
> > 'Ouverture Accueil_Données.mdb
> > Set Db_Accueil_Données > > > DBEngine.Workspaces(0).OpenDatabase(Fichier_Accueil_Donnees)
> >
> > 'Création table Tbl_Options_Dates dans Accueil_Données.mdb
> > NomTable = "Tbl_Options_Dates"
> > Set matable = Db_Accueil_Données.CreateTableDef(NomTable) 'Création
d'une
> > table
> >
> > Set Fld = matable.CreateField("Ref_Date", dbLong, 4) 'création du
premier
> > champ
> > Fld.OrdinalPosition = 0 'champ position 0
> > Fld.Attributes = dbFixedField + dbAutoIncrField 'définition
numéroauto
> > et taille du champ fixe (constante par défaut pour les champs
numériques).
> > Fld.Required = True
> > matable.Fields.Append Fld 'ajout du champ dans la table
> >
> > Set idx = matable.CreateIndex("PrimaryKey") 'création d'un index
> > idx.Primary = True 'clé primaire
> > idx.Required = True
> > idx.Unique = True ' sans doublons
> > Set Fld = idx.CreateField("Ref_Date") 'définition du champ qui sert
d'index
> > idx.Fields.Append Fld 'ajout du champ dans l'index
> > matable.Indexes.Append idx 'ajout de l'index dans la table
> >
> > Set Fld = matable.CreateField("Texte_Date",dbText) 'création du deuxième
> > champ
> > Fld.AllowZeroLength = False 'chaine vide non autorisée
> > Fld.Attributes = dbVariableField
> > Fld.OrdinalPosition = 1 'champ position 1
> > Fld.Size = 50 'taille 50 caractères
> > Fld.Required = True 'valeur nulle
interdite
> > matable.Fields.Append Fld 'ajout du champ dans
la
> > table
> >
> > Set Fld = matable.CreateField("Formule_Date", dbText) 'création du
deuxième
> > champ
> > Fld.AllowZeroLength = False 'chaine vide autorisée
> > Fld.Attributes = dbVariableField 'définition numéroauto
> > Fld.OrdinalPosition = 2 'champ position 2
> > Fld.Size = 50 'taille 100
caractères
> > Fld.Required = True 'valeur nulle
interdite
> > matable.Fields.Append Fld 'ajout du champ dans
la
> > table
> >
> > Db_Accueil_Données.TableDefs.Append matable
> >
> > Set Fld =Nothing
> > Set idx = Nothing
> > Set matable = Nothing
> > Set Db_Accueil =Nothing
> > Set Db_Accueil_Données = Nothing
> >
> >
> > --
> > Cordialement,
> >
> > Gilbert
> >
> >
> > "jfd" a écrit dans le message de
> > news:
> > > Bonsoir et meilleurs voeux à tous
> > >
> > > Je cherche à adapter cette fonction:
> > > http://officesystemaccess.seneque.net/vba/changer_nom_champ.htm
> > >
> > > ( un grand merci) à une table liée sachant que cette table est:
> > >
> > > Dim CheminTab As String
> > > CheminTab = DLookup("CheminTab", "AARCPMName")
> > >
> > > Je bloque lourdement et un coup de pouce serait le bienvenue
> > > Merci par avance
> > >
> > > PS. Par ailleurd je bloque aussi sur la création de table pour cette
même
> > > base liée alors que la création de champs est ok
> > >
> > > jfd
> >
> >
> > .
> >


.