Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

géré un formulaire vide

3 réponses
Avatar
Guy du Lac
Bonjour à tous,

j'ai un bouton me permettant de lancer plusieurs requetes différentes pour
le même formulaire. Je voudrais pouvoir exécuter du code si mon recordsource
est vide. Mais je vois pas comment je pourrais écrire cette condition, Voici
le code de ma procédure

Dim req1, req2, req3, req4, req5, req6
req1 = "SELECT [charte de compte].* FROM [charte de compte]"

Select Case lechoix
Case 0 ' recherche tous
req2 = " "
req3 = ""
req4 = "ORDER BY [charte de compte].gl_code;"

Case 1 ' recherche par type de compte ex: revenu
If [Forms]![fiche]![Combo31] = "F" Then
req2 = "WHERE ((([charte de compte].[TYPE DE COMPTE]) =
[Forms]![charte de compte]![Combo40]))"
Else
req2 = "WHERE ((([charte de compte].[TYPE DE COMPTE]) =
[Forms]![charte de compte]![Combo60]))"
End If
req3 = " "
req4 = "ORDER BY [charte de compte].gl_code;"


Case 2 ' recherche par titre de compte

req2 = "WHERE ((([charte de compte].TITRE) Like '*" &
[Forms]![charte de compte]![Text57] & "*'))"
req3 = " "
req4 = "ORDER BY [charte de compte].titre;"

Case 3 ' recherche par GL
req2 = "WHERE ((([charte de compte].gl_code) = [Forms]![charte de
compte]![Text50])) Or "
req3 = "((([charte de compte].gl_code) > [Forms]![charte de
compte]![Text58])) "
req4 = "ORDER BY [charte de compte].gl_code;"

Case 4 ' inventaire

req2 = "WHERE ((([charte de compte].liste_inventaire) = 'O')) "
req3 = " "
req4 = "ORDER BY [charte de compte].TITRE;"

End Select

req5 = req1 + req2 + req3 + req4
Me.RecordSource = req5
Me.RecordSource

--
Merci à l'avance,
Guy du Lac

3 réponses

Avatar
Thierry (ze Titi)
Hello Guy !

C'est quoi ce Me.RecordSource vide à la fin du code ?

Pour ce qui concerne ton problème, si j'ai bien compris, tu veux tester
si le résultat renvoyé par ton recordsource est vide, c'est bien ça ?
Dans ce cas,

If Me.RecordsetClone.RecordCount=0 Then
'Code à exécuter
End If

En ce jour mémorable du vendredi 07/09/2007, tu as émis l'idée
suivante:
Bonjour à tous,

j'ai un bouton me permettant de lancer plusieurs requetes différentes pour
le même formulaire. Je voudrais pouvoir exécuter du code si mon recordsource
est vide. Mais je vois pas comment je pourrais écrire cette condition, Voici
le code de ma procédure

Dim req1, req2, req3, req4, req5, req6
req1 = "SELECT [charte de compte].* FROM [charte de compte]"

Select Case lechoix
Case 0 ' recherche tous
req2 = " "
req3 = ""
req4 = "ORDER BY [charte de compte].gl_code;"

Case 1 ' recherche par type de compte ex: revenu
If [Forms]![fiche]![Combo31] = "F" Then
req2 = "WHERE ((([charte de compte].[TYPE DE COMPTE]) =
[Forms]![charte de compte]![Combo40]))"
Else
req2 = "WHERE ((([charte de compte].[TYPE DE COMPTE]) =
[Forms]![charte de compte]![Combo60]))"
End If
req3 = " "
req4 = "ORDER BY [charte de compte].gl_code;"


Case 2 ' recherche par titre de compte

req2 = "WHERE ((([charte de compte].TITRE) Like '*" &
[Forms]![charte de compte]![Text57] & "*'))"
req3 = " "
req4 = "ORDER BY [charte de compte].titre;"

Case 3 ' recherche par GL
req2 = "WHERE ((([charte de compte].gl_code) = [Forms]![charte de
compte]![Text50])) Or "
req3 = "((([charte de compte].gl_code) > [Forms]![charte de
compte]![Text58])) "
req4 = "ORDER BY [charte de compte].gl_code;"

Case 4 ' inventaire

req2 = "WHERE ((([charte de compte].liste_inventaire) = 'O')) "
req3 = " "
req4 = "ORDER BY [charte de compte].TITRE;"

End Select

req5 = req1 + req2 + req3 + req4
Me.RecordSource = req5
Me.RecordSource


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Guy du Lac
Merci Thierry,

Cela fonctionne à merveille. Le me.recordsource était une erreur de
transcription
--
Merci,
Guy du Lac



Hello Guy !

C'est quoi ce Me.RecordSource vide à la fin du code ?

Pour ce qui concerne ton problème, si j'ai bien compris, tu veux tester
si le résultat renvoyé par ton recordsource est vide, c'est bien ça ?
Dans ce cas,

If Me.RecordsetClone.RecordCount=0 Then
'Code à exécuter
End If

En ce jour mémorable du vendredi 07/09/2007, tu as émis l'idée
suivante:
Bonjour à tous,

j'ai un bouton me permettant de lancer plusieurs requetes différentes pour
le même formulaire. Je voudrais pouvoir exécuter du code si mon recordsource
est vide. Mais je vois pas comment je pourrais écrire cette condition, Voici
le code de ma procédure

Dim req1, req2, req3, req4, req5, req6
req1 = "SELECT [charte de compte].* FROM [charte de compte]"

Select Case lechoix
Case 0 ' recherche tous
req2 = " "
req3 = ""
req4 = "ORDER BY [charte de compte].gl_code;"

Case 1 ' recherche par type de compte ex: revenu
If [Forms]![fiche]![Combo31] = "F" Then
req2 = "WHERE ((([charte de compte].[TYPE DE COMPTE]) =
[Forms]![charte de compte]![Combo40]))"
Else
req2 = "WHERE ((([charte de compte].[TYPE DE COMPTE]) =
[Forms]![charte de compte]![Combo60]))"
End If
req3 = " "
req4 = "ORDER BY [charte de compte].gl_code;"


Case 2 ' recherche par titre de compte

req2 = "WHERE ((([charte de compte].TITRE) Like '*" &
[Forms]![charte de compte]![Text57] & "*'))"
req3 = " "
req4 = "ORDER BY [charte de compte].titre;"

Case 3 ' recherche par GL
req2 = "WHERE ((([charte de compte].gl_code) = [Forms]![charte de
compte]![Text50])) Or "
req3 = "((([charte de compte].gl_code) > [Forms]![charte de
compte]![Text58])) "
req4 = "ORDER BY [charte de compte].gl_code;"

Case 4 ' inventaire

req2 = "WHERE ((([charte de compte].liste_inventaire) = 'O')) "
req3 = " "
req4 = "ORDER BY [charte de compte].TITRE;"

End Select

req5 = req1 + req2 + req3 + req4
Me.RecordSource = req5
Me.RecordSource


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






Avatar
Thierry (ze Titi)
Cela fonctionne à merveille.
Merci pour le retour ! Bonne continuation !


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info