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

IHM Discussion :

formulaire basé sur requête + case à cocher [AC-2002]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut formulaire basé sur requête + case à cocher
    Bonjour à tous,

    J'ai un petit soucis sur un formulaire qui me permet d'afficher les enregistrements correspondant à une requête. J'ai rajouté une case à cocher en fin de ligne de chaque enregistrement dans l'idée d'opérer une sélection aux fins de publipostage (je sais que l'assistant gère cela mais je voudrais zaper cette étape pour la gérer dans mon appli...).

    Bref, le fait est que quand on cliche sur la case la coche ne s'affiche pas : premier pb;
    de plus deux boutons permettant de "tout sélectionner ou déselectionner" sur click conduisent à un message d'erreur:

    Erreur d'éxecution: '-214... (80...9)'
    Impossible mettre à jour Recordset

    voici le code concerné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Option Compare Database
     
    Private Sub Commande18_Click()
    Me.select = 1
    End Sub
     
    Private Sub Commande19_Click()
    Me.select = 0
    End Sub
     
    Private Sub Form_Current()
    Me.select.Requery
    End Sub
     
    Private Sub select_AfterUpdate()
    Me.Requery
    End Sub
    Je suis preneur de vos corrections ou suggestions ...
    En vous remerciant par avance.

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    La case à cocher doit être associée à un booléen de la table pour pouvoir être mise à jour ligne à ligne.
    Ensuite tout (dé)cocher peut se faire par exemple avec un update sur la table puis requery
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Bonjour Nico,

    Merci pour cette réponse, je teste et te dis si c'est OK ... héhé c'eut été trop simple

    Bon j'ai défini le champ de la table en Oui/Non -case à cocher, du coup dans le form sur click d'une case sur un enregistrment la coche n'apparait pas alors que l'objet semble bel et bien activé ( petits pointilés à l'intérieur de la case)...

    Sur click de mon bouton "Tout déselectionner" , erreur code en jaune sur Me.select=0 et si je remplace 0 par False , idem.....

    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Salut Nico,

    Si tu es dans les parages, je ne vois pas très bien la méthode update+requery... tu pourrais développer ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Bonjour à tous,

    Après avoir lu plusieurs fois:

    http://starec.developpez.com/tuto/groupeoptions/

    http://www.developpez.net/forums/d97...r-base-access/

    Je crois avoir compris que:
    valeur de chkbox = numérique (0,1 ou 2 si null)
    statut de chkbox = boléen ( vrai/faux)

    donc dans le champ d'une table lié à la chkbox, c'est la valeur qui est stochée d'où pb éventuel si le champ est un boléen ( oui/non)

    Si ma compréhension des choses est erronée, merci de votre aide car j'ai du mal à y voir clair...

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bjr,

    avec un champ oui/non nommé ChampOuiNon dans la table NomDeLaTable

    ajouter une petite fonction dans le code du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub CocheDecocheTout(pCoche As Boolean)
    DoCmd.SetWarnings False
    DoCmd.RunSQL "update NomDeLaTable set ChampOuiNon = " & CLng(pCoche)
    DoCmd.SetWarnings True
    Me.Refresh
    End Sub
    et appeler cette fonction au chargement pour tout décocher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Form_Load()
    CocheDecocheTout False
    End Sub
    et sur click sur les boutons pout tout cocher ou décocher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub btnCocheTout_Click()
    CocheDecocheTout True
    End Sub
     
    Private Sub btnDecocheTout_Click()
    CocheDecocheTout False
    End Sub

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Bonjour Arkham46,

    Suivant tes conseils, je viens de mettre le code suivant (voir infra) dans le form concerné. Constat:
    - à l'ouverture du form: case décochée
    - sur clic sur case: pas de coche affichée mais case activée ( petits pointillés à l'intérieur)
    - sur clic sur bouton tout décocher: case désativée ( pointilés disparaissent)
    - sur clic sur bouton tout cocher: pas de changement.

    Sinon est-ce que ma compréhension du fonctionnment de la case à coher telle que décrite précedemment est juste ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Option Compare Database
    Private Sub CocheDecocheTout(pCoche As Boolean)
    DoCmd.SetWarnings False
    DoCmd.RunSQL "update Table_recrutement set Selection = " & CLng(pCoche)
    DoCmd.SetWarnings True
    Me.Refresh
    End Sub
     
    Private Sub Commande18_Click()
    CocheDecocheTout True
    End Sub
     
    Private Sub Commande19_Click()
    CocheDecocheTout False
    End Sub
     
    Private Sub Form_Current()
    CocheDecocheTout False
     End Sub

  8. #8
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    c'est pas form_current, c'est form_load

    form_current s'exécute à chaque changement d'enregistrement, d'où le problème

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Merci, je viens de changer le code de form current à form load mais pas d'amélioration lors de l'execution...

    La propriété "verrouillé" oui/non a-t-elle une incidence sur ce problème ?

    La propriété verrouillé de la chkbox est sur non... dois-je la changer ?

    Une valeur par défaut de la case à cocher est-elle nécessaire ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Je remonte le fil de la discu, et m'en excuse par avance... mais je reste bloqué sur ce problème de case à cocher
    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Option Compare Database
    Private Sub CocheDecocheTout(pCoche As Boolean)
    DoCmd.SetWarnings False
    DoCmd.RunSQL "update Table_recrutement set Selection = " & CLng(pCoche)
    DoCmd.SetWarnings True
    Me.Refresh
    End Sub
     
    Private Sub Form_Load()
    CocheDecocheTout False
    End Sub
     
    Private Sub tout_cocher_Click()
    CocheDecocheTout True
    End Sub
     
    Private Sub tout_decocher_Click()
    CocheDecocheTout False
    End Sub
    Sur formulaire ouvert, si je clique sur une chkbox, la coche ne s'affiche pas mais des pointillés apparaissent le long des bordures de la case, et quand je clique sur un des deux boutons : dé-sélection... ( tout cocher se comporte comme tout décocher)

    rappel de la situation: champ oui/non dans table , repris dans une requête qui alimente un formulaire avec chkbox afin de pouvoir sélectionner certains enregistrements , tous ou aucun ( dans le but d'un publipostage ultérieur).

    En vous remerciant par avance pour votre aide.

  11. #11
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    bonsoir,

    Je ne connais pas clng mais essaie plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "update Table_recrutement set Selection = " & iif(pCoche,"-1","0")
    (chez access true vaut -1 )

    Par ailleurs j'aurais écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call CocheDecocheTout(False)
    mais c'est peut-être pareil
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Bonjour Nico,

    Merci pour ces propositions, voici le code modifié que je viens de tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Option Compare Database
    Private Sub CocheDecocheTout(pCoche As Boolean)
    DoCmd.SetWarnings False
    DoCmd.RunSQL "update Table_recrutement set Selection = " & IIf(pCoche, "-1", "0")
    DoCmd.SetWarnings True
    Me.Refresh
    End Sub
     
    Private Sub Form_Load()
    Call CocheDecocheTout(False)
    End Sub
     
     
    Private Sub tout_cocher_Click()
    Call CocheDecocheTout(True)
    End Sub
     
    Private Sub tout_decocher_Click()
    Call CocheDecocheTout(False)
    End Sub
    Malheureusement même constat que précédemment....

  13. #13
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Coche / décoche devraient marcher sans problème
    Déjà avec une meilleure gestion d'erreur tu saurais si ton update est OK :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CocheDecocheTout(pCoche As Boolean)
    on error goto err:
    CurrentDb.Execute "update Table_recrutement set Selection = " & IIf(pCoche, "-1;", "0;"), dbFailOnError
    Me.Requery
    exit sub
    err:
    msgbox "Erreur " & err.Number & " dans CocheDecocheTout : " & err.DESCRIPTION
    End Sub
    Ensuite pour la coche ligne à ligne il faut vérifier les paramètres du champ de la fenêtre...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Bonjour Nico,

    Je viens de tester ton code et... , les deux boutons tout cocher / décocher fonctionnent très bien.

    Reste la sélection ligne à ligne qui ne marche pas ...

    Qu'entends-tu par "les paramètres du champ de la fenêtre... " ?

  15. #15
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    C'est déjà ça

    Citation Envoyé par wushu29 Voir le message
    Reste la sélection ligne à ligne qui ne marche pas ...

    Qu'entends-tu par "les paramètres du champ du formulaire... " ?
    Si tout_cocher fonctionne c'est que la coche de la ligne du formulaire est bien lié au champ de la table. Il est bien actif et modifiable ? La source du formulaire est bien une table ou une requete elle-même modifiable ? Si c'est une requete ouvre la directement pour le vérifier.
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    La case à cocher est liée à une requête qui reprend le champ d'une table ( champ "Selection" oui/non).
    Les propriétés de la case sont: nom "seclect"; activé "oui"; source controle "Selection".
    J'ai ouvert la requête qui alimente les contrôles de mon formulaire contenant la case à cocher, après clic sur tout cocher ( la case du form est cochée) , la case à cocher de la requête est cochée également.

  17. #17
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    C'est un formulaire de type "liste" et c'est la même table ou requete source pour tous les champs de la liste ???
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    C'est un form de type continu qui "liste" les enregistrements remontés par la requête source des contrôles qu'il contient.

  19. #19
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Citation Envoyé par wushu29 Voir le message
    C'est un form de type continu qui "liste" les enregistrements remontés par la requête source des contrôles qu'il contient.
    quelle est la requete source et tous ses champs sont-ils modifiables ?
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Voici la requête source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT Table_recrutement.id_recrutement, Table_personnels.nom_personnel, Table_personnels.prenom_personnel, Table_type_contrat.type_contrat, Table_recrutement.date_debut_contrat, Table_recrutement.date_fin_contrat, Table_recrutement.temps_travail, Table_quotite.quotite_travail, Table_annee_scolaire.annee_scolaire, (([date_fin_contrat]-[date_debut_contrat])*[quotite_travail]/365) AS ETP, Table_plafond_emploi.quantite, Table_recrutement.Selection, Table_recrutement.Date_impr
    FROM Table_annee_scolaire, Table_quotite INNER JOIN ((Table_categorie_contrat INNER JOIN Table_plafond_emploi ON Table_categorie_contrat.id_categorie_contrat = Table_plafond_emploi.id_categorie_contrat) INNER JOIN (Table_personnels INNER JOIN (Table_type_contrat INNER JOIN Table_recrutement ON Table_type_contrat.id_type_contrat = Table_recrutement.id_type_contrat) ON Table_personnels.id_personnel = Table_recrutement.id_personnel) ON Table_categorie_contrat.id_categorie_contrat = Table_type_contrat.id_categorie_contrat) ON Table_quotite.id_quotite = Table_recrutement.id_quotite
    WHERE (((Table_type_contrat.type_contrat)="ASEN") AND ((Table_recrutement.date_debut_contrat)>=[Table_annee_scolaire].[date_debut]) AND ((Table_recrutement.date_fin_contrat)<=[Table_annee_scolaire].[date_fin]) AND ((Table_annee_scolaire.date_debut)<=Now()) AND ((Table_annee_scolaire.date_fin)>=Now()));
    Les champs de la requête son modifiables via les tables dans lesquelles elle vient prendre les données ( ces données sont rentrées dans les tables via des formulaires spécifiques).

    Concernant la Table recrutement, elle contient un champ "Selection" (oui/non) qui alimente le champ "Selection" de la requête puis sert de source à la chkbox du formulaire.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. MAJ Formulaire basé sur requête paramétré
    Par RIMA2015 dans le forum IHM
    Réponses: 3
    Dernier message: 14/03/2015, 20h26
  2. Réponses: 2
    Dernier message: 28/01/2008, 13h54
  3. Dupliquer enregistrement formulaire basé sur une requête
    Par fredpeca dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/02/2007, 12h40
  4. Sous-Formulaire basé sur une requête nécessitant des paramètes
    Par nicou50 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 02/09/2006, 22h18
  5. Ouvrture Formulaire basé sur une requête paramétrée
    Par teffal dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/07/2006, 16h04

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