Bonjour à tous !

Je suis débutant dans l'utilisation d'Access, mais j'ai quand même de bonnes notions de programmation (Bon, pas en VBA, mais bref...).

J'ai besoin de créer une macro qui permet de réaliser différents traitements, et à la fin de ces traitements j'aurais besoin de renommer un champ d'une table.

Du coup j'ai regardé dans la FAQ et j'y ai trouvé le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub RenommerChamp(PTable As String, POld As String, PNew As String)
On Error GoTo err:
Dim VTable As DAO.TableDef
Dim VField As DAO.Field
Set VTable = CurrentDb.TableDefs(PTable)
Set VField = VTable.Fields(POld)
VField.Name = PNew
Set VField = Nothing
Set VTable = Nothing
Exit Sub
err:
MsgBox "L\'action  renommer le champ a échouée"
End Sub
Que j'ai remplacé par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Function RenommerChamp(PTable As String, POld As String, PNew As String)
On Error GoTo err:
Dim VTable As DAO.TableDef
Dim VField As DAO.Field
Set VTable = CurrentDb.TableDefs(PTable)
Set VField = VTable.Fields(POld)
VField.Name = PNew
Set VField = Nothing
Set VTable = Nothing
Exit Function
err:
MsgBox "L\'action  renommer le champ a échouée"
End Function
(J'ai remplacé Sub par Function)

Donc, et c'est sûrement là que je me trompe, j'ai créé un nouveau module dans lequel j'ai simplement collé ce code.
Dans ma macro, j'ai sélectionné pour action ExecuterCode et j'ai tapé le nom de ma fonction avec ses paramètres (j'ai même utilisé leur générateur pour être sûr d'avoir le bon nom de fonction). Et quand j'exécute la macro, j'ai cette erreur :
Citation Envoyé par Vilain Access
L'expression entrée comporte un nom de fonction introuvable
Du coup je me demande si j'ai pas mal compris....ExcecuterCode c'est bien pour exécuter du VBA ? Et si c'est le cas, pourquoi est-ce qu'il n'arrive pas à trouver ma fonction ?

Je vous remercie d'avance pour votre aide et vos éclaircissements.