Differentes erreurs sur vba access

Résolu/Fermé
bithack Messages postés 129 Date d'inscription mercredi 29 octobre 2014 Statut Membre Dernière intervention 16 mars 2016 - 23 avril 2015 à 08:47
bithack Messages postés 129 Date d'inscription mercredi 29 octobre 2014 Statut Membre Dernière intervention 16 mars 2016 - 23 avril 2015 à 09:59
Bonjour,
Voici, je pose de nouveau une question suite à des erreurs que je constate dans mon code. Après recherche je m'en remet une fois de plus à vous.

j'ai trois erreurs constatées :

1ere erreur : sur mon
Rsdateres.MoveFirst
l'erreur indiqué est opération non valide.

2éme erreur : sur mon premier IF
If rsdateres!date_resil < Jour And rsdateres!date_resil < rsrun1!Run1 Then
rsrun1.Fields("run") = Run1
l'erreur indiqué est "variable objet ou varriable de bloc with non définie"

3éme et dernière erreur : sur mes 3 requêtes SQl2,3,4
sSQL2 = "select Run1 FROM calendrier"
Set rsrun1 = db.OpenRecordset(sSQL2, bOpenForwardOnly, dbReadOnly)


sSQL3 = "select Run2 FROM calendrier"
Set rsrun2 = db.OpenRecordset(sSQL3, bOpenForwardOnly, dbReadOnly)


SSQL4 = "select Run3 FROM calendrier"
Set rsrun3 = db.OpenRecordset(SSQL4, bOpenForwardOnly, dbReadOnly)

l'erreur indiqué est "argument non valide"

Voici mon code :

Sub runtype()
Dim Jour As String
Dim db As Database
Dim rsdateres As DAO.Recordset
Dim rsrun1 As DAO.Recordset
Dim rsrun2 As DAO.Recordset
Dim rsrun3 As DAO.Recordset
Dim fld As DAO.Field
Dim sSQL1 As String
Dim sSQL2 As String
Dim sSQL3 As String
'Dim i As Long
'rsdateres.MoveFirst


'i = 1
Jour = date
MsgBox Jour

Set db = CurrentDb

sSQL1 = "SELECT date_resil FROM Dossier"
Set rsdateres = db.OpenRecordset(sSQL1, dbOpenForwardOnly, dbReadOnly) ' Ouverture du Recordset
' MsgBox rsdateres

sSQL2 = "select Run1 FROM calendrier"
Set rsrun1 = db.OpenRecordset(sSQL2, bOpenForwardOnly, dbReadOnly)
' MsgBox rsrun1

sSQL3 = "select Run2 FROM calendrier"
Set rsrun2 = db.OpenRecordset(sSQL3, bOpenForwardOnly, dbReadOnly)
' MsgBox rsrun2

SSQL4 = "select Run3 FROM calendrier"
Set rsrun3 = db.OpenRecordset(SSQL4, bOpenForwardOnly, dbReadOnly)
'MsgBox rsrun3
'1
rsdateres.MoveFirst
Do Until rsdateres.EOF

If rsdateres!date_resil < Jour And rsdateres!date_resil < rsrun1!Run1 Then
rsrun1.Fields("run") = Run1


If rsdateres!date_resil < Jour And rsdateres!date_resil < rsrun2!run2 And rsdateres!date_resil > rsrun1!Run1 Then
'If rsdateres < Jour And rsdateres < rsrun2 And rsdateres > rsrun1 Then
rsrun2.Fields("run") = run2
End If

If rsdateres!date_resil < Jour And rsdateres!date_resil < rsrun3!run3 And rsdateres!date_resil > rsrun2!run2 Then
'If rsdateres < Jour And rsdateres < rsrun3 And rsdateres > rsrun2 Then
rsrun3.Fields("run") = run3

End If

If rsdateres!date_resil < Jour And rsdateres!date_resil > rsrun3!run3 Then
'If rsdateres < Jour And rsdateres > rsrun3 Then
rsdateres.Fields("run") = pas - résilier
End If

End If
rs.MoveNext
Loop




'rst.Close ' Fermeture du Recordset
'l = rst.RecordCount
End Sub


Merci par avance !!!

1 réponse

Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
23 avril 2015 à 09:23
Bonjour,
Concernant le Movefirt, je pense que le problème vient du fait que vous ouvre le recordset en dbOpenForwardOnly (vers l'avant seulement) donc pas possible de revenir sur le premier.
Set rsdateres = db.OpenRecordset(sSQL1, dbOpenForwardOnly, dbReadOnly)

plutôt
Set rsdateres = db.OpenRecordset(sSQL1, dbOpenDynaset, dbSeeChanges, dbPessimistic)


pour le reste je vois

Cordialement
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
23 avril 2015 à 09:26
concernant les
Set rsrun1 = db.OpenRecordset(sSQL2, bOpenForwardOnly, dbReadOnly)
plutot
Set rsrun1 = db.OpenRecordset(sSQL2, dbOpenForwardOnly, dbReadOnly)
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
23 avril 2015 à 09:26
il manque un
Dim sSQL4 As String
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 23/04/2015 à 09:27
la variable Run1 n'est pas défini dans rsrun1.Fields("run") = Run1 ainsi qur Run2 et Run3
0
bithack Messages postés 129 Date d'inscription mercredi 29 octobre 2014 Statut Membre Dernière intervention 16 mars 2016 6
23 avril 2015 à 09:41
Run1 est un champs dans ma table dossier qui correspond a une date. comment la definir ? merci

Merci je n'ai plus d'erreur jusque dans l'entré du IF.
Un grand merci de m'avoir accordé de votre temps.
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
23 avril 2015 à 09:57
mettre en résolu si tout est ok
0