VBA Access : erreur requete UPDATE

Fermé
foo - Modifié par foo le 7/06/2013 à 15:09
 foo - 7 juin 2013 à 16:02
Bonjour,

j'ai un formulaire avec des zones de texte indépendantes et un bouton "sauvegarde".
le code de ce bouton permet de comparer la valeur de mes zones de texte et de champs de ma table "Options". en cas de différences, ça devrait sauvegarder les valeurs des zones de texte dans ma table "Options"

exemple de comparaison de valeurs:

valeur = TxtNewMenu.Value
If Not valeur = DLookup("[Paramètre]", "Options", "[N°] = 2") Then
modifs = modifs & "* Couleur du menu" & Chr(10)
nomod = nomod + 1
End If

en fonction de la valeur de la variable nomod à la fin des tests, je sais quelles modifs ont été faites et donc j'adapte ma requête Update:

Select Case nomod
Case 1
SQL = "UPDATE [Options] SET [Paramètre]= TxtNewMenu.Value WHERE [Options].[N°] = " & Chr(34) & "2" & Chr(34)
Case 2
....

mais ensuite lorsque je lance ma requête avec "DoCmd.RunSQL SQL" j'ai un message d'erreur '3464' "type de données incompatible dans l'expression du critère"

une idée de ce qui cloche dans ma requête?


Edit:

j'ai trouvé. il fallait mettre

Case 1
SQL = "UPDATE [Options] SET [Paramètre]= TxtNewMenu.Value WHERE [N°] = 2"
....


maintenant, question subsidiaire, puis-je en une seule requête mettre à jour un champs de ma table pour 2 enregistrements avec 2 valeurs différentes? (ex: le champs "Paramètre" prends la valeur "10" pour l'enregistrement N° 2 et la valeur "50" pour l'enregistrement N° 3)


A voir également:

1 réponse

je regardais avec une requête du style :

SQL = "UPDATE [Options] SET [Paramètre]= TxtNewMenu.Value, [Paramètre]= TxtNewText.Value WHERE [N°]= 2 AND [N°]= 4"

mais ça ne marche pas, j'ai une erreur 3063 "destination de sortie <<Paramètre>> répliquée.
est ce possible, et le cas échéant, comment faire?
0