moudz84
Messages postés64Date d'inscriptionmardi 5 septembre 2006StatutMembreDernière intervention27 septembre 2007
-
6 août 2007 à 11:51
cs_etniqs
Messages postés201Date d'inscriptionmardi 7 octobre 2003StatutMembreDernière intervention10 mai 2016
-
6 août 2007 à 16:07
salut, j'aun probleme dans ma fonction recursive que j'ai ecrit en vba, j'ai trouver le probleme mais je ne sais pas le reparer:
if recursive(XXX1 ,XXX2 )=true then
return true
end if
je ne veut pas ecrire qlqchose comme return recursive(XXX1,XXX2) car je voudrai pas renvoyer la valeur faux
le probleme c'est que recursive(XXX1 ,XXX2 ) renvoi false (je l'est verifier avec un affichage) mais elle entre quand meme dans le test if (et donc a la fin je renvoi true)
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 6 août 2007 à 12:02
Salut,
(j'espere ne pas dire de bêtise)
Return True en vba n'est pas la syntaxe pour renvoyer une valeur pour une focntion (ca l'est en .NET, mais pas en VBA)
essaie plutot
'jsai pas si c'est clair
If recursive(XXX1, XXX2) = True Then
recursive(XX1, XX2) = True 'XX1 etant les valeur avant d'appeler la second recursive
End If , ----
[code.aspx?ID=41455 By Renfield]
moudz84
Messages postés64Date d'inscriptionmardi 5 septembre 2006StatutMembreDernière intervention27 septembre 2007 6 août 2007 à 13:22
elle est grosse et compliqué ..... j'ai mis en rouge la valeur de retour et le test:
Function infoNonUtilise(base, NomTable, Id)
Dim resultatFinal As Boolean
Dim maxRelation As Integer
Dim RecordsetMaxRelation As DAO.Recordset
Dim RecordsetClePrimaire As DAO.Recordset
Dim RecordsetTemp As DAO.Recordset
Set RecordsetMaxRelation = CurrentDb.OpenRecordset ("SELECT * FROM relationTableCEP where TableClasse2='" & NomTable & "'", dbOpenDynaset)
If RecordsetMaxRelation.EOF = False Then
RecordsetMaxRelation.MoveFirst
Do While RecordsetMaxRelation.EOF = False
Set RecordsetTemp CurrentDb.OpenRecordset("SELECT " & RecordsetMaxRelation("TableClas<wbr>se1") & ".dtmaj as dateMAJ FROM " & RecordsetMaxRelation("TableClas<wbr>se1") & "," & RecordsetMaxRelation("TableClas<wbr>se2") & " where " & RecordsetMaxRelation("TableClas<wbr>se1") & "." & RecordsetMaxRelation("FK") & " " & RecordsetMaxRelation("TableClas<wbr>se2") & "." & RecordsetMaxRelation("PK"), dbOpenDynaset)
If RecordsetTemp.EOF = False Then
MsgBox (RecordsetMaxRelation("TableCla<wbr>sse1") & "-->" & RecordsetMaxRelation("TableClas
<wbr>se2"))
RecordsetTemp.MoveFirst
If Format(RecordsetTemp("dateMAJ"<wbr>), "yyyy") > Trim(Format(Date, "yyyy") - 3) Then
Set RecordsetClePrimaire = CurrentDb.OpenRecordset("SELECT * FROM niveauTableCEP where nomTable='" & RecordsetMaxRelation("TableClas<wbr>se1") & "'", dbOpenDynaset)
RecordsetClePrimaire.MoveFirst</wbr>
If infoNonUtilise(base, RecordsetMaxRelation("TableClas<wbr>se1"), RecordsetClePrimaire("cle")) = false Then
infoNonUtilise = False
End If</wbr>
End If
End If
RecordsetMaxRelation.MoveNext
Loop
Else