Bonjour,
Pour accéder aux deux fonctions je les appelle avec ces lignes :
Code:
Pour supprimerChamp ça fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub Mja_Click() Dim db As Database Dim Tbl As TableDef Dim Fld As Field Set db = CurrentDb Set Tbl = db.TableDefs("Tbl Adhérents") '--- Supprime le champ XX par appel de le fonction SupprimerChamp SupprimerChamp db, "tbl Adhérents", "XX" '--- Renomme le champ AA par BB RenommerChamp db, "tbl Adhérents", "AA", "BB" End Sub
Mais pour RenommerChamp j’ai l’erreur suivante « Erreur de compilation type d’argument ByRef incompatible », le curseur s’arrete sur « db, » et je n’arrive pas à solutionner le problème.
Ci-après fonction RenommerChamp :
Code:
Merci pour votre aide,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Function RenommerChamp(db As DAO.Database, strNomTable As String, _ strAncienNomChamp As String, strNouveauNomChamp As String) As Boolean On Error GoTo err Dim Tbl As DAO.TableDef '--- Récupèration de la table Set Tbl = db.TableDefs(strNomTable) '--- Renommé le champ Tbl.Fields(strAncienNomChamp).Name = strNouveauNomChamp '--- Renvoie la valeur True RenommerChamp = True Exit Function '--- Gère les erreurs err: Select Case err.Number '--- Si impossible de trouver l'élément dans la collection Case 3265 '--- Si tbl=nothing alors tbl est la cause de l'erreur If Tbl Is Nothing Then MsgBox "Impossible de trouver la table : " & strNomTable Else MsgBox "Impossible de trouver le champ : " & strAncienNomChamp End If Case 3010, 3191: MsgBox "Le champ " & strNouveauNomChamp & " existe déjà" Case Else: MsgBox "Une erreur inattendue est survenue" End Select End Function
Salutations
Jacques
Partager