IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Message d'erreur sur une requête mise à jour [AC-2003]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 45
    Points : 38
    Points
    38
    Par défaut Message d'erreur sur une requête mise à jour
    Voila mon problère :

    Sur clic je souhaite demander à l'utilisateur de siaisr 2 valeurs


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim Reponse1 As String
        Dim Reponse2 As String
        Reponse1 = InputBox("Veuillez saisir le numéro de facture à éditer", "Edition Facture")
        Reponse2 = InputBox("Veuillez saisir le numéro de commande associée", "Edition Facture")
    Là pas de soucis. Ensuite je voudrais insérer dans ma table Facture le numéro de facture et le numéro de commande saisi par l'utilisateur (là toujours pas de soucis).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "insert into facture (NumFact,NumProforma) VALUES ('" & Reponse1 & "', '" & Reponse2 & "')"
    Ce que je n'arrive pas c'est rajouter la raison sociale du client que l'on retrouve avec le NumCommande de la table Commande qui est aussi en clé étrangère dans la table facture. Mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "Update Facture set RaisonSociale = (Select Raisonsociale from Commande where NumCommande='" & Reponse2 & "') where Numcommande= ' " & Reponse2 & " ' "
    J'ai à ce niveau le fameux message d'erreur "L'opération doit utiliser une requête qui peut être mise à jour"
    J'ai cherché des explications sur cette erreur mais....j'ai testé en utilisant des NOT IN des EXISTS mais je n'arrive pas à faire fonctionner mon code.

    Merci de m'aider.

    PS : j'ai un autre post sur lequel je n'ai pas de réponse donc si jamais vous pouvez y jeter un oeil... Il s'appel : "Utilisation de la fonction Dsum"

  2. #2
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    As-tu vérifié ce que te retourne la commande sql de sélection?

    Il faudrait peut être procéder par étape : 1 récupérer la valeur que veux dans une variable et 2 mettre à jour la table facturation via la variable intermédiaire.


    Cordialement
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 45
    Points : 38
    Points
    38
    Par défaut
    Coment puis je visualiser ce que ce que retourne mon select? Et comment peut attribué le résultat d'une requête à une variable?

    J'ai tenté cela mais....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Dim Reponse3 As String
        Reponse3 = DoCmd.RunSQL "Select Raisonsociale from Commande where NumCommande = '" & Reponse2 & "';"
    Merci pour la réponse en tout cas.

  4. #4
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 108
    Points
    108
    Par défaut
    ton dernier sql ne marche pas car le select peut retourner plusieurs valeurs
    il faut créer un recordset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim rst as recordset
    set rst = currentdb.openrecordset("Select Raisonsociale from Commande where NumCommande = '" & Reponse2 & "';")
    if rst.eof=false then
    DoCmd.RunSQL "Update Facture set RaisonSociale = '" & rst!Raisonsociale & "' where Numcommande= '" & Reponse2 & "' "
    endif

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 45
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup....Problème résolu!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Message d'erreur sur une requête UPDATE qui fonctionne
    Par Aleadia dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 25/01/2013, 22h31
  2. sqlite3, message d'erreur sur une requête qui fonctionne
    Par stefh7 dans le forum Général Python
    Réponses: 13
    Dernier message: 25/02/2011, 14h48
  3. Aide sur une requête mise à jour
    Par nomade333 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 07/05/2008, 14h44
  4. Réponses: 4
    Dernier message: 01/12/2005, 15h36
  5. Réponses: 8
    Dernier message: 01/03/2005, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo