Incompabilité de type vba

Résolu
bithack Messages postés 143 Statut Membre -  
bithack Messages postés 143 Statut Membre -
Bonjour, tout est dans le titre, je vous mets mon code :)
merci de votre aide les amis ccm !
l'erreur et au niveau
If y = 1 Then


Sub sortieRun()
Dim jour As String
Dim db As Database
Dim rsdateres As DAO.Recordset
Dim sSQL0 As String
Dim rsresultat As DAO.Recordset
Dim sSQL1 As String
Dim rsrun As DAO.Recordset
Dim sSQL2 As String
Dim rstest As DAO.Recordset
Dim sSQL3 As String
Dim rs3 As DAO.Recordset
Dim sSQL4 As String
Dim rs4 As DAO.Recordset
Dim sSQL5 As String
Dim rs5 As DAO.Recordset
'Dim i As String
Dim rsdossier As DAO.Recordset
Dim flag As DAO.Recordset
Dim x As DAO.Recordset
Dim y As DAO.Recordset




 
'i = 1
jour = date
MsgBox jour ' affiche la date du jour

Set db = CurrentDb
Set rstest = db.OpenRecordset("test")
sSQL0 = "select date_resil, run FROM Dossier;"
Set flag = db.OpenRecordset(sSQL0)
    
   With rstest
   .Edit
   .Fields("date_resil") = flag.Fields("date_resil")
   .Fields("run") = flag.Fields("run")
   .Update
   End With
   
sSQL1 = "SELECT run FROM test;"
Set y = db.OpenRecordset(sSQL1)
        If y = 1 Then
sSQL2 = "select run1 from calendrier;"
Set x = db.OpenRecordset(sSQL2)
        If x < flag Then
        .Edit
        .Fields("okko") = ok
        .Update
        ElseIf x > flag Then
        .Edit
        .Fields("okko") = ko
        .Update
End If
End Sub


Edit: Précision du langage dans la coloration syntaxique.

4 réponses

  1. Utilisateur anonyme
     
    Bonjour, VBA c'est pas ma spécialité, mais il me semble que pour ces 2 lignes

    Set y = db.OpenRecordset(sSQL1)
            If y = 1 Then
    


    y est un recordset, donc forcément ça ne se compare pas avec un int.
    Soit tu extrais un champ de ce recordet qui représente un int, soit tu regarde une propriété de ce recordset (le nombre d'enregistrement par exemple).
    0
    1. bithack Messages postés 143 Statut Membre 6
       
      ah oui merci !!!
      merci de ton aide !!!!
      a bientot :)
      0
  2. bithack Messages postés 143 Statut Membre 6
     
    re, mon problème n'est pas résolu :/ jai modfier certaine chose mais rien à faire :/ voici le nouveau code
    Sub sortieRun()
    Dim jour As String
    Dim db As Database
    Dim sSQL0 As String
    Dim sSQL1 As String
    Dim sSQL2 As String
    Dim sSQL3 As String
    Dim flag As DAO.Recordset
    Dim x As DAO.Recordset
    Dim run As DAO.Recordset
    Dim typerun As DAO.Recordset
    Dim rstest As DAO.Recordset
    
    
    
     
    'i = 1
    jour = date
    MsgBox jour ' affiche la date du jour
    
    Set db = CurrentDb
    Set rstest = db.OpenRecordset("test")
    
    sSQL0 = "select date_resil, run FROM Dossier;"
    Set flag = db.OpenRecordset(sSQL0)
        
       With rstest
       .Edit
       .Fields("date_resil") = flag.Fields("date_resil")
       .Fields("run") = flag.Fields("run")
       .Update
       End With
       
    sSQL1 = "SELECT run FROM test;"
    Set run = db.OpenRecordset(sSQL1)
    
    sSQL3 = "SELECT typerun FROM calendrier"
    Set typerun = db.OpenRecordset(sSQL3)
    
            If run = typerun Then
            
    sSQL2 = "select run1 from calendrier;"
    Set x = db.OpenRecordset(sSQL2)
            
            If x < flag Then
            .Edit
            .Fields("okko") = ok
            .Update
            
            ElseIf x > flag Then
            .Edit
            .Fields("okko") = ko
            .Update
            
    End If
    
    
    End Sub
    


    merci par avance
    0
    1. Utilisateur anonyme
       
      J'ai sorti la marque "résolue" de ta question, corrigé (une 2me fois) ta coloration syntaxique et transformé ton commentaire en réponse. Les commentaires servent à faire une aparté, les résponses à poursuivre le fil de la discussion.
      0
  3. Utilisateur anonyme
     
    A quelle ligne ça plante?
    Message d'erreur?
    0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Salut,

    Ma réponse ne t'empêche pas de répondre à Whismeril (salut!) ci-dessus.
    Il te manques un End If dans cette partie :
     If run = typerun Then
            
    sSQL2 = "select run1 from calendrier;"
    Set x = db.OpenRecordset(sSQL2)
            
            If x < flag Then
            .Edit
            .Fields("okko") = ok
            .Update
            
            ElseIf x > flag Then
            .Edit
            .Fields("okko") = ko
            .Update
            'End If 'peut être ICI
    End If

    Je ne l'ajoute pas (voir commentaire) car je ne sais pas ou tu le souhaites...
    Conseil : incrémente correctement ton code.

    🎼 Cordialement,
    Franck 🎶
    0
    1. Utilisateur anonyme
       
      Salut aussi
      0
    2. bithack Messages postés 143 Statut Membre 6
       
      J'ai refais mon code d'un autre façon et ça marche !
      Merci de votre aide !
      a bientot
      0