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 :

CurrentDb.execute ou DoCmd.RunSql


Sujet :

Requêtes et SQL.

  1. #1
    Membre Expert Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Par défaut CurrentDb.execute ou DoCmd.RunSql
    Bonjour,

    Je voulais lancer une requête via la commande "CurrentDb.Execute" mais j'obtiens un message d'erreur :
    Erreur d'exécution '3061':
    Trop peu de paramètres. 1 attendu
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function UpDateStockX()
    Dim strSQL  As String
        strSQL = "UPDATE tblArticles SET tblArticles.[Qté Stock N° 1] = [Mettre le stock à combien ?]"
        CurrentDb.Execute strSQL
    End Function
    Par contre, si je remplace par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function UpDateStockX()
    Dim strSQL  As String
        strSQL = "UPDATE tblArticles SET tblArticles.[Qté Stock N° 1] = [Mettre le stock à combien ?]"
        DoCmd.RunSQL strSQL
    End Function
    ... cela fonctionne !

    Quelqu'un peut-il m'expliquer ce qui se passe ? D'autant plus que j'emploie fréquemment cette commande (CurrentDb.Execute) et quelle fonctionne ailleurs... et que je la configure toujours sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CurrentDb.Execute strSQL
    ou
    CurrentDb.Execute "UPDATE tblArticles SET tblArticles.[Qté Stock N° 1] = [Mettre le stock à combien ?]"
    Merci d'avance !

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    DoCmd.RunSQL fait partie de la bibliothèque Access
    CurrentDb.Execute fait partie de la bibliothèque DAO.

    Sans pouvoir le prouver, je dirai que de la même manière qu'il est impossible d'ouvir directement un recordset DAO
    dont la source comporte un paramètre, il n'est pas possible d'exécuter une requête paramètrée avec Execute.
    La bibliothèque DAO n'est pas prévue pour interagir avec l'utilisateur.

    A l'inverse la bibliothèque Access est plus axée sur l'interface utilisateur et offre plus d'interactions avec ce dernier.

    Pour singer le comportement Access dans DAO il faut demander le ou les paramètres
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim strSQL As String, strParam1 As String
     
    strParam1 = InputBox("Mettre le stock à combien ?")
    If strParam1 <> "" Then
       strSQL = "UPDATE tblArticles  SET tblArticles.[Qté Stock N° 1] = " & strParam1
       CurrentDb.Execute strSQL
    End If

    A+

  3. #3
    Membre Expert Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Par défaut
    Merci LedZep, je comprends mieux, c'est sympa à toi !

    Bonne journée !

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

Discussions similaires

  1. probleme avec DoCmd.RunSQL
    Par Didier77 dans le forum Access
    Réponses: 5
    Dernier message: 21/07/2006, 16h09
  2. Requête de sélection et DoCmd.RunSQL
    Par susiced dans le forum Access
    Réponses: 15
    Dernier message: 15/06/2006, 13h47
  3. Récupérer le numéroAuto après CurrentDb.Execute strSQL
    Par Tchupacabra dans le forum Access
    Réponses: 4
    Dernier message: 03/01/2006, 16h50
  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