MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Barra de Menus Access 2003

    avatar
    Convidado
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Barra de Menus Access 2003

    Mensagem  Convidado 30/5/2012, 13:03

    Bom dia amigos...

    Bem como nunca trabalhei com essas barras de menu´s estou encontrando problemas em adptar um aplicativo ao meu.
    Tenho um modelo com essas barras, onde em um dos forms, em propriedades, outras, Barras de menu de atalhos, tem uma referencia a um objeto ou código... para se abrir um menu..

    O sistema tambem tem os menus feitos em access 2003, os que foram substituidos pelas ribbons.

    Ocorre que ao importar o form para o meu projeto, isto nao funciona.. e ja revirei o exemplo e não sei onde encontrar ou como confeccionar essa barras personalizadas

    [Resolvido]Barra de Menus Access 2003 BarraMenus

    Se puderem ajuda, fico grato.
    avatar
    Convidad
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidad 30/5/2012, 13:11


    Olá Hary

    Que eu saiba, o recurso de menus personalizados não existe mais nas versões posteriores ao 2003, tendo sido substituído pelas ribbons.

    Os menus do 2003 podem ser usados, mas não há como editá-los em versões posteriores.

    É a evolução!

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  criquio 30/5/2012, 13:22

    E aí amigão, tudo tranquilo? Veja se ajuda:



    DA MICROSOFT:

    http://office.microsoft.com/pt-br/access-help/criar-menus-e-menus-de-atalho-personalizados-usando-macros-HA010282509.aspx



    DO SITE LINHA DE CÓDIGO DIVIDIDO EM VÁRIAS PARTES/EXEMPLOS

    http://www.linhadecodigo.com.br/artigo/526/criando-menus-personalizados-no-ms-access.aspx

    http://www.linhadecodigo.com.br/artigo/569/criando-menus-personalizados-no-ms-access---parte-2.aspx

    http://www.linhadecodigo.com.br/artigo/720/criando-menus-personalizados-no-ms-access---parte-3.aspx

    http://www.linhadecodigo.com.br/artigo/731/video-criando-menus-personalizados-no-ms-access---parte-4.aspx

    http://www.linhadecodigo.com.br/artigo/732/video-criando-menus-personalizados-no-ms-access---parte-5.aspx




    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Marcelo David 30/5/2012, 13:30

    Concordo Norbs, mas confesso que essa evolução eu não gostei... Mad Seria melhor as duas opções!

    Hary, algo que você deve tomar cuidado é se estiver programando com a versão 2010 do Access.
    Pois mesmo que crie as barras de menus no 2003, ou via VBA, não terá como configurar a inicialização
    da barra de menus para não ir para a aba suplementos (já tentei de várias formas, mas não encontrei como). Na versão 2007 ainda dá para configurar os menus para que não vá para os suplementos.


    Agora para barras de menus de atalho, é simples de se fazer usando macros...
    Via VBA, sempre uso esse exemplo da ajuda do Access 2010:

    Sub CreateReportShortcutMenu()
    Dim cmbRightClick As Office.CommandBar
    Dim cmbControl As Office.CommandBarControl

    ' Create the shortcut menu.
    Set cmbRightClick = CommandBars.Add("cmdReportRightClick", msoBarPopup, False, True)

    With cmbRightClick

    ' Add the Print command.
    Set cmbControl = .Controls.Add(msoControlButton, 2521, , , True)
    ' Change the caption displayed for the control.
    cmbControl.Caption = "Quick Print"

    ' Add the Print command.
    Set cmbControl = .Controls.Add(msoControlButton, 15948, , , True)
    ' Change the caption displayed for the control.
    cmbControl.Caption = "Select Pages"

    ' Add the Page Setup... command.
    Set cmbControl = .Controls.Add(msoControlButton, 247, , , True)
    ' Change the caption displayed for the control.
    cmbControl.Caption = "Page Setup"

    ' Add the Mail Recipient (as Attachment)... command.
    Set cmbControl = .Controls.Add(msoControlButton, 2188, , , True)
    ' Start a new group.
    cmbControl.BeginGroup = True
    ' Change the caption displayed for the control.
    cmbControl.Caption = "Email Report as an Attachment"

    ' Add the PDF or XPS command.
    Set cmbControl = .Controls.Add(msoControlButton, 12499, , , True)
    ' Change the caption displayed for the control.
    cmbControl.Caption = "Save as PDF/XPS"

    ' Add the Close command.
    Set cmbControl = .Controls.Add(msoControlButton, 923, , , True)
    ' Start a new group.
    cmbControl.BeginGroup = True
    ' Change the caption displayed for the control.
    cmbControl.Caption = "Close Report"
    End With

    Set cmbControl = Nothing
    Set cmbRightClick = Nothing
    End Sub



    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Barra de Menus Access 2003 Marcel11
    avatar
    Convidado
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidado 30/5/2012, 13:44

    Quer dizer entao que como o meu é 2007 eu não consigo editar esses controles?

    Marcelão, form que esta ai no print, esse atalho abre um pequeno menu com as opcoes editar e excluir...

    Quer dizer que sem chances de eu editá-lo no 2007?
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Marcelo David 30/5/2012, 13:47

    É uma pena, mas é isso mesmo pale
    Terá criar outros, conforme postei...


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Barra de Menus Access 2003 Marcel11
    avatar
    Convidado
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidado 30/5/2012, 14:13

    Então tá então.. hehehe..

    Bem, todas as mensagens me auxiliaram.

    Os links passados pelo amigo críquio creio que vão servir para substituir os atalhos que preciso.

    Obrogado a todos.
    avatar
    Convidad
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidad 30/5/2012, 14:14


    Viram o link do Linha de Código que o Criquio indicou? Muito show.

    Eu costumo usar um módulo com funções que executam as ações, e podem se chamadas de qualquer forma: botão, menu, combo, etc.


    ' abre o formulário de Clientes
    Public Function fClienteMenuBar()
    On Error GoTo Trato

    If CurrentProject.AllForms("fCliente").IsLoaded Then
    If Forms!fCliente.Dirty = True Then
    Info ("O formulário já está aberto e em edição." & vbCrLf & _
    "Por favor, complete as alterações.")
    Forms!fCliente.SetFocus
    Else
    Forms!fCliente.SetFocus
    If DLookup("[NovReg2]", "[t02Option]", "") = True Then DoCmd.GoToRecord , "", acNewRec
    End If
    Else
    DoCmd.OpenForm "fCliente"
    If DLookup("[NovReg2]", "[t02Option]", "") = True Then DoCmd.GoToRecord , "", acNewRec
    End If

    Exit Function
    Trato: Call ExplicaErro
    End Function
    avatar
    Convidado
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidado 30/5/2012, 14:38

    O menu que eu estava querendo, era acionao ao click do botão direito do mouse em uma listbox.
    As opçoes deste menu eram Excluir e editar.

    O link que se encaixou perfeitamente no que eu pretendia:

    http://www.linhadecodigo.com.br/artigo/569/criando-menus-personalizados-no-ms-access---parte-2.aspx


    Inclusive há o exemplo para baixar.
    avatar
    Convidado
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidado 30/5/2012, 14:45

    Ficou assim

    No ínicio do módulo do form:
    Option Compare Database
    Option Explicit
    Private Const BARRA As String = "MenuAtalhoForm"


    Ao abrir o form:


    Private Sub Form_Open(Cancel As Integer)
    On Error Resume Next
    'Executa rotina para menu de atalhos
    Me.MenuAtalhoForm
    End Sub


    Sub MenuAtalhoForm()
    Dim cmdBar As CommandBar
    Dim mnu As CommandBarButton

    delAtalho 'Apaga a barra de comando anterior caso ela exista
    Set cmdBar = CommandBars.Add _
    (Name:=BARRA, Position:=msoBarPopup, Temporary:=True)

    Set mnu = cmdBar.Controls.Add(Type:=msoControlButton)
    With mnu
    .Caption = "Menu Popup 1"
    .OnAction = "msg1"
    .FaceId = 308
    End With

    Set mnu = cmdBar.Controls.Add(Type:=msoControlButton)
    With mnu
    .Caption = "Menu Popup 2"
    .OnAction = "msg2"
    .FaceId = 209
    End With

    Set mnu = cmdBar.Controls.Add(Type:=msoControlButton)
    With mnu
    .Caption = "Menu Popup 3"
    .OnAction = "msg3"
    .FaceId = 1714
    End With

    Set mnu = cmdBar.Controls.Add(Type:=msoControlButton)
    With mnu
    .Caption = "&Sobre..."
    .OnAction = "sobre"
    .FaceId = 326
    .BeginGroup = True
    End With

    Set mnu = cmdBar.Controls.Add(Type:=msoControlButton)
    With mnu
    .Caption = "&Ajuda"
    .OnAction = "ajuda"
    .FaceId = 984
    .BeginGroup = True
    End With

    End Sub

    'Apaga a barra de comando anterior caso ela exista
    Sub delAtalho()
    On Error Resume Next 'Continua a execução caso o menu não esteja presente
    CommandBars(BARRA).Delete
    End Sub


    Show!
    avatar
    Convidado
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidado 30/5/2012, 14:54

    Uma questão amigos

    Como executar uma rotina no OnAction... Estou tentando e não está funcionando

    With mnu
    .Caption = "Editar Contato"
    .OnAction = Me.fEditarContato
    .FaceId = 208
    End With


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidado 30/5/2012, 16:14

    Olha so amigos...

    O código só carrega a função se esta estiver em um módulo do BD, mas se estiver no módulo do form ele não carrega.

    Há como modificar isto?

    Se no módulo do BD

    Sub EditarContato()
    If IsNull(Forms!frmFornecedores!lista) Then Exit Sub
    Forms!frmFornecedores!tx1 = Forms!frmFornecedores!lista.Column(2)
    Forms!frmFornecedores!tx2 = Forms!frmFornecedores!lista.Column(3)
    Forms!frmFornecedores!tx4 = Forms!frmFornecedores!lista.Column(4)
    Forms!frmFornecedores!tx5 = Forms!frmFornecedores!lista.Column(5)
    Forms!frmFornecedores!tx6 = Forms!frmFornecedores!lista.Column(6)
    Forms!frmFornecedores!tx7 = Forms!frmFornecedores!lista.Column(7)
    Forms!frmFornecedores!tx8 = Forms!frmFornecedores!lista.Column(1)
    Forms!frmFornecedores!tx9 = Forms!frmFornecedores!lista.Column(Cool
    Forms!frmFornecedores!StatusEditar = -1
    Forms!frmFornecedores!tx1.SetFocus
    End Sub

    Executa normal


    Mas se no módulo do form:
    Sub EdicarContato()
    If IsNull(Me!lista) Then Exit Function
    Me!tx1 = Me!lista.Column(2)
    Me!tx2 = Me!lista.Column(3)
    Me!tx4 = Me!lista.Column(4)
    Me!tx5 = Me!lista.Column(5)
    Me!tx6 = Me!lista.Column(6)
    Me!tx7 = Me!lista.Column(7)
    Me!tx8 = Me!lista.Column(1)
    Me!tx9 = Me!lista.Column(Cool
    Me!StatusEditar = -1
    Me!tx1.SetFocus
    End Sub

    Não executa;
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Marcelo David 30/5/2012, 16:38

    Na mensagem 4, aquele código deve ser usado apenas uma vez, o menu ficará disponível sempre no banco
    para qualquer formulário.
    No seu, o menu apaga sempre que executa e recria? Eu não compreendi a razão...?


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Barra de Menus Access 2003 Marcel11
    avatar
    Convidado
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidado 30/5/2012, 17:08

    Boas Marcelo.

    No meu caso, preciso de menu específico por formulário e campos.

    Neste exemplo carrego o menu com 2 ítens, dependendo da condição de uauário:


    Sub MenuAtalhoForm()
    Dim cmdBar As CommandBar
    Dim mnu As CommandBarButton

    delAtalho 'Apaga a barra de comando anterior caso ela exista
    Set cmdBar = CommandBars.Add _
    (Name:=BARRA, Position:=msoBarPopup, Temporary:=True)

    Set mnu = cmdBar.Controls.Add(Type:=msoControlButton)
    If XAlterar = False Then GoTo Continuar 'Esta linha utilizo para verificar o tipo de autorização de usuário
    With mnu
    .Caption = "Editar Contato"
    .OnAction = "EditarContato"
    .FaceId = 31
    End With
    Continuar:
    If XExcluir = False Then Exit Sub 'Esta linha utilizo para verificar o tipo de autorização de usuário
    Set mnu = cmdBar.Controls.Add(Type:=msoControlButton)
    With mnu
    .Caption = "Excluir Contato"
    .OnAction = "ExcluirContato"
    .FaceId = 478
    End With
    End Sub


    As linhas em vermelho executam uma sub, a questão é que se a sub ficar no módulo do form ele não é carregada.

    somente carrega se ficar no modulo do projeto.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Convidado 2/6/2012, 20:29

    Alguma sugestão sobre a msg de n. 14?


    Cumprimentos.

    Conteúdo patrocinado


    [Resolvido]Barra de Menus Access 2003 Empty Re: [Resolvido]Barra de Menus Access 2003

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 11/5/2024, 03:23