473,378 Members | 1,571 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

Navigate between open windows? (opinion)

Do you have your users rely on the windows taskbar to manage/navigate
between the forms they have open, or do you provide another (more
robust) method? Does anyone use a custom navigation system (like
keeping a selectable list of open forms in a listbox/commandbar/
breadcrumb trail etc.)?

Mar 7 '07 #1
13 3511
On Mar 7, 5:21 pm, "robert.waters" <robert.wat...@gmail.comwrote:
Do you have your users rely on the windows taskbar to manage/navigate
between the forms they have open, or do you provide another (more
robust) method? Does anyone use a custom navigation system (like
keeping a selectable list of open forms in a listbox/commandbar/
breadcrumb trail etc.)?

I used one that was written by Dev Ashish, but damned if I can find a
link to it anymore. It requires placing a 'Window' menu item on a
custom toolbar and it adds open forms and reports to it when you click
on it.

Perhaps someone out there knows where it's hidden, otherwise I'll look
for it when I get home.

Mar 7 '07 #2
On Mar 7, 6:22 pm, "storrboy" <storr...@sympatico.cawrote:
On Mar 7, 5:21 pm, "robert.waters" <robert.wat...@gmail.comwrote:
Do you have your users rely on the windows taskbar to manage/navigate
between the forms they have open, or do you provide another (more
robust) method? Does anyone use a custom navigation system (like
keeping a selectable list of open forms in a listbox/commandbar/
breadcrumb trail etc.)?

I used one that was written by Dev Ashish, but damned if I can find a
link to it anymore. It requires placing a 'Window' menu item on a
custom toolbar and it adds open forms and reports to it when you click
on it.

Perhaps someone out there knows where it's hidden, otherwise I'll look
for it when I get home.
Found it here:
http://groups.google.com/group/comp....3915e2db50ad57
Thanks!!! This is perfect.

Mar 8 '07 #3
On Mar 8, 12:14 pm, "robert.waters" <robert.wat...@gmail.comwrote:
On Mar 7, 6:22 pm, "storrboy" <storr...@sympatico.cawrote:
On Mar 7, 5:21 pm, "robert.waters" <robert.wat...@gmail.comwrote:
Do you have your users rely on the windows taskbar to manage/navigate
between the forms they have open, or do you provide another (more
robust) method? Does anyone use a custom navigation system (like
keeping a selectable list of open forms in a listbox/commandbar/
breadcrumb trail etc.)?
I used one that was written by Dev Ashish, but damned if I can find a
link to it anymore. It requires placing a 'Window' menu item on a
custom toolbar and it adds open forms and reports to it when you click
on it.
Perhaps someone out there knows where it's hidden, otherwise I'll look
for it when I get home.

Found it here:http://groups.google.com/group/comp..../browse_thread...
Thanks!!! This is perfect.
How did you implement it? The code as-is requires that form open and
close events call a function ('UpdateMenu') that iterates through open
windows in the MDI client area and populates a menu bar; in order to
do this, it makes use of Terry Kreft's MDIWindowsZ() function, which
gets the "Z order of open non-modal Forms". Unfortunately, this
function will only return windows having a window style of visible; in
my Access 2003, all the form open events (open/load/resize/activate/
current) occur before the window is actually visible, so each form
fails the test and is not included in the list that populates the
menu.
Here is the code:
strClassName = fGetClassName(hWndChildAfter)
lngStyle = apiGetWindowLong(hWndChildAfter, mcGWLSTYLE)
If (strClassName = "OForm" Or strClassName = "OReport") And
(lngStyle And mcWSVISIBLE) Then
.. add to the list

I can make the code work if I remove the '(lngStyle And mcWSVISIBLE) '
check, but my production database makes use of hidden forms for saving
state information, so that workaround is not viable.
Am I going to have to coopt the event handlers of some object on each
form that isn't loaded until after the form is visible? That seems
quite hack-ish.

Any help would be appreciated.

Mar 8 '07 #4
On Mar 8, 12:14 pm, "robert.waters" <robert.wat...@gmail.comwrote:
On Mar 7, 6:22 pm, "storrboy" <storr...@sympatico.cawrote:
On Mar 7, 5:21 pm, "robert.waters" <robert.wat...@gmail.comwrote:
Do you have your users rely on the windows taskbar to manage/navigate
between the forms they have open, or do you provide another (more
robust) method? Does anyone use a custom navigation system (like
keeping a selectable list of open forms in a listbox/commandbar/
breadcrumb trail etc.)?
I used one that was written by Dev Ashish, but damned if I can find a
link to it anymore. It requires placing a 'Window' menu item on a
custom toolbar and it adds open forms and reports to it when you click
on it.
Perhaps someone out there knows where it's hidden, otherwise I'll look
for it when I get home.

Found it here:http://groups.google.com/group/comp..../browse_thread...
Thanks!!! This is perfect.
My apologies. It seems that simply setting the form's Visible
property to True, in any of the Load events, before the call to
UpdateMenu, works (and vice-versa for the Close events).
Now that's one ugly hack.

Mar 8 '07 #5
My apologies. It seems that simply setting the form's Visible
property to True, in any of the Load events, before the call to
UpdateMenu, works (and vice-versa for the Close events).
Now that's one ugly hack.

I haven't looked at what you got, but the one I used enumerated the
forms/reports and added them to the menu when you clicked on the
'Windows' menuitem that you create in a custom toolbar. Opening the
forms has nothing to do with it in my version. Are you sure you read
through it properly?

Mar 8 '07 #6
On Mar 8, 1:10 pm, "storrboy" <storr...@sympatico.cawrote:
My apologies. It seems that simply setting the form's Visible
property to True, in any of the Load events, before the call to
UpdateMenu, works (and vice-versa for the Close events).
Now that's one ugly hack.

I haven't looked at what you got, but the one I used enumerated the
forms/reports and added them to the menu when you clicked on the
'Windows' menuitem that you create in a custom toolbar. Opening the
forms has nothing to do with it in my version. Are you sure you read
through it properly?
I guess it was different code (or the same, modified).
Did your users notice a delay when clicking that 'Windows' menu item?
I wonder if it's faster to have it populated on form open/close
events, or when the menu item is selected?

Mar 8 '07 #7

I can send you the one I have. I don't think it will paste properly
into a reply.
I've never noticed any speed issues, but most things I've done with
it, users would rarely have more than 10 windows open at a time.

Mar 8 '07 #8
On Mar 8, 1:50 pm, "storrboy" <storr...@sympatico.cawrote:
I can send you the one I have. I don't think it will paste properly
into a reply.
I've never noticed any speed issues, but most things I've done with
it, users would rarely have more than 10 windows open at a time.
Would you? I'll test the speed in my app. I really don't want to
have to go and add code to every one of 50 or so forms' onload and
onclose events ;)
My email address is robert(dot]waters[at)gmail.com

Mar 8 '07 #9

Done

Mar 8 '07 #10
Hello everyone,

This seemed like such a great idea because my users all have 15
forms open at once.

I wrote this code this morning. Let me know if I have done
something dangerous.

This is all in a form called "** Forms **" so we can find it
easily on the launch bar.

You open this form and then click on the Form you want to jump
to.

Tim Reed

' ************************************************
' Get list of open forms
Private Sub Form_Activate()

GetOpenFormsList

End Sub
' ************************************************** *********
' Make a list of all open forms excluding this one
Private Sub GetOpenFormsList()

Dim obj As AccessObject, dbs As Object
Dim OpenFormName As String

DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE FROM [Open Forms List];"
Set dbs = Application.CurrentProject
For Each obj In dbs.AllForms
If (obj.IsLoaded) Then
OpenFormName = obj.Name
If (OpenFormName <"** Forms **") Then
SQL1 = "INSERT INTO [Open Forms List] "
SQL2 = "( [Form Name] ) VALUES ( '" & OpenFormName &
"' );"
DoCmd.RunSQL SQL1 & SQL2
End If
End If
Next obj
SQL1 = "SELECT * FROM [Open Forms List] "
SQL2 = "ORDER BY [Form Name];"
Me.RecordSource = SQL1 & SQL2

End Sub
' *****************************************
' Jump to the clicked Form
Private Sub FormNameList_Click()

Dim stDocName As String, stLinkCriteria As String

stDocName = Me.FormNameList
DoCmd.OpenForm stDocName, , , stLinkCriteria

End Sub

Mar 9 '07 #11

Without testing it, the two things I see are.. that I would not
attempt to open the form when clicked in the list. If the form is
already open, attempt to SetFocus or Restore. Mainly because it is
possible to have a form open more than once (multiple instances). So
if this code were to be re-used, it may not work. Also there are times
when certain criteria or events must take place before or during a
form opening. These may be prevented using your current method.

Second, will this code include reports being previewed?

Mar 9 '07 #12
storrboy wrote:
I can send you the one I have. I don't think it will paste properly
into a reply.
I've never noticed any speed issues, but most things I've done with
it, users would rarely have more than 10 windows open at a time.
I've had this for years as an option on the main toolbar. A list that
floats in the upper right showing all open forms and you can click on a name
to bring that form to the front. I have never once seen a user utilizing
it.

(Hey, I thought it was a good idea)
--
Rick Brandt, Microsoft Access MVP
Email (as appropriate) to...
RBrandt at Hunter dot com
Mar 9 '07 #13

We used the menu I mentioned because two of the apps we made allowed
multiple instances of a form (Documents and Records). The same form
could be open many times with different records in them. Made sense
for us as the menu would allow locating and moving between them easier.

Mar 9 '07 #14

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Richard Bell | last post by:
Newbie question ... please respond to group I'm trying to open/navigate to a url. How can I tell when the page is fully loaded? Testing suggest that window.open returns before the page is...
5
by: Nicola Pedrozzi | last post by:
Here I really need a guru... ;^( I found out today with a big disappointment that : window.open("url", ...) and also navigate("url") limit the max length of the url string to something...
40
by: Brian Jorgenson | last post by:
On my web page, I have a few hyperlinks with target frame of _blank. The hyperlink brings up a second window, but everytime I click on thie hperlink, it keeps bringing up a new window and not...
2
by: Guogang | last post by:
We are happy with the result of smart navigate, until recently some of our webpage shows strange behavior. Page color may change to something else. New windows can not open. Dynamic image can not...
7
by: husamal_ahmadi | last post by:
Hi everyBody: I have this question which really drive me cruzy, By using VB.Net: How can I let the internet explorer navigate in the same window either by using win32 API or by using...
10
by: eSolTec, Inc. 501(c)(3) | last post by:
Thank you in advance for any and all assistance. I'm building a technician's tool and I'm trying to create a Jump Panel of buttons to the Windows System32 folder to open files programmatically. I...
7
by: Toccoa | last post by:
After considerable googling - I mean searching with Google(r) - I could not find javascript on a button or <a href=... to close a window in the latest versions of IE and FireFox. There seemed...
103
by: Tom | last post by:
How do we get out of the browser infinite loop quicksand when we navigate to web pages designed to lock us in and force us to hit the "pay me" button (whatever they want to force you to do)? ...
6
by: emrodge | last post by:
I'm using Access 2007 on Windows Vista and am having some problems trying to configure a simple button. There are two tables called Clients and Contacts which are linked on clients.id and...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.