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 :

Probleme CurrentDb.Execute Sql


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut Probleme CurrentDb.Execute Sql
    Bonjour voila je suis entrein de développer une application access concernant des interventions que mon entreprise doit effectuer ! Un intervention peut avoir plusieurs observations... j'ai crée un formulaire de suppression d'intervention avec un sous formulaire observation... cependant pour supprimer les observation de l'intervention je suis obligé de passer par vba.
    Le soucis c'est que vba me donne une erreur et je ne vois pas comment la résoudre !

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Boutonsupprinter_Click()
     
    Dim Sql As String
    If MsgBox("Etes vous sûr de vouloir supprimer cet enregistrement?", vbYesNo + vbCritical, "Suppression") = vbNo Then Exit Sub
     
    Sql = " Delete FROM Intervention, observations WHERE Intervention.nointervention=observations.nointervention And Intervention.NoIntervention= '" & Me.TNoIntervention & "';"
     
    CurrentDb.Execute Sql
     
    MsgBox ("L'enregistrement a bien été supprimé")
     
    End Sub
    voici l'erreur :



    merci par avance...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 101
    Par défaut
    bonjour ton NoIntervention est de type string ?
    Sinon enlève les ' de ta chaine sql ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub Boutonsupprinter_Click()
     
    Dim Sql As String
    If MsgBox("Etes vous sûr de vouloir supprimer cet enregistrement?", vbYesNo + vbCritical, "Suppression") = vbNo Then Exit Sub
     
    Sql = " Delete FROM Intervention, observations WHERE Intervention.nointervention=observations.nointervention And Intervention.NoIntervention= " & Me.TNoIntervention & ";"
     
    CurrentDb.Execute Sql
     
    MsgBox ("L'enregistrement a bien été supprimé")
     
    End Sub

  3. #3
    Membre émérite Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 961
    Par défaut
    Euu, moi je fais pas du tout comme ça pour supprimer un enregistrement.
    Pour ton cas, ça donnerait quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Private Sub Boutonsupprinter_Click()
        'Déclaration des variables
        Dim bd As Database
        Dim tIntervention As Recordset
        Dim critere As String
     
        If MsgBox("Etes vous sûr de vouloir supprimer cet enregistrement?", vbYesNo + vbCritical, "Suppression") = vbNo Then Exit Sub
     
        'Positionnement sur la BDD Intervention
        Set bd = CurrentDb
        Set tIntervention = bd.OpenRecordset("Intervention", DB_OPEN_DYNASET)
     
        'Création d'un critère de suppression
        critere = "NoIntervention=" & Me.TNoIntervention
     
        'Positionnement sur le premier enregistrement correspondant au critère
        'et suppression de cet enregistrement
        tIntervention.FindFirst critere
        tIntervention.Delete
     
        MsgBox ("L'enregistrement a bien été supprimé")
    End Sub
    En espérant t'avoir aidé

  4. #4
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut
    tout d'abord je vous remercie de votre aide...

    en ce qui regarde la reponse que m'a donné alain rien ne change, il ya toujours la meme erreur...

    pour azertix : nouvelle erreur -> tIntervention.Delete

  5. #5
    Membre émérite Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 961
    Par défaut
    Quelle est l'erreur exacte ?

    Tu n'as pas répondu à la question d'alaingui : ton NoIntervention est de quel type ? Entier ? Chaine ?

  6. #6
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut
    il est en numeroauto ...
    il me souligne CurrentDb.Execute Sql en jaune...

  7. #7
    Membre émérite Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 961
    Par défaut
    Ok donc si c'est un numéro auto, il ne faut pas de ' comme te l'a précisé alaingui
    Par contre, je voulais savoir l'erreur exacte, mais de la solution que je t'avais proposé ^^

  8. #8
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut
    enfin il me surligne pluot ^^

  9. #9
    Membre averti
    Inscrit en
    Février 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 56
    Par défaut
    Bonjour

    Tu peux utiliser une requêtte suppression de type sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim qd As Querydef
    Set qd = dbs.CreateQuerydef("", "DELETE * FROM " & Nomdetatable & _
    & " WHERE NoIntervention=" & Me.TNoIntervention)
    qd.Execute dbFailOnError
    Set qd = Nothing

  10. #10
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut
    Pour azertix :

    Impossible de supprimer ou de modifier l'enregistrement car la table Observations comprend des enregistrements connexes.

    midasios je test et je te dit

  11. #11
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut
    pour midasios : syntaxe incorrect...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/04/2009, 07h12
  2. probleme d'execution de requete sql via perl
    Par juzii dans le forum Windows
    Réponses: 0
    Dernier message: 14/07/2008, 15h53
  3. [Connexion BDD Requete SQL] Probleme d'execution
    Par GarsDuCalvados dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/07/2007, 08h22
  4. Réponses: 26
    Dernier message: 23/06/2006, 15h45
  5. probleme d'execution d'une requete sql
    Par rootdaoud dans le forum SGBD
    Réponses: 2
    Dernier message: 13/09/2005, 17h15

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