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 :

erreur 2342 : une action ExécuteSQL necessite un argument consistant en une instruction SQL


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Par défaut erreur 2342 : une action ExécuteSQL necessite un argument consistant en une instruction SQL
    Bonjour a tous
    Je voudrais supprimer les enregistrement de ma table indicateur dont le numero de l'indicateur va etre entré par l'utilisateur.
    j'ai ajouter une condition : si le numéro de l'indicateur entré correspond à l'indicateur qu'il voulais supprimer au départ, l'action de suppression va s'exécuter , sinon rien ne se passe.
    Mais à l'exécution sa me met l'erreur : une action ExécuteSQL necessite un argument consistant en une instruction SQL
    Merci pour vos commentaires

    PS: je suis nul en vba, je ne sais pas si le code est bon... A l'aide svp !!!

    Private Sub Commande15_Click()

    Dim Rep As Integer
    Rep = MsgBox("Voulez-vous vraiment supprimer l'indicateur ?", vbYesNo + vbQuestion, "Suppression Indicateur")
    If Rep = vbYes Then

    DoCmd.RunSQL "Select id_indicateur As id_supp FROM Indicateur WHERE id_indicateur = [entrez à nouveau le numéro de l'indicateur] ;"
    If id_indicateur = Me.id_indicateur Then
    DoCmd.RunSQL "Delete* FROM Indicateur WHERE id_indicateur = id_supp ;"
    Else
    End If

    Else ' '
    End If
    Me.Refresh

    End Sub

  2. #2
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 469
    Par défaut
    As-tu un espace entre ton "DELETE" et ton étoile ?

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Par défaut oui c'est delete *
    oui j'ai de l'espace entre mon delete et mon etoile . la ligne de l'erreur que me renvoi access est la ligne du : DoCmd.RunSQL "Select id_indicateur As id_supp FROM Indicateur WHERE id_indicateur = [entrez à nouveau le numéro de l'indicateur] ;"

  4. #4
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 469
    Par défaut
    Pour verifier ta commande SQL, voici ce que tu peux faire :
    Tu sélectionnes (Ctrl- C ) ton statement SQL Select id_indicateur As .....
    Dans Access, tu crées une nouvelle requète. Tu ne choisis pas de table mais tu va directement dans la vue SQL
    Access te montrera une fenêtre vide avec seulement Select; en haut à gauche.
    à la place de ce Select, tu fais un paste (Ctrl - V ) de ton Statement SQL
    Passe en mode Design (l'icône avec l'équère) pour voir comment Access compose ta requête.
    à ce stade, Access pourrait te donner un message d'erreur parce que la syntaxe SQL de Access n'est pas tout à fait la même que la syntaxe SQL officielle.
    Les 3 principales differences sont :
    Access doit terminer avec un point virgule en fin de statement. SQL (VBA) ne l'exige pas.
    Access impose les critères entre double guillemets ("). SQL impose l'apostophe simple.
    Access utilise les formats de dates de tes Windows locales. SQL impose le format américain mois/jour/année

    Quand tu es dans la vue Design de Access, c'est beaucoup facile de composer la requète.
    Une fois que tu as ce que tu veux, passe de nouveau en mode SQL pour voir le statement SQL de ta requète. Copie tout et fais un copier-coller dans ton code VBA.
    N'oublie pas que ton code VBA devra avoir des ' à la place des ".

  5. #5
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 469
    Par défaut
    Correection :

    Ton statement SQL est un simple SELECT.
    Dans VBA, tu effectueras des requètes d'ACTION : ajout, suppression, creation de tables....

    Ton 1er statement SQL sert à simplement voir ou selectionner les lignes de ta table mais en VBA cela n'a pas de sens.


    Donc pour faire simple,
    Tu fais directement ceci :
    [CODE]dim strSQL as String

    strSQL = "DELETE indicateur.id_indicateur " & _
    "FROM indicateur " & _
    "WHERE (((indicateur.id_indicateur)=[quel indicateur voulez-vous supprimer]))"
    currentdb.execute strSQL[CODE]

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Par défaut
    merci pour tes reponses !
    [code] remplace quoi déja ??
    ou je le met exactement comme tu l'as mis ??
    [CODE]dim strSQL as String....

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Par défaut
    [CODE]dim strSQL as String et currentdb.execute strSQL[CODE] sont en rouge . et lorsque je compile, sa me met erreur de syntaxe

Discussions similaires

  1. Ajout d'une action dans un groupe d'items d'une ToolBar
    Par barth3000 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 22/07/2011, 11h59
  2. Réponses: 6
    Dernier message: 03/12/2010, 10h12
  3. Réponses: 2
    Dernier message: 28/04/2009, 19h02
  4. Réponses: 12
    Dernier message: 30/07/2008, 10h59
  5. Réponses: 11
    Dernier message: 17/03/2007, 20h17

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