J'essaie de créer un formulaire Access 2016 qui permet aux utilisateurs de corriger les informations situées sur une table SQL Server mais rencontrant des problèmes. D'abord quelques restrictions; Je ne peux pas créer quelque chose de nouveau dans SQL Server, Les utilisateurs n'ont pas accès au mot de passe pour la connexion ODBC. Je sais qu'avec une requête Access Pass-Through, vous pouvez enregistrer une connexion ODBC, mais vous devez utiliser VBA pour mettre à jour la requête avec les données d'un formulaire Access.Mise à jour d'une table SQL à l'aide des données d'un formulaire Access 2016
Actuellement mon code dans VBA est;
mysql = "Update dbo.MRollData Set dbo.MRollData.PolyPart = '" + Me.ActiveControl.Value + "' WHERE dbo.MRollData.LotNum = '" + Me.MRollLotNum.Value + "' AND dbo.MRollData.Side = '" + Me.MRollSide.Value + "' AND dbo.MRollData.MRIndex = '" + Me.MRollIndex.Value + "' AND dbo.MRollData.PolyPart = '" + Me.CurrentValue.Value + "'"
CurrentDb().QueryDefs("PolyPartChange").SQL = mysql
DoCmd.OpenQuery "PolyPartChange", , acEdit
Cette fonction est activée par une commande OnClick, en cours d'exécution mais ce que j'obtiens l'erreur d'exécution « 438 » Cet objet ne gère pas cette propriété ou méthode. Le code VBA a été écrit en utilisant un bit de code similaire d'une autre base de données qui met à jour une requête qui exécute une requête SQL.
J'ai aussi essayé de simplement exécuter la requête elle-même et continuer à obtenir l'erreur « requête doit avoir au moins un champ de destination » manque
Suis-je quelque chose ou est-il pas possible d'exécuter exécuter une SQL Mettre à jour la requête dans une requête directe d'accès? Aussi est-il un moyen plus facile de faire ce que j'essaie?
MISE À JOUR; J'ai une étiquette répertorié ici que je ne voyais pas générer automatiquement comme ActiveControl, cela aurait dû être Me.ActualValue.Value
J'ai essayé la modification que vous avez suggérée mais j'ai obtenu l'erreur d'exécution '438' L'objet ne supporte pas cette propriété ou cette méthode. Cliquer sur le débogage pointe vers la partie MySQL = "..." – MDavies
Cela a fini par fonctionner, j'ai trouvé mon erreur quand j'ai tapé le code VBA que j'ai mis accidentellement ActiveControl au lieu de mon tag ActualValue. Alors merci. – MDavies