Avatar billede dougheffernan Nybegynder
28. maj 2003 - 10:43 Der er 13 kommentarer og
1 løsning

Disable menupunkt

Jeg har lavet en lille menu (a la Filer, Rediger osv).
Er det muligt at fjerne et sådant menupunkt (i VBA) hvis databasen indeholder en bestemt værdi?
Avatar billede terry Ekspert
28. maj 2003 - 11:31 #1
you can make your own menus in Access and disabke the default menus. Search in help under "menu"
Avatar billede terry Ekspert
28. maj 2003 - 11:31 #2
.
Avatar billede dougheffernan Nybegynder
28. maj 2003 - 11:39 #3
Not quite what I'm looking for, terry, I've already made my own menu and disabled the regular menues....what I'm looking for, is a way to disable one of menu-items in my menu, using VBA, based on a value that's stored in the database (The menu-item disables edits in the database and I want that menu-item to "disaper" afterwards. Once it's been made "un-editable", I don't want users to be able to make it editable)
Avatar billede dougheffernan Nybegynder
28. maj 2003 - 12:17 #4
Something kinda like this:
DoCmd.SetMenuItem 0, 1, , acMenuGray

'cept I get an error:
"Du kan ikke bruge makrohandlingen AngivMenupunkt i en standardmenu"
"AngivMenupunkt er kun til brugerdefinerede menuer"
Avatar billede dougheffernan Nybegynder
28. maj 2003 - 12:31 #5
Reading the help-file doesn't help much either!!

MenuIndex  Required Variant. An integer, counting from 0, that's the valid index of a menu on the custom menu bar or global menu bar for the active window, as defined in the menu bar macro for the custom menu bar or global menu bar. If you select a menu with this argument and leave the commandindex and subcommandindex arguments blank (or set them to –1), you can enable or disable the menu name itself. You can't, however, check or uncheck a menu name (Microsoft Access ignores the acMenuCheck and acMenuUncheck settings for the flag argument for menu names).

CommandIndex  Optional Variant. An integer, counting from 0, that's the valid index of a command on the menu selected by the menuindex argument, as defined in the macro group that defines the selected menu for the custom menu bar or global menu bar for the active window.

SubcommandIndex  Optional Variant. An integer, counting from 0, that's the valid index of a subcommand in the submenu selected by the commandindex argument, as defined in the macro group that defines the selected submenu for the custom menu bar or global menu bar for the active window.

Flag  Optional AcMenuType.
Avatar billede hugopedersen Nybegynder
29. maj 2003 - 13:54 #6
Følgende kode har jeg rodet med på et tidspunkt da jeg også legede med menuer. Det virkede delvist.

  Dim cbr As CommandBar                                                 
  Dim cbrCtl As CommandBarPopup
 
  Set cbr = CommandBars("Hovedmenu")           
  cbr.Protection = msoBarNoResize + msoBarNoChangeDock + msoBarNoCustomize + msoBarNoChangeVisible + msoBarNoMove
  On Error Resume Next                                                   
  If cbr.Visible = False Then cbr.Visible = True
  With cbr
    Cbr.Controls.Item("Hovedmenu_Maint").Visible = False
    Set cbrCtl = .Controls("Vedligehold")
    .Add(msoControlButton)       
    With cbrCtl
      .Controls("Brugerrettigheder").Visible = False
    End With
  End With
Avatar billede dougheffernan Nybegynder
02. juni 2003 - 11:38 #7
Dim cbr As CommandBar, er det ikke Visual Basic og IKKE VBA???
(Kan nemlig ikke oprette et objekt af typen CommandBar!)
Avatar billede hugopedersen Nybegynder
02. juni 2003 - 12:32 #8
Det er fordi at du skal sætte en reference til office 10 ( eller hvad du nu bruger)  Commandbar et et Office object.
Avatar billede hugopedersen Nybegynder
02. juni 2003 - 12:33 #9
( koden er lavet i et gammelt Access 2000 project, så det er VBA )
Avatar billede dougheffernan Nybegynder
02. juni 2003 - 13:21 #10
Ser bedre ud, men får så en fejl på:
msoControlButton
Avatar billede dougheffernan Nybegynder
02. juni 2003 - 13:38 #11
Her er noget der virker, sådan da, det virker på den indbyggede menu, men hvordan får jeg den til at virke på MIN menu?
menuen hedder LabReg og menupunktet jeg vil have til at "grey-out" hedder Make system read-only

Set cbc = CommandBars("Menu Bar").Controls("Rediger").CommandBar.Controls("Fortryd indtastning")
Avatar billede dougheffernan Nybegynder
02. juni 2003 - 13:42 #12
Så virker det!!!
Takker for hjælpen, drop et svar og få dine point.
Avatar billede hugopedersen Nybegynder
02. juni 2003 - 14:29 #13
Er det mig du mener ?
Avatar billede dougheffernan Nybegynder
02. juni 2003 - 15:13 #14
Yep! ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester