Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Erreur MS Access ODBC - échec de l'appel. Valeur de caractère non valide pour la spécification de distribution (#0)

Hum, je vérifierais la zone de texte par défaut du côté accès. J'afficherais également la table liée en mode conception et vous souhaitez vérifier le type de données que ms-access suppose ici. Pour les types de données non pris en charge, ms-access utilise généralement une chaîne et le serveur SQL peut vouloir autre chose.

Donc, vérifiez à la fois la clé primaire (PK) dans la table principale, puis vérifiez le type de données utilisé (supposé) dans la table enfant pour la colonne de clé étrangère (FK). Pendant que nous y sommes, vérifiez vos expressions utilisées pour les paramètres de lien enfant/maître dans le contrôle du sous-formulaire (pas le formulaire, pas le sous-formulaire, mais le contrôle du sous-formulaire utilisé dans votre formulaire qui relie ces deux tables ).

Les sous-formulaires d'accès sont sensibles si vous n'avez pas de colonne d'horodatage dans la table du serveur sql. Comme mentionné, vérifiez les types de données PK et FK et assurez-vous qu'ils correspondent (affichez simplement les tables en mode conception dans ms-access - vous obtenez un message d'erreur indiquant que le mode conception est en lecture seule, mais continuez simplement pour que vous peut vérifier/afficher pour s'assurer que les types de données correspondent).

Ainsi, pour la table enfant, vous avez besoin d'un PK, d'un FK et également d'une colonne d'horodatage (vous n'avez pas à afficher la colonne TS dans le sous-formulaire, mais vous en avez besoin dans le tableau).

Les sous-formulaires dans ms-access sont sensibles et échouent souvent si vous n'incluez pas de colonne d'horodatage dans la table sql. (l'accès utilise ces colonnes de version de ligne pour déterminer si les données ont été modifiées).