Forum - Questions générale - Sujet n°440

[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Questions générale - Questions générale


clos par 3Stone le 26/12/2010 : 13:44  Sujet n° 440  Afficher formulaire caché

le 16/12/2010 : 17:54
par dumas_blr

Anonyme



Bonjour,

Je vous contacte suite à de nombreuses recherches infructueuses.
Je n'arrive pas à réafficher un formulaire que j'ai caché auparavant
Le principe est d'afficher un aperçu avant impression d'un état lorsque des fenêtres modales ont été ouvertes.

voici le principe de l'algorithme

Ouverture du formulaire principal (mode ACmodal)
... sur bouton_imprimer_etat_clic
Ouverture du formulaire d'impression des état(mode ACmodal)
... sur bouton_afficher_apercu_clic OpenReport(nom_de_l_etat)

 
Code :
Public Sub OpenReport(ReportName As String, _
Optional View As Integer, _
Optional FilterName As String, _
Optional WhereCondition As String, _
Optional Callform As Form, _
Optional OpenArgs As String)
On Error Resume Next
'For No data Dim loFormArray() As String
Dim loform As Form
Dim intCount As Integer
Dim intX As Integer
Application.CommandBars("Menu").Visible = False
For Each loform In Forms
If loform.Visible Then
ReDim Preserve loFormArray(intCount)
loFormArray(intCount) = loform.Name
loform.Visible = False
intCount = intCount + 1
End If
Next
DoCmd.OpenReport ReportName, View, FilterName, WhereCondition, , OpenArgs
DoCmd.Maximize
SendKeys ("z")
Reports(ReportName).Tag = "Preview"
'For Log files
Do While CurrentProject.AllReports(ReportName).IsLoaded = True
DoEvents
Loop
For intX = intCount - 1 To 0 Step -1
Forms(loFormArray(intX)).Visible = True
Next
Application.CommandBars("Menu").Visible = True
If Callform.Name <> "" Then
DoCmd.SelectObject acForm, Callform.Name
End If
If Err = 2501 Then Err.Clear
'Erreur définie par l'application ou par l'objet
End Sub
 Le problème est que lorsque je souhaite réafficher le formulaire (forms.visible), il refuse de s'afficher.

Nota  :
Je fais scette manipulation car je souhaite pouvoir afficher l'aperçu avant impression d'un état alors que j'ai plusieurs
 sujet clos  Haut

[]   

DébutPrécédent [ 1 2 ] SuivantFin
Réponse n° 1
--------
le 16/12/2010 : 18:27
par 3Stone

Anonyme

Administrateur

Bonjour,

Un formulaire modal est destiné à se trouver à l'avant plan, on ne peut donc pas ouvrir un état devant un tel formulaire.

Il y a alors deux solutions, soit on cache le formulaire avant d'ouvrir l'état, soit on le ferme.

Cordialement,
Pierre(3stone)

PS:
Il n'est pas souhaitable de coller du code de bonne raison. Si c'est souhaiter, coller le code, le sélectionner et cliquer sur le bouton "<>" de l'éditeur.
  clos par 3Stone le 26/12/2010 : 13:44  Haut
Réponse n° 2
--------
le 17/12/2010 : 16:55
par dumas_blr

Anonyme

visiteur

Bonjour Pierre,

Cest exactement ce que je cherchais à faire.

Je sais cacher tous mes formulaires, mais je n'arrive à ne les réafficher en empilant.

Or, en les ouvrant dans un ordre donné (opération docmd.openform), on empile bien les fenêtre dans un ordre d'affichage bien précis. Par contre, le fait de les cacher (utilisation de la propriété .visible = false), fait perdre toute mémorisation du contexte, puisqu'à priori, il n'y aurait donc pas de contexte pour une fenêtre modale.

Est-ce à dire que les opération de cachage/décachage de formulaire ne peuvent être gérées que pour une seule fenêtre modale et pas plus ?

Ma question peut ne pas paraitre pertinente, mais il se trouve que je développe une application pour des personnes (d'un certain age) qui ne connaissent absolument rien à l'informatique, et qui m'ont chargé de leur éviter toute possibilité de fausse manoeuvre. Ce qui m'a fait écarter à priori la navigation par onglet propre à Access2007.

Y a-t-il d'autre possibilité pour interdire à un utilisateur de sortir du chemin tracé autrement que par l'utilisation de fenêtres modale ?

PS : merci pour les conseils d'affichage. Je viens de découvir le forum, et donc n'ai pas pu étudier plus précisément  l'ergonomie, d'autant plus que ce message était posté à l'origine sur le livre d'or kk

Merci de ne pas trop s'en formaliser, mais l'egonomie pour poster de nouveaux messages sur ce forum ne me parait pas trop évidente k

Ecrire à dumas_blr   clos par 3Stone le 26/12/2010 : 13:44  Haut
Réponse n° 3
--------
le 17/12/2010 : 17:11
par dumas_blr

Anonyme

visiteur

Suite de ma réponse... et au mémo que j'ai pu voir concernant les switch modal.

Est-ce qu'une solution ne serait pas de "démodaliser" chaque formulaire au moment de le cacher, puis de faire les opérations suivantes dans l'ordre daffichage des formulaires :
- décacher le formulaire (propriété .visible = true)
-
"remodaliser" le formulaire
?

Merci d'avance pour votre avis éclairé

Ecrire à dumas_blr   clos par 3Stone le 26/12/2010 : 13:44  Haut
Réponse n° 4
--------
le 17/12/2010 : 21:30
par 3Stone

Anonyme

Administrateur

Bonjour,

 
Citation :

Je sais cacher tous mes formulaires, mais je n'arrive à ne les réafficher en empilant.

 
Tu veux dire que tu ouvres tous les formulaires, pour ensuite jouer avec la propriété visible=false/true ??

Si oui, c'est une abération y
Il ne manquerait plus que tu les rendent tous indépendant...
Si une telle base serait amenée à être placée en réseau, cela serait une catastrophe totale en termes de performance...
 
Citation :

Ma question peut ne pas paraitre pertinente, mais il se trouve que je développe une application pour des personnes (d'un certain age) qui ne connaissent absolument rien à l'informatique, et qui m'ont chargé de leur éviter toute possibilité de fausse manoeuvre. Ce qui m'a fait écarter à priori la navigation par onglet propre à Access2007.

 
Une base bien réalisée et possédant une bonne ergonomie est le meilleur garant.
 
Citation :

Y a-t-il d'autre possibilité pour interdire à un utilisateur de sortir du chemin tracé autrement que par l'utilisation de fenêtres modale ?

 
On peut ouvrir une fenêtre modale, voir indépendante... le reste se réalise par le contrôle des saisies, etc.

Cordialement,
Pierre(3stone)
  clos par 3Stone le 26/12/2010 : 13:44  Haut
Réponse n° 5
--------
le 17/12/2010 : 22:49
par dumas_blr

Anonyme

visiteur
Citation :

Tu veux dire que tu ouvres tous les formulaires, pour ensuite jouer avec la propriété visible=false/true ??


Non, bien sur ! Mais il s'agit juste d'un enchainement classique menu général (1)-> fiche de consultation (2)-> formulaire d'impression d'états(3). ou menu général(1) -> fiche de saisie(4) -> formulaire d'impression d'états(3).

Ce que je veux absolument, c'est que les utilisateurs, s'ils veulent passer de 2 à  ne puissent pas faire autrement que de suivre l'enchainement 1-2-3-2-1 ou 1-2-1-4

Ecrire à dumas_blr   clos par 3Stone le 26/12/2010 : 13:44  Haut
Réponse n° 6
--------
le 17/12/2010 : 23:14
par 3Stone

Anonyme

Administrateur

Je ne connais pas ton appli, ni la finalité...
Mais si je comprends ce que tu souhaites, pourquoi ne pas placer les boutons qui vont bien sur les différents formulaires et de n'activer que ceux qui correspondent au pas suivant ou l'abandon avec retour au menu ?

Cordialement,
Pierre(3stone)
  clos par 3Stone le 26/12/2010 : 13:44  Haut
Réponse n° 7
--------
le 17/12/2010 : 23:19
par dumas_blr

Anonyme

visiteur
Parce que cela n'empèchera pas un utilisateur de passer d'eun onglet à un autre alors que seul le dernier formulaire doit être actif
Ecrire à dumas_blr   clos par 3Stone le 26/12/2010 : 13:44  Haut
Réponse n° 8
--------
le 17/12/2010 : 23:47
par 3Stone

Anonyme

Administrateur

Oublie cette c*nnerie d'onglets... et décroche les formulaires.
Si tu connais Access 2003, configure ton soft de la même façon, sans les onglets.

Pour "nettoyer" la place, tu peux aussi ouvrir en premier lieu un formulaire en maximize! Et sans rien, pas de bouton, pas de bordure, rien!
Puis, tu ouvre ton menu général.

Cordialement,
Pierre(3stone)
  clos par 3Stone le 26/12/2010 : 13:44  Haut
DébutPrécédent [ 1 2 ] SuivantFin
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut