Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gloops
LLaurent a écrit, le 10/11/2007 22:01 :
Bonjour
je voudrais réaliser les deux points suivants en code basic, au niveau d'une table attachée :
** contrôler l'existence d'un champ
Salut,
J'ignore si il existe mieux, mais en général je parcours les champs d e la table dans une boucle, et je compare leurs noms au nom recherché. ç a fait que la fonction qui fait ça, en plus du nom de champ recherché, doit recevoir la table en argument (ou alors la base et le nom de la tabl e).
** si le champ n'existe pas, dans ce cas, créer ce champ avec diffé rents types (texte, numérique, etc...)
Le principe est
Dim Fd As Field Set Fd = Tb.CreateField() Tb.Fields.Append Tb Tb.Fields.Refresh
Il faut compléter CreateField après avoir lu l'aide correspondante. Certaines propriétés du champ ne peuvent être modifiées qu'avant que le champ ait été ajouté à la table.
LLaurent a écrit, le 10/11/2007 22:01 :
Bonjour
je voudrais réaliser les deux points suivants en code basic,
au niveau d'une table attachée :
** contrôler l'existence d'un champ
Salut,
J'ignore si il existe mieux, mais en général je parcours les champs d e
la table dans une boucle, et je compare leurs noms au nom recherché. ç a
fait que la fonction qui fait ça, en plus du nom de champ recherché,
doit recevoir la table en argument (ou alors la base et le nom de la tabl e).
** si le champ n'existe pas, dans ce cas, créer ce champ avec diffé rents
types (texte, numérique, etc...)
Le principe est
Dim Fd As Field
Set Fd = Tb.CreateField()
Tb.Fields.Append Tb
Tb.Fields.Refresh
Il faut compléter CreateField après avoir lu l'aide correspondante.
Certaines propriétés du champ ne peuvent être modifiées qu'avant que le
champ ait été ajouté à la table.
je voudrais réaliser les deux points suivants en code basic, au niveau d'une table attachée :
** contrôler l'existence d'un champ
Salut,
J'ignore si il existe mieux, mais en général je parcours les champs d e la table dans une boucle, et je compare leurs noms au nom recherché. ç a fait que la fonction qui fait ça, en plus du nom de champ recherché, doit recevoir la table en argument (ou alors la base et le nom de la tabl e).
** si le champ n'existe pas, dans ce cas, créer ce champ avec diffé rents types (texte, numérique, etc...)
Le principe est
Dim Fd As Field Set Fd = Tb.CreateField() Tb.Fields.Append Tb Tb.Fields.Refresh
Il faut compléter CreateField après avoir lu l'aide correspondante. Certaines propriétés du champ ne peuvent être modifiées qu'avant que le champ ait été ajouté à la table.
Gloops
Gloops a écrit, le 10/11/2007 22:12 :
Salut,
J'ignore si il existe mieux, mais en général je parcours les champs de la table dans une boucle, et je compare leurs noms au nom recherché. ça fait que la fonction qui fait ça, en plus du nom de champ recherché , doit recevoir la table en argument (ou alors la base et le nom de la table).
Autant pour moi, je fais pareil pour tester l'existence d'un formulaire, histoire de réutiliser le code que j'ai déjà en stock, mais il me revient qu'il existe plus grâcieux et probablement plus rapide :
SysCmd(acSysCmdGetObjectState, acForm, chNomForm)
ça dépend aussi de la version d'Access utilisée. A priori j'ai l'impression que pour un champ il faudrait plus d'arguments (nom de la table, nom du champ), mais avec les bonnes séparations ... Là je n'ai que l'aide d'Access 95 sous la main, un coup d'il à l'a ide de SysCmd pour la version utilisée peut être utile.
Gloops a écrit, le 10/11/2007 22:12 :
Salut,
J'ignore si il existe mieux, mais en général je parcours les champs de
la table dans une boucle, et je compare leurs noms au nom recherché. ça
fait que la fonction qui fait ça, en plus du nom de champ recherché ,
doit recevoir la table en argument (ou alors la base et le nom de la
table).
Autant pour moi, je fais pareil pour tester l'existence d'un formulaire,
histoire de réutiliser le code que j'ai déjà en stock, mais il me
revient qu'il existe plus grâcieux et probablement plus rapide :
SysCmd(acSysCmdGetObjectState, acForm, chNomForm)
ça dépend aussi de la version d'Access utilisée. A priori j'ai
l'impression que pour un champ il faudrait plus d'arguments (nom de la
table, nom du champ), mais avec les bonnes séparations ...
Là je n'ai que l'aide d'Access 95 sous la main, un coup d'il à l'a ide
de SysCmd pour la version utilisée peut être utile.
J'ignore si il existe mieux, mais en général je parcours les champs de la table dans une boucle, et je compare leurs noms au nom recherché. ça fait que la fonction qui fait ça, en plus du nom de champ recherché , doit recevoir la table en argument (ou alors la base et le nom de la table).
Autant pour moi, je fais pareil pour tester l'existence d'un formulaire, histoire de réutiliser le code que j'ai déjà en stock, mais il me revient qu'il existe plus grâcieux et probablement plus rapide :
SysCmd(acSysCmdGetObjectState, acForm, chNomForm)
ça dépend aussi de la version d'Access utilisée. A priori j'ai l'impression que pour un champ il faudrait plus d'arguments (nom de la table, nom du champ), mais avec les bonnes séparations ... Là je n'ai que l'aide d'Access 95 sous la main, un coup d'il à l'a ide de SysCmd pour la version utilisée peut être utile.