Problem with Default View "Datasheet"

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have a form which has Default View = "Datasheet", so it can display a table
(all rows) with only a few columns enabled. It looks fine when I open by
double clicking on it. But when I open it from the switchboard (OpenForm),
or using DoCmd.OpenForm in VB, it shows one row only, as if Default View is
"Single Form". Is there a way?
 
Hi Sheryl,

Are you trying to open up a form in Datasheet View from the
built-in Access Switchboard Manager?

If so, you have three options (at least) available to you.

1. You could make your form into a Continuous Form and
design it so it *looks* just like a datasheet. Then open
it in Edit mode from the Switchboard.

2. You could design your own "Switchboard-type" form and
launch all your procedures from there. Most, if not all, experts
prefer to build their own unbound forms for this purpose and
avoid using the Switchboard Manager.

3. You can change the Switchboard code a little bit to
achieve your desired result. The Switchboard automatically
will open a form in Single view. If you change the code to
datasheet view then ALL forms will open in Datasheet view
launched from the Switchboard which is probably not a good thing.
If you would like to have the best of both worlds, follow these
instructions on a BACK-UP COPY.

Open the Switchboard code. Find the area that has this:

' Constants for the commands that can be executed.
Const conCmdGotoSwitchboard = 1
Const conCmdOpenFormAdd = 2
Const conCmdOpenFormBrowse = 3
Const conCmdOpenReport = 4
Const conCmdCustomizeSwitchboard = 5
Const conCmdExitApplication = 6
Const conCmdRunMacro = 7
Const conCmdRunCode = 8

Add one more line to the list like this:

Const conCmdOpenFormDatasheet = 9

Now go a little further down the code until you come to
this area:

' Run code.
Case conCmdRunCode
Application.Run rst![Argument]

' Any other command is unrecognized.
Case Else
MsgBox "Unknown option."

In between these two areas we want to add another one for
datasheet view. Add in this new code in the middle so it
looks like this:

' Run code.
Case conCmdRunCode
Application.Run rst![Argument]

' Open a form in Datasheet Mode.
Case conCmdOpenFormDatasheet
DoCmd.OpenForm rst![Argument], acFormDS

' Any other command is unrecognized.
Case Else
MsgBox "Unknown option."

Compile and save the form.

Now you will NOT be able to use the Switchboard Wizard to
use this option. The Wizard will only use the 8 pre-
defined options. To open a form in Datasheet View you will
need to go directly to the Switchboard Items TABLE and add
it yourself. If you study the records you will figure out
what is going on. Just use the number 9 in the Command
field to open a form in datasheet view and showing all
records.
 
I can't say that I've seen the exact behaviour you're describing, but I'd
suspect that you have a filter lurking somewhere that's only kicking in at
particular occasions. If you add a...

me.filteron=false

....into the form load event.... does that make any difference? Or if you
add a command button with just...

msgbox(me.filter)

....does that show anything?
 
I have a form which has Default View = "Datasheet", so it can display a table
(all rows) with only a few columns enabled. It looks fine when I open by
double clicking on it. But when I open it from the switchboard (OpenForm),
or using DoCmd.OpenForm in VB, it shows one row only, as if Default View is
"Single Form". Is there a way?

Regardless of what the default view property of the form is set at, if
you open it from an event, using VBA, you MUST open it explicitly in
Form Datasheet view:
DoCmd.OpenForm "FormName", acFormDS
 
Back
Top