IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Gérer une requête paramétrée dans un formulaire quand celle-ci ne retourne aucun enregistrement [AC-2019]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club Avatar de Maglau
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Gérer une requête paramétrée dans un formulaire quand celle-ci ne retourne aucun enregistrement
    Bonjour à tous

    Je me tourne vers vous, car mes recherches sur Internet n’ont pas été fructueuses. La solution est peut-être évidente, mais je n’ai pas réussi à mettre le doigt dessus… Donc un grand merci à ceux qui partageront leurs solutions.

    J’ai donc, dans un formulaire de consultation Clients, une requête paramétrée intégrée filtrée. Dans une zone de texte, j’ai organisé une recherche simultanée sur le CodeClient et le NomClient. Il y a aussi 3 filtres (1 par un groupe d’options, et 2 en dur). J’ai aussi 2 boutons (suivant et précédent) pour la navigation et un compteur d’enregistrement (du type 1/12 … c’est un exemple). Le tout avec un peu de VBA pour rafraichir les données.

    Tout fonctionne très bien au niveau de la navigation, du filtrage et de la recherche. Mais si, dans ma zone de recherche, je mets un texte qui ne peut-être trouvé par la requête (donc avec zéro enregistrement retourné), tout ce qui se trouve dans la zone détail disparait (étiquettes, zones de texte, rectangles, sous-formulaire, …). Il ne reste visible que les éléments de l’en-tête et du pied du formulaire. Je suppose que c’est parce que la propriété du formulaire "Type Recordset" est en "Feuille de réponse dynamique" ????

    Ma question est donc : Si la requête ne retourne aucun enregistrement, existe-t-il une méthode pour conserver visible les contrôles (vides de toute information bien sûr) dans la partie détail du formulaire, et si la requête retourne plusieurs enregistrements de pouvoir toujours naviguer dans les enregistrements sélectionnés ?

    Je vous mets pour information ma requête de base, qui fonctionne dans mon formulaire ... sauf quand aucun enregistrement n'est retourné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT T_Clients.CodeClient, T_Clients.NomClient, T_Clients.Encours, T_Clients.CoordValide, T_Clients.ClientActif
    FROM T_Clients 
    WHERE (((T_Clients.CodeClient) Like "*" & [Formulaires]![F_Coordonées_Clients]![RechercheClient] & "*") AND ((T_Clients.Encours)>0) AND ((T_Clients.CoordValide)>=[Formulaires]![F_Coordonées_Clients]![Gp_CoordValid]) AND ((T_Clients.ClientActif)=Yes)) 
    OR (((T_Clients.NomClient) Like "*" & [Formulaires]![F_Coordonées_Clients]![RechercheClient] & "*") AND ((T_Clients.Encours)>0) AND ((T_Clients.CoordValide)>=[Formulaires]![F_Coordonées_Clients]![Gp_CoordValid]) AND ((T_Clients.ClientActif)=Yes));
    Encore merci d’avance.

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 335
    Points : 229
    Points
    229
    Par défaut
    Bonjour,

    Comme ça, sans avoir beaucoup réfléchi, je me dis que c'est plutôt au niveau de ton formulaire/sous-formulaire/contrôles que tu devrais faire des modifs... Voir s'il n'y a pas un paramètre qui peut laisser apparent ce qui disparait...

    Belle journée en tout cas! :-)

  3. #3
    Futur Membre du Club Avatar de Maglau
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Dermochelys Voir le message
    Bonjour,

    Comme ça, sans avoir beaucoup réfléchi, je me dis que c'est plutôt au niveau de ton formulaire/sous-formulaire/contrôles que tu devrais faire des modifs... Voir s'il n'y a pas un paramètre qui peut laisser apparent ce qui disparait...

    Belle journée en tout cas! :-)
    Bonjour Dermochelys

    Merci pour ta piste.

    Perso, je pense que cela doit se jouer au niveau du formulaire.
    J'ai mis dans la partie Détail des rectangles pour faire des fonds colorés sous les zones de texte ... Eux aussi disparaissent... et ils n'ont aucune liaison avec les données... Donc pour moi, le fait de n'avoir aucun enregistrement en retour nettoie complètement la partie "Détail".

    Dans la feuille de propriété du formulaire, dans l'onglet "Données", j'ai testé les différents "Type Recordset" sans succès

    J'ai remis "Oui" dans "Ajout autorisé", et là tout est présent, rien ne disparait et les zones de texte sont vierges d'information... mais je veux que ce formulaire soit uniquement pour de la consultation, et je ne veux pas créer de nouvel enregistrement... Je pourrais bidouiller du VBA pour verrouiller les Zones de textes (Si Compte("*")=0), mais je préfèrerai faire autrement.

    Auriez-vous une autre piste ?
    Encore merci.

  4. #4
    Futur Membre du Club Avatar de Maglau
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Bonsoir à tous

    Finalement, après avoir autorisé les ajouts, j'ai couper-coller ma requête interne au formulaire dans une requête externe pour pouvoir utiliser Dcount, et j'ai affecté ce code à ma zone RechercheClient.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub RechercheClient_AfterUpdate()
        DoCmd.ShowAllRecords
        If DCount("*", "R_Coordonnees_Clients") = 0 Then
            MsgBox "''" & Me.RechercheClient.Value & "'' n'a pas été trouvé. Il est soit" & vbCrLf & vbCrLf & _
            "- Inexistant" & vbCrLf & _
            "- L'encours est <= 0" & vbCrLf & _
            "- Le client n'est plus Actif", vbOKOnly + vbExclamation, "Erreur recheche client"
            Me.RechercheClient.Value = ""
            DoCmd.ShowAllRecords
        End If
        Me.NumEnreg = 1
    End Sub
    Ergonomiquement ce n'est pas ce qu'il y a de mieux, mais esthétiquement c'est acceptable.
    Je clôture donc le sujet en remerciant ceux qui se sont penchés dessus.

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 335
    Points : 229
    Points
    229
    Par défaut
    Bonjour Maglau,

    Je trouve ta solution tout à fait acceptable :-) Content que tu aies trouvé une solution.

    Belle journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/03/2018, 12h28
  2. [OpenOffice][Base de données] Afficher des paramètres d'une requête paramétrée dans un formulaire
    Par ggnore dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 02/09/2009, 12h37
  3. Appeler une requête paramétrée dans un sub
    Par Celephais dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/11/2007, 12h49
  4. Réponses: 3
    Dernier message: 16/12/2006, 13h59
  5. résultat d'une requête Somme dans un formulaire
    Par chrislauxerrois dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/08/2006, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo