Access Mise à jour d'une table

display -  
 Utilisateur anonyme -
Bonjour,

Acutellement j'ai cette commande pour mettre à jour un enregistrement :

DoCmd.RunSQL "UPDATE Invoice, Rate SET Invoice.cost_amounteur = [cost_amount]*[Rate]![rate] WHERE (((Invoice.cost_currency)=Left([Rate]![curtocur],3)) AND ((Right([Rate]![curtocur],3))=""EUR"")) AND ((Invoice.cost_type)=""Permanent""); ", -1

l'update fonctionne quand je change la valeur du controle de mon formulaire. mais si je change la valeur plus de 2 fois un message apparait en disant qu'il ne peut pas le mettre à jour car il est en ecriture.

peut-on enregistrer definitivement l'enregistrement après chaque
mise à jour ???? le ; aurait dû faire le commit ??

merci pour vos reponses

2 réponses

  1. Utilisateur anonyme
     
    Bonjour display,

    Je crois qu'il te faut faire un save et un refresh
    après le DoCmd.RunSQL ! Toutefois je ne suis pas sur
    à cent pour cent, moi c'est ce que je fais après
    une modification sur une requête et ça fonctionne bien.

    DoCmd.Save
    RefreshDatabaseWindow

    Lupin
    0
    1. display Messages postés 1 Statut Membre
       
      J'ai effectivement ajouter le DoCmd.Save et RefreshDatabaseWindow mais j'ai toujours après chaque update un message access qui mentionne un write conflict et me propose de sauver l'enregistrement.
      (pour info, je suis seul à accèder à cette base.)

      Merci pour votre aide.
      0
  2. Utilisateur anonyme
     
    Bonsoir,

    Bon, je travaille différament avec la mise à jour de requête SQL,
    j'ai apprit beaucoup dans un bouquin sur le sujet.

    En fait, la question serait pourquoi fais-tu une maj de la requête?

    Routine qui modifie une requête SQL

    Public Function ChangeRequeteDef(ChaineRequete As String, ChaineSQL As String) As Boolean

    Dim Definition As QueryDef

    If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
    ChangeRequeteDef = False
    Else
    Set Definition = CurrentDb.QueryDefs(ChaineRequete)
    Definition.SQL = ChaineSQL
    Definition.Close
    RefreshDatabaseWindow
    ChangeRequeteDef = True
    End If

    End Function

    Le nom de la requête et la définition SQL sont passés en
    paramêtres lors de l'appel de la fonction, or lorsque j'ouvre
    ou que je rafraichi le formulaire, celui-ci est à jour :)

    Lupin
    0