Incompabilité de type vba
Résolu
bithack
Messages postés
143
Statut
Membre
-
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
Edit: Précision du langage dans la coloration syntaxique.
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
-
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).
-
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 -
-
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 🎶