Message différent en fontion de la réponse d'une requete

Bonjour,

J'ai créé une requete SQL afin de supprimer des lignes de différents tables en fonction de plusieurs critère et dépendant d'une condition SI, mon probleme est que j'aimerai pouvoir afficher via VBA une msgbox indiquand que la supppression a été effectuer si elle l'a vraiment été et un message d'information si cela n'a pas été fait (via un else dans la condition ) mais je ne sais pas comment différencier le fait que la requete ai executer le SI ou le ELSE et le différencier dans un programme VBA, si quelqu'un pouvait m'aider .

En esperant avoir été claire et en vous remerciant d'avance pour votre aide.

Arthur.

PS: la requete :

IF ( (SELECT count(*) FROM tbl_Projet WHERE PtrIdClient = 96) = (SELECT count(*) FROM tbl_Projet WHERE PtrIdClient = 96 AND oEtatProjet = 0))
BEGIN
SELECT * FROM tbl_Elevation WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = 96)
SELECT * FROM tbl_Elevation_Annexes WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = 96)
SELECT * FROM tbl_Elevation_Details WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = 96)
SELECT * FROM tbl_Elevation_Element WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = 96)
SELECT * FROM tbl_Elevation_Exemplaire WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = 96)
SELECT * FROM tbl_Elevation_InfoSAI WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = 96)
SELECT * FROM tbl_Elevation_Prix WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = 96)
SELECT * FROM tbl_Elevation_PtBois WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = 96)
SELECT * FROM tbl_Elevation_Traverse WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = 96)
SELECT * FROM tbl_Clients WHERE IdClient = 96 
END

Bonjour,

une variable boolean Test_Si as Boolean

première ligne de code en dessous du If :

Test_Si = True

première ligne de code en dessous du Else :

Test_Si

teste après le END du IF

If Test_Si then

ce qu'il faut faire si c'est ce morceau de code qui a tourné

Else

ce qu'il faut faire si c'est la partie du Else qui a tourné

End

@ bientôt

LouReeD

LouReeD a écrit :

une variable boolean Test_Si as Boolean

première ligne de code en dessous du If :

Test_Si = True

première ligne de code en dessous du Else :

Test_Si

teste après le END du IF

If Test_Si then

ce qu'il faut faire si c'est ce morceau de code qui a tourné

Else

ce qu'il faut faire si c'est la partie du Else qui a tourné

End

je n'ai pas trop compris ce que tu m'a dit, je dois créé en VBA une variable Test_Si booléenne puis après ?

Le Test_Si = True je me met ou dans le code VBA ou SQL ?

Pareil pour le reste je ne comprend pas dans quel code je dois le rajouter SQL ou VBA ?

Merci pour ton aide

Arthur

Re,

pour une meilleur cmpréhension je l'ai rajouter dasn mon code VBA

Private Sub VALIDER_Click()

    If no_client = confirmation_no_client Then

        If MsgBox("Êtes vous sur de vouloir supprimer ce prospect et ses devis, repères associés ?", vbYesNo) = vbYes Then

            Suppression = "IF ( (SELECT count(*) FROM tbl_Projet WHERE PtrIdClient = 96) = (SELECT count(*) FROM tbl_Projet WHERE PtrIdClient = 96 AND oEtatProjet = 0))" & _
            "BEGIN" & _
            " SELECT * FROM tbl_Elevation WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = " & no_client & ")" & _
            " SELECT * FROM tbl_Elevation_Annexes WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = " & no_client & ")" & _
            " SELECT * FROM tbl_Elevation_Details WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = " & no_client & ")" & _
            " SELECT * FROM tbl_Elevation_Element WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = " & no_client & ")" & _
            " SELECT * FROM tbl_Elevation_Exemplaire WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = " & no_client & ")" & _
            " SELECT * FROM tbl_Elevation_InfoSAI WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = " & no_client & ")" & _
            " SELECT * FROM tbl_Elevation_Prix WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = " & no_client & ")" & _
            " SELECT * FROM tbl_Elevation_PtBois WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = " & no_client & ")" & _
            " SELECT * FROM tbl_Elevation_Traverse WHERE PtrIdProjet IN (SELECT IdProjet FROM tbl_Projet WHERE  PtrIdClient = " & no_client & ")" & _
            " SELECT * FROM tbl_Clients WHERE IdClient = " & no_client & _
            " End"

            'connection au serveur
            Set Connect = CreateObject("ADODB.Connection")
            Set Recordset = CreateObject("ADODB.RecordSet")
            Connect.Open "Provider=SQLOLEDB;Server=A42APTECP02;Database=BDDChacal_TEST;Persist Security Info=False;Integrated Security=SSPI;" 'chaine de connection ou le mdp et l'utilisateur sont les meme que l'identification windows et définie par Integrated Security=SSP

            Recordset.Open Suppression, Connect 'Create the recordset

            If Recordset.BOF Then
            MsgBox "ERREUR", vbCritical
            Exit Sub
            Else
            MsgBox "Les modifications ont bien été effectuées"
            End If
            ThisWorkbook.Worksheets("Feuil1").Activate
            Range("A2").CopyFromRecordset Recordset
            Recordset.Close

            Set Recordset = Nothing
            Connect.Close 'fermeture de la connection à distance
            Set Connect = Nothing

            Unload Me

        End If

    Else
        MsgBox no_client
        MsgBox confirmation_no_client
        MsgBox "la confirmation du numéro de client ne correspond pas au numéro de client"
    End If
End Sub    

mais la ligne

If Recordset.BOF Then 

est surligné en jaune et l'erreur" Cette opération n'est pas autorisée si l'objet est fermé " apparait , par déduction j'en déduit que le recordset ne marche pas avec le Transact-SQL , existe-t-il un moyen d'avoir un retour sur ce type de requete ?

Cordialement

Arthur

Rechercher des sujets similaires à "message different fontion reponse requete"