Accéder à une variable Noms de Champ
Dans MS Access 2010, je suis de la construction d'une requête de mise à jour (à l'aide du Concepteur de Requêtes).
Je voudrais passer le nom de la colonne à mettre à jour la variable au moment de l'exécution.
J'ai essayé d'écrire du SQL et de l'exécution de la requête en VBA. Cela semblait être le moyen le plus facile... mais le SQL pour terminer la mise à jour devient bien plus complexe. Je préfère le faire dans le générateur de requêtes de GUI .
Est-il possible?
Je l'ai essayé en entrant les noms de champ dans le générateur de requêtes:
expr1:[field_name]
Bien que l'Accès me demande "Field_name" le résultat est "Impossible de mettre à jour 'nom_champ'; un champ non modifiable.
Aussi, j'ai essayé cette méthode:
Expr1: "'" & [field_name] & "'"
qui se traduit par "'" & [field_name] & "'" n'est pas un nom valide; vérifier les signes de ponctuation.. etc
Ci-dessous est une capture d'écran de la requête, je suis en train de construire.
OriginalL'auteur GRY | 2012-11-26
Vous devez vous connecter pour publier un commentaire.
Accès " moteur db ne vous permettra pas d'utiliser un paramètre, comme le nom du champ cible pour votre
UPDATE
déclaration.Si vous essayez d'une fonction définie par l'utilisateur au lieu d'un paramètre à fournir le nom du champ, le résultat sera le même ... pas de joie.
Il semble que le moteur de base de données ne permet pas de résoudre les noms d'objet lorsqu'il exécute une instruction SQL. Cette limitation ne s'applique pas seulement à des noms de champs, mais les noms de table. OIE, la requête suivante va échouer avec un message d'erreur "ne peut pas trouver l'entrée de la table ou de la requête "donnez-moi un nom de table'".
Même si ce n'est pas exactement le même que celui de votre situation, je soupçonne que la raison peut être. Le moteur de base de données est trop limité sur la résolution de noms d'objet dans la planification/exécution des requêtes.
OriginalL'auteur HansUp
Peut-être la meilleure méthode est d'utiliser SQL, construire vos invites et puis affecter ces valeurs à des variables dans VBA, puis il suffit d'ajouter la valeur de la variable dans votre SQL.
Donc quelque chose le long de ces lignes. À l'aide de votre requête de mise à Jour, mais même logique
Vérifier Ici pour SQL conseils pour la construction
OriginalL'auteur David Poduska
J'utilise cette méthode souvent - je sais que c'est un très vieux post, mais espérons que cela aide quelqu'un - en s'appuyant sur ce que dit David:
OriginalL'auteur Schalton