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

Requêtes et SQL. Discussion :

j'ai un pb avec docmd.runsql [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut j'ai un pb avec docmd.runsql
    * Bonjour, *

    Contexte:
    Après avoir lancé un publipostage je souhaite renseigner dans la base le fait qu'une convocation est partie.

    solutions envisagées:
    - modification de la table via l'utilisation des recordset. mais je n'y arrive pas
    - j'essaye donc un update via docmd.Runsql ça marche pas non plus.

    Cela fait plusieurs heures que je cherche et je trouve pas alors je me tourne vers vous... je vous mets ci dessous le code que j'utilise pour le runsql.

    explications:
    numNR -> récupère l'identifiant du rendezvous que je veux mettre à jour
    Je souhaite renseigner la valeur "envoyé" dans le champ "convocation" de la table T_RendezVous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim NumNR As integer
    NumNR = rs.Fields("nr")
    msgbox NumNR
    DoCmd.RunSQL ("UPDATE T_RendezVous SET T_RendezVous.Convocation ='envoyé' WHERE T_RendezVous.NR=" & NumNR & "")
    DoCmd.Close
    Pour l'instant je rentre chez moi, je vous répondrai demain s'il y a des réponses ce soir.

    un grand merci d'avance pour vos réponses.

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonsoir,
    pour éviter l'erreur, il manque ; entre les guillemets ou supprimer & ""
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.RunSQL ("UPDATE T_RendezVous SET T_RendezVous.Convocation ='envoyé' WHERE T_RendezVous.NR=" & NumNR & ";")

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    j'ai essayé les deux solutions avec le ; et sans comme si dessous et cela ne marche toujours pas.
    La boite de dialogue affichant la valeur NumNR s'affiche tandis que la boite de dialogue test ne s'affiche pas. J'en déduit que le problème vient de la ligne de commande Docmd.runsql... mais peut être que je fais fausse route?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim NumNR As Long
    NumNR = rs.Fields("nr")
    msgbox NumNR
    DoCmd.RunSQL ("UPDATE T_RendezVous SET T_RendezVous.Convocation ='envoyé' WHERE T_RendezVous.NR= " & NumNR)
    msgbox "test"
    DoCmd.Close

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Bonjour,

    T_RendezVous est bien une table et non une requete ?
    T_RendezVous.NR est bien numérique ?

    Il est préférable d'utiliser la syntaxe que je donne dans cette file pour connaitre l'erreur (update... à la place de delete...)

    De mon coté je cherche des tuyaux sur le publipostage, tu utilises quelle méthode ???
    Merci de voir ma file : envoi de mail avec piece jointe

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    bonjour nico,
    oui T_RendezVous est une table et NR est une clé avec numérotation automatique.

    par contre je suis désolé mais je suis un peu perdu sur ton message concernant la gestion des messages d'erreur. J'ai pas compris ce qu'il faut mettre dans le code pour avoir la description de l'erreur.

    Enfin, en ce qui concerne le publipostage, je n'envoie pas de mail, pour l'instant je me contente d'imprimer une lettre que la secrétaire envoie par la poste.

    Modif du post:

    j'ai réussi à insérer le gestionnaire de message d'erreur: il me dit que la table est déja utilisé ou ouverte dans l'interface et qu'elle ne peut pas être manipulé. Je regarde cela et je vous tiens au courant. En tous cas un grand mercipour l'idée du gestionnaire d'erreur. cela me met sur la voie.

    merci de ton aide,

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    Bonjour,

    Et en remplaçant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL ("UPDATE T_RendezVous SET T_RendezVous.Convocation ='envoyé' WHERE T_RendezVous.NR= " & NumNR)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentdb.execute "UPDATE T_RendezVous SET Convocation ='envoyé' WHERE NR= " & NumNR , dbFailOnError

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par luc.guiavarch Voir le message

    j'ai réussi à insérer le gestionnaire de message d'erreur: il me dit que la table est déja utilisé en mode exclusif ou ouverte dans l'interface et qu'elle ne peut pas être manipulé. Je regarde cela et je vous tiens au courant. En tous cas un grand merci pour l'idée du gestionnaire d'erreur. cela me met sur la voie.

    merci de ton aide,

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    le problème est résolu. Je lançais la commande depuis un formulaire basé sur une requête qui sollicitait la table T_RendezVous.

    J'ai réglé le problème merci de votre aide.

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

Discussions similaires

  1. [AC-2003] DoCmd.RunSQL avec INSERT INTO
    Par Invité dans le forum IHM
    Réponses: 9
    Dernier message: 18/09/2012, 09h07
  2. [AC-2003] Requête sql avec méthode DoCmd.Runsql bloqué dans une transaction
    Par rana dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/03/2010, 13h20
  3. probleme avec DoCmd.RunSQL
    Par Didier77 dans le forum Access
    Réponses: 5
    Dernier message: 21/07/2006, 16h09
  4. Comment tester le déroulement d'un DoCmd.RunSQL ?
    Par Tchupacabra dans le forum Access
    Réponses: 7
    Dernier message: 28/11/2005, 23h45
  5. Transaction avec DoCmd.runsql ???
    Par Gandalf24 dans le forum VBA Access
    Réponses: 29
    Dernier message: 11/02/2003, 20h35

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