Forum - Questions générale - Sujet n°792

[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Questions générale - Questions générale


clos par 3Stone le 30/01/2018 : 18:53  Sujet n° 792  Ajouter un champs à une table

le 21/01/2018 : 10:49
par jfs

Anonyme

visiteur

Bonjour Pierre

Je n'ai pas de soucis pour ajouter un champs à une table avec CreateField tant que je donne le nom entre les ""
Ex MaTable.CreateField("MonNom",dbInteger)

mais ce que je souhaite faire ( si c'est possible) est que le nom de mon champs soit contenu dans une variable et la ça ne fonctionne plus.
J'ai testé plusieurs écritures mais sans résultat

Ex MaTable.CreateField( MaVariable, dbInteger)

Ceci est il possible ?
Sinon existe t il une autre solution. Ma variable est un nombre qui va augmenter

Merci pour ton aide

Cordialement

jfs
 sujet clos  Haut

[]   

Réponse n° 1
--------
le 21/01/2018 : 15:04
par 3Stone

3Stone

Administrateur

Bonjour,

Cela ne devrait pourtant pas créer de problème.
Voilà le code qui fonctionne parfaitement :
 

Code :
Function fnAddField(sTable As String, sField As String, nFieldType As Integer)
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field
    On Error GoTo ErrorAdd
    Set db = CurrentDb
    Set tdf = db.TableDefs(sTable)
    Set fld = tdf.CreateField(sField, nFieldType)
    tdf.Fields.Append fld
    Set tdf = Nothing
    Set db = Nothing
    Exit Sub
ErrorAdd:
    MsgBox Err.Number & " - " & Err.Description
End Function

 
et on l'utilise ainsi :

 

Code :
fnAddField "T_Test","Mon champ",dbText

 
Cordialement,
Pierre (3Stone)

  clos par 3Stone le 30/01/2018 : 18:53  Haut
Réponse n° 2
--------
le 21/01/2018 : 20:02
par jfs

Anonyme

visiteur
Merci Pierre pour cette réponse et pour sa rapidité

Le code fonctionne parfaitement mais sans doute j'ai mal formulé ma question.

Pour appeler la fonction tu utilises
fnAddField "NomDeLaTable", "NomDuChamps",dbText

et ce que je veux faire c'est

CT1 est une variable

CT1= 500 par exemple

fnAddField "NomDeLaTable", CT1, dbText

et la ça ne marche plus

Comment contourner le problème

Cordialement
  clos par 3Stone le 30/01/2018 : 18:53  Haut
Réponse n° 3
--------
le 21/01/2018 : 23:14
par 3Stone

3Stone

Administrateur

Bonjour,

Je viens de faire l'essai et cela fonctionne parfaitement.
Seul problème que je peux voir, c'est le type de tes variables...

Tu peux afficher le bout de code ou tu définis tes variables et comment tu les peuples ?

Cordialement,
Pierre (3Stone)
  clos par 3Stone le 30/01/2018 : 18:53  Haut
Réponse n° 4
--------
le 22/01/2018 : 10:00
par jfs

Anonyme

visiteur
Bonjour Pierre

En lisant ton message j'ai vu que tu avais des doutes sur ma variable alors j'ai cherché de ce coté.
Ma variable était déclarée dans un module en Integer alors que dans la fonction elle était déclarée en String .

Je suis désolé de t'avoir dérangé en raison d'un manque d'attention de ma part
mais je n'ai pas travaille sur Access depuis 2 ans et 'j'ai perdu la main.

Merci pour ton aide et merci pour ta disponibilité

Cordialement

jfs
  clos par 3Stone le 30/01/2018 : 18:53  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut