Message d’erreur lors de l’utilisation de caractères spéciaux dans une base de données Access

Cet article répertorie les caractères spéciaux à éviter lors de l’utilisation des noms d’objets de base de données ou des noms de champs dans toutes les versions d’Access.

Numéro de l’article d’origine dans la base de connaissances : 826763

Remarque

Cet article s’applique à un fichier de base de données Microsoft Access (.mdb ou .accdb) et à un fichier de projet Microsoft Access (.adp).

Symptômes

Quand vous utilisez des caractères spéciaux dans Access, vous rencontrez l’un des problèmes ci-dessous.

Problème 1

Vous utilisez l’un des caractères spéciaux suivants dans le nom d’un champ de table :

  • Un accent grave (`)
  • Un point d’exclamation (!)
  • Un point (.)
  • Un crochet ([])
  • Un espace de début
  • Un caractère non imprimable

Dans ce cas, le message d’erreur suivant s’affiche :

Le nom du champ n’est pas valide.
Vérifiez qu’il ne contient pas un point (.), un point d’exclamation (!), un crochet ([]), un espace de début ou un caractère non imprimable tel qu’un retour chariot. Si vous avez collé le nom à partir d’une autre application, appuyez sur Échap et retapez-le.

Si vous utilisez l’un de ces caractères spéciaux dans le nom d’une table, le message d’erreur suivant s’affiche :

Le nom d’objet « nom_table » n’est pas conforme aux règles d’affectation des noms d’objets Microsoft Office Access.

Problème 2

Vous créez une expression de requête qui inclut des champs contenant des caractères spéciaux. Selon les caractères spéciaux inclus, l’un des messages d’erreur suivants s’affiche :

  • Si le nom du champ contient un espace, un point d’interrogation (?) ou une arobase (@), le message d’erreur suivant s’affiche :

    La syntaxe de l’expression entrée n’est pas valide.
    Vous avez peut-être entré un opérande sans opérateur.

  • Si le nom du champ contient un guillemet (« ») ou une apostrophe (’), le message d’erreur suivant s’affiche :

    Une chaîne de l’expression entrée n’est pas valide.
    Une chaîne peut comporter jusqu’à 2 048 caractères, y compris les guillemets initiaux et finaux.

  • Si le nom du champ contient un signe dièse (#), le message d’erreur suivant s’affiche :

    La valeur entrée de l’expression de type date n’est pas valide.

  • Si le nom du champ contient un signe de pourcentage (%), un tilde (~), un point-virgule (;) ou un crochet ([]), le message d’erreur suivant s’affiche :

    La syntaxe de l’expression entrée n’est pas valide.
    Vous avez omis un opérande ou un opérateur, entré un caractère ou une virgule non valides, ou entré du texte sans le délimiter par des guillemets.

  • Si le nom du champ contient une accolade ({}), le message d’erreur suivant s’affiche :

    GUID : format incorrect dans l’expression « nom_objet ».

  • Si le nom du champ contient un crochet ([]) ou une parenthèse (()), le message d’erreur suivant s’affiche :

    Il manque dans l’expression une parenthèse fermante, un crochet (]) ou une barre verticale (|).

Problème 3

Vous disposez d’une requête qui contient des expressions de requête. Les expressions de requête incluent des champs qui contiennent des caractères spéciaux. Lors de l’exécution de la requête, vous êtes invité à entrer une valeur de paramètre. En règle générale, ce problème se produit quand vous utilisez l’un des caractères spéciaux ci-dessous :

  • Signe supérieur à (>)
  • Signe inférieur à (<)
  • Un point (.)
  • Une astérisque (*)
  • Un signe deux-points (:)
  • Un accent circonflexe (^)
  • Un signe plus (+)
  • Barre oblique inverse (\)
  • Un signe égal (=)
  • Esperluette (&)
  • Une barre oblique (/)

Solution de contournement

Pour contourner ce problème, n’utilisez pas de caractères spéciaux. Si vous devez utiliser des caractères spéciaux dans des expressions de requête, placez-les entre crochets ([]). Par exemple, si vous souhaitez utiliser le signe supérieur à (>), utilisez [>].

Informations supplémentaires

Microsoft Access ne limite pas l’utilisation de caractères spéciaux tels que le signe dièse (#), le point (.) ou le guillemet (« ») dans les noms d’objets ou de champs de base de données. Toutefois, si vous utilisez les caractères spéciaux, vous risquez de rencontrer des erreurs inattendues. Par conséquent, Microsoft vous recommande de ne pas utiliser les caractères spéciaux dans les noms d’objets de la base de données Access ou dans le projet de base de données. Cet article décrit les caractères spéciaux que vous devez éviter en raison de problèmes connus liés à ces caractères spéciaux.

Quand vous utilisez Access ou une autre application telle qu’une application Microsoft Visual Basic ou ASP (Active Server Pages), vous devez éviter les caractères spéciaux suivants :

Nom Symbole
Espace
Apostrophe '
Guillemet "
Apostrophe '
Arobase @
Accent grave `
Signe dièse #
Pourcentage %
Signe supérieur >
Signe inférieur <
Point d’exclamation !
Period .
Crochets [ ]
Astérisque *
Symbole dollar $
Point-virgule ;
Deux points :
Point d’interrogation ?
Accent circonflexe ^
Accolades { }
Signe plus +
Trait d’union -
Signe égal =
Tilde ~
Barre verticale |

Conventions d’affectation de noms dans Access

Microsoft vous recommande de ne pas utiliser un point (.), un point d’exclamation (!), un accent grave (`), un crochet ([ ]), un espace ( ) ou un guillemet (« ») dans les noms des fonctions, des variables, des champs ou des objets de base de données tels que les tables et les formulaires.

Des problèmes connus se produisent si vous utilisez les caractères spéciaux ci-dessous dans Access. Les scénarios suivants décrivent les cas dans lesquels vous ne devez pas utiliser les caractères spéciaux :

  • Quand vous exportez les objets de base de données vers d’autres formats de fichier tels qu’un format de fichier Microsoft Excel, HTML ou texte, n’utilisez pas de signe dièse (#) ou de point (.) dans les noms des objets de base de données ou dans les noms des champs.
  • Quand vous utilisez des liens hypertexte dans Access, ces liens sont stockés en tant que champs Mémo modifiés en utilisant le signe dièse (#) comme délimiteur. Par conséquent, le signe dièse est considéré comme un mot réservé dans Access. N’utilisez pas le signe dièse quand vous créez des liens hypertexte.
  • Quand vous importez un fichier texte dans Access et que ce fichier contient des tabulations ou d’autres caractères spéciaux, les caractères spéciaux sont convertis, puis ils apparaissent sous forme de carrés. Par conséquent, quand vous essayez d’utiliser la table importée, des erreurs inattendues se produisent. Vous ne devez pas utiliser les caractères spéciaux dans la table source quand vous effectuez une importation dans Access.
  • Quand vous utilisez des formulaires ASP pour ajouter ou modifier des données dans une base de données Access, vous ne devez pas utiliser un signe de pourcentage (%), un signe plus (+) ou un accent circonflexe (^) dans le formulaire. Ces caractères spéciaux ne sont pas convertis correctement dans la base de données Access.
  • Quand vous utilisez des langues à pleine chasse, n’utilisez pas de caractères à pleine chasse dans les noms des objets de base de données ou des contrôles. Par exemple, vous ne devez pas utiliser de parenthèses à pleine chasse quand vous utilisez des langages à pleine chasse. En effet, cela risque de provoquer des erreurs de compilation s’il existe du code dans une procédure événementielle pour l’objet ou le contrôle.