Au secour eureur 91 VBA Access

elpolo76 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
elpolo76 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
jai unee erreur dans mon code que je n'arrive pas a corrigé pouvez vous m'aidez svp!!!!
Error 91
et je sui po aussi tres sur que ma partie enre les boucle marche!
voici le code

Function bilan_mensuel()


'Declatarion des variables
Dim MyWS As Database, MyDB As Database, MyTd As Recordset, Monform As Form
Dim MyTA As Recordset, re As Recordset, MyQE As Recordset
Dim Bilmens As String
Dim Imput As String, Codss As String, Anosst As String
Dim Qteliv As Integer, Qtepre As Integer, Qtencf As Integer, Qtencfe As Integer
Dim Cnq As Integer
Dim ASQL As String
Dim requete As String
Dim Datdeb As String, Datfin As String




On Error GoTo TRAITER_ERRSY


'Procedure de consolidation Bilan-vibrachoc

Set MyDB = CurrentDb()
Set MyTd = MyDB.OpenRecordset("RNCAVR", dbOpenDynaset)


'Procedure de consolidation

'Creation de la table Bilmens
Set MyTd = MyDB.OpenRecordset("Bilmens")

'Mize a zéro de la table

ASQL = "Delete * From Bilmens;"
'Set MyQE = MyDB.CreateQueryDef("", ASQL)
DoCmd.RunSQL ASQL




Set Monform = Forms![Bilan mensuel]

'Lecture de la table bilmens
requete = "Select * from RNCAVR "
requete = requete & "WHERE (((RNCAVR.Datrap) Between [forms]![Monform]![Datdeb] And [forms]![Monform]![Datfin]) AND ((RNCAVR.Imput)=SSTR));"


'lecture du fichier

MyTA.MoveFirst
Do Until MyTA.EOF

MyTd.AddNew
MyTd![Codss] = MyTA![Codss]
MyTd![Debrn] = MyTA![Debrn]
MyTd![finrn] = MyTA![finrn]
MyTd![Datrap] = MyTA![Datrap]
MyTd![Imput] = MyTA![Imput]
MyTd![Qteliv] = MyTA![Qteliv]
MyTd![Qtencfe] = MyTA![Qtencfe]
MyTd![Cnq] = MyTA![Cnq]
MyTd![Anost] = MyTA![Anost]
MyTd![Crit] = "MyTA![Crit]IIf([Critique]=True,1,0)"
MyTd![QtelivCrit] = "MyTA![QtelivCrit]IIf([Critique]=True,[Qtencfe],0)"
MyTd![QtencfeCrit] = "MyTA![QtencfeCrit]IIf([Critique]=True,1,0)"
MyTd![CnqCrit] = "MyTA![CnqCrit]IIf([Critique]=True,[Cnq],0)"
MyTd![QtelivNCrit] = "MyTA![Imput]IIf([Critique]=True,0,[Qtencfe])"
MyTd![QtencfeNCrit] = "MyTA![Imput]IIf([Critique]=True,0,1)"
MyTd![CnqNCrit] = "MyTA![Imput]IIf([Critique]=True,0,[Cnq])"

MyTd.Update
MyTA.MoveNext
Loop


TRAITER_ERRSY:
MsgBox ("Erreur N° " & Str$(Err) & " " & Error$(Err))


Resume Next


Finsynth:
End Function

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
Suggestion : ajouter "exit function " avant la ligne TRAITER_ERRSY:

Sinon, tu tombe dans la logique de traitement d'erreur à la fin de la fonction, même quand tu n'as pas d'erreur...
0
elpolo76 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci !!j'ai trouvé le probleme !!je navais po Set MyTA sur ma requete!!je l'ai fait et ca marche!!
mon probleme maitenant !!cest otre chos !!les 9 premier ecriture ds la tabeTd marche bien mais au moment ou je commence par mettre les truc de TRue =0,1 ca beugue!!
Amon avis jai po ecris le bon code !!jai juste pris le code SQl intact !!!!Raidezmoi
Pr plus d'explication
o fet !!ma kestion est comment ecrir en VBA!!une rekete SQL ki fait: IIf([Critique]=True,1,0) AS Crit
MErci
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
requete = "Select *, IIf([Critique]=True,1,0) AS Crit from RNCAVR " , etc...
et puis tu le recupere avec
Set MyTa = MyDB.OpenRecordset(requete)
et
myta!crit
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
tu peux aussi écrite, au lieu de MyTd![Crit] = "MyTA![Crit]IIf([Critique]=True,1,0)"
if ta!crit then
td!crit=1
else
td!crit=0
end if
0
elpolo76 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   2 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
merci YGA_BE!!tes un genie !!
ca a marché !!!le deuxiemme
jai fait like that:
'boucle Crit

If MyTA![Critique] = True Then
MyTd![Crit] = 1
Else
MyTd![Crit] = 0
End If

thanks man!!!
0