Incompabilité de type vba

Résolu/Fermé
bithack Messages postés 129 Date d'inscription mercredi 29 octobre 2014 Statut Membre Dernière intervention 16 mars 2016 - Modifié par Whismeril le 30/04/2015 à 09:40
bithack Messages postés 129 Date d'inscription mercredi 29 octobre 2014 Statut Membre Dernière intervention 16 mars 2016 - 4 mai 2015 à 08:36
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

Utilisateur anonyme
30 avril 2015 à 09:45
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
bithack Messages postés 129 Date d'inscription mercredi 29 octobre 2014 Statut Membre Dernière intervention 16 mars 2016 6
30 avril 2015 à 09:55
ah oui merci !!!
merci de ton aide !!!!
a bientot :)
0
bithack Messages postés 129 Date d'inscription mercredi 29 octobre 2014 Statut Membre Dernière intervention 16 mars 2016 6
Modifié par Whismeril le 30/04/2015 à 13:28
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
Utilisateur anonyme
30 avril 2015 à 13:30
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
Utilisateur anonyme
30 avril 2015 à 13:31
A quelle ligne ça plante?
Message d'erreur?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
Modifié par pijaku le 30/04/2015 à 14:20
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
Utilisateur anonyme
30 avril 2015 à 15:45
Salut aussi
0
bithack Messages postés 129 Date d'inscription mercredi 29 octobre 2014 Statut Membre Dernière intervention 16 mars 2016 6
4 mai 2015 à 08:36
J'ai refais mon code d'un autre façon et ça marche !
Merci de votre aide !
a bientot
0