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

Macros et VBA Excel Discussion :

Problème lors de la restitution d'une valeur de requête sql [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 618
    Par défaut Problème lors de la restitution d'une valeur de requête sql
    Bonjour,

    Je souhaite chercher si un enregistrement est présent dans une table à l'aide de sql dans du vba excel. Si tel n'est pas le cas, je dois réaliser mon traitement. Pour cela, j'ai codé:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Dim conn As New ADODB.Connection
       Dim conn2 As New ADODB.Connection
       Dim conn3 As New ADODB.Connection
       Dim connString
     
       ' Recordset pour traiter les of racines non soldés dont le statut est "Terminé" et pour lesquels il y a du livrable
       Dim rsRecords As New ADODB.Recordset
     
       ' Recordset pour rechercher si l'of racine a été traité
       Dim rsRecord_trt As New ADODB.Recordset
     
    connString = "DSN=TOP;Uid=TOPMAN01;Pwd=TOPMAN01"
       conn.Open connString
       conn2.Open connString
     
    ' Suppression des of traités soldés.
       txt = "DELETE FROM topaddin.m44_of_racines_traites m WHERE m.id_wo in (select w.id_wo from topmes.wo w where nvl(w.b_closed,0) = -1)"
       conn2.Execute txt
     
       ' Suppression des of extraits et soldés
       txt = "DELETE FROM topaddin.m44_etiquettes WHERE id_wo in (select w.id_wo from topmes.wo w where nvl(w.b_closed,0) = -1)"
       conn2.Execute txt
     
       ' Suppression des étiquettes du traitement précédent
       txt = "DELETE FROM topaddin.m44_etiquettes WHERE id_wo in (select id_wo from topaddin.m44_of_racines_traites)"
       conn2.Execute txt
     
     Set rsRecord_trt = conn2.Execute("select id_wo from topaddin.m44_of_racines_traites where id_wo = " & id_wo)
     
             MsgBox rsRecord_trt.EOF
     
             If rsRecord_trt.EOF Then
    Le msgbox ramène une valeur "Faux" alors même que la requête réalisée par sql ne ramène aucun enregistrement.

    Je ne comprends pas comment cela est possible.

    Faut-il coder des commit après des mises à jour ?

    Merci d'avance.

    Julien.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    que veut dire Eof début ou fin de ta requête! si tu est à la fin eof=true , qu'on ce le dise!

    Eof Fin, Bof Début si ta requête te retourne pas de valeurs EOF=Bof=True ; Débutde requête (Eof= false Bof=True) , Fin de requête (Eof= True Bof=False)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 618
    Par défaut
    J'ai modifié le test de la manière suivante mais cela ne fonctionne pas mieux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If rsRecord_trt.EOF = True Then

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par rdurupt
    Débutde requête (Eof= false Bof=True) , Fin de requête (Eof= True Bof=False)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If rsRecord_trt.EOF = false Then
        Msgbox "Ok"
    else
        Msgbox "Pas trouvé!"
    end if

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 618
    Par défaut
    Cela ne change rien.

    Ma question est plutôt de savoir pourquoi la requête sql ne ramène aucun enregistrement par sql alors que sur vha j'ai un eof = false qui semble dire qu'il y a un enregistrement.

  6. #6
    Invité
    Invité(e)
    Par défaut
    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
     
    Dim conn As New ADODB.Connection
    Dim rsRecords As New ADODB.Recordset ' Recordset pour traiter les of racines non soldés dont le statut est "Terminé" et pour lesquels il y a du livrable
    Dim rsRecord_trt As New ADODB.Recordset  ' Recordset pour rechercher si l'of racine a été traité
    conn.Open  "DSN=TOP;Uid=TOPMAN01;Pwd=TOPMAN01"
    ' Suppression des of traités soldés.
    txt = "DELETE FROM topaddin.m44_of_racines_traites m WHERE m.id_wo in (select w.id_wo from topmes.wo w where nvl(w.b_closed,0) = -1)"
    conn.Execute txt
    ' Suppression des of extraits et soldés
    txt = "DELETE FROM topaddin.m44_etiquettes WHERE id_wo in (select w.id_wo from topmes.wo w where nvl(w.b_closed,0) = -1)"
    conn.Execute txt
    ' Suppression des étiquettes du traitement précédent
     txt = "DELETE FROM topaddin.m44_etiquettes WHERE id_wo in (select id_wo from topaddin.m44_of_racines_traites)"
    conn.Execute txt
    rsRecord_trt.open "select id_wo from topaddin.m44_of_racines_traites where id_wo = " & id_wo & ";",conn
    If rsRecord_trt.EOF  Then 
          MsgBox "Pas trouvé!"
    else
          Msgbox "Traitement"
    endif

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

Discussions similaires

  1. problème insertion images en fonction d'une valeur
    Par narbaits dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/01/2011, 15h06
  2. Réponses: 1
    Dernier message: 30/05/2008, 18h15
  3. Réponses: 1
    Dernier message: 16/03/2008, 19h06
  4. Réponses: 3
    Dernier message: 31/10/2007, 11h46
  5. Réponses: 2
    Dernier message: 22/05/2007, 16h15

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