Quero criar uma atalho de uma macro para fora do access via codigo, tem jeito? ja criei via manual mesmo, deu certinho mas via codigo eu nao sei se tem, alguem sabe?
2 participantes
[Resolvido]Criar atalho de uma macro para fora do access via codigo?
Clebergyn- Super Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 788
Registrado : 29/08/2012
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
Por gentileza, explique melhor. Que macro seria essa? Para qual finalidade? Como é essa manual que você criou?
.................................................................................
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. |
Clebergyn- Super Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 788
Registrado : 29/08/2012
é uma macro que gera um relatorio com calculos, so que quem o usuario tambem quer extrair esse relatorio rapido, entao criei a macro que executa um codigo que gera o relatoiro exportando pra fora e fecha o sistema rapido, entao criei um atalho clicando na macro com o botao direito, para fora do access, e clicando no atalho ele faz tudo isso rapidamente, so que eu queria criar este atalho via codigo, automatico...
existe a funçao Wshshell mas eu nao sei usa-la para macro
Dim atalhoLnk As WshShortcut
Dim WshShell As WshShell
Set WshShell = CreateObject("WScript.Shell")
caminho = WshShell.SpecialFolders("Desktop")
existe a funçao Wshshell mas eu nao sei usa-la para macro
Dim atalhoLnk As WshShortcut
Dim WshShell As WshShell
Set WshShell = CreateObject("WScript.Shell")
caminho = WshShell.SpecialFolders("Desktop")
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
Tente assim:
- Código:
Dim caminho As String
Dim atalhoLnk As Object
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
caminho = WshShell.SpecialFolders("Desktop")
Set atalhoLnk = WshShell.CreateShortcut(caminho & "\" & Me.NomeAtalho & ".lnk")
atalhoLnk.IconLocation = "Caminho do ícone a ser utilizado"
atalhoLnk.TargetPath = CurrentProject.Path & "\NomeDaMacro"
atalhoLnk.Save
.................................................................................
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. |
Clebergyn- Super Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 788
Registrado : 29/08/2012
Valeu, gostei muito, mas ele nao aceita o "me.nomeatalho", disse que nao aceita e "me", entao no nomeatalho eu vou colocar o nome da macro isso?
minutos depois...
Tente criar um atalho externo para uma macro e veja o link como é direfente, tem um (atalho).MAM
o nome do atalho, posso renomear que ele vai direto pra macro
minutos depois...
Novidade! tive a ideia de abrir o atalho com o notepad, veja o que tinha nele:
[Shortcut Properties]
AccessShortcutVersion=1
DatabaseName=N1.mdb 'Nome de meu banco de dados
ObjectName=GeraOrçamento 'Nome de minha macro
ObjectType=Macro
Computer=CLEBER-PC
DatabasePath=C:\Cleber\Isaac-Celg\Projeto N1\N1.mdb 'Onde se encontra o bando de dados
EnableRemote=0
CreationTime= 1cdbe1e350e82bf
Icon=265
imagino entao que dê para mudar sim os parametros
minutos depois...
Tente criar um atalho externo para uma macro e veja o link como é direfente, tem um (atalho).MAM
o nome do atalho, posso renomear que ele vai direto pra macro
minutos depois...
Novidade! tive a ideia de abrir o atalho com o notepad, veja o que tinha nele:
[Shortcut Properties]
AccessShortcutVersion=1
DatabaseName=N1.mdb 'Nome de meu banco de dados
ObjectName=GeraOrçamento 'Nome de minha macro
ObjectType=Macro
Computer=CLEBER-PC
DatabasePath=C:\Cleber\Isaac-Celg\Projeto N1\N1.mdb 'Onde se encontra o bando de dados
EnableRemote=0
CreationTime= 1cdbe1e350e82bf
Icon=265
imagino entao que dê para mudar sim os parametros
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
Nunca havia feito esse tipo de coisa, mas observando os parâmetros exibidos no bloco de notas, foi possível entender como a coisa funciona e deu certo assim:
- Código:
Dim aCam As String
Dim wShell As Object
Set wShell = CreateObject("WScript.Shell")
aCam = wShell.SpecialFolders("Desktop")
Dim N As Integer
N = FreeFile
Open aCam & "\Nome para o atalho.MAM" For Output As #N
Print #N, "[Shortcut Properties]"
Print #N, "AccessShortcutVersion=1"
Print #N, "DatabaseName=" & CurrentProject.Name
Print #N, "ObjectName=NomeDaMacro"
Print #N, "ObjectType=Macro"
Print #N, "Computer=" & Environ("Computer Name")
Print #N, "DatabasePath=" & CurrentProject.Path & "\" & CurrentProject.Name
Print #N, "EnableRemote=0"
Print #N, "Icon=265"
Close #N
MsgBox "Atalho criado na área de transferência", vbInformation, "Status"
.................................................................................
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. |
Clebergyn- Super Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 788
Registrado : 29/08/2012
Deu certo Criquio, nao sei como agradecer, acho que perdi meu tempo no ecxpertaccess, espero um dia poder ajudar muita gente por um site desses tambem, quero muito aprender VBA E VB e outros tambem, quero aprender todas essas referencias do Access e gostaria muito de encontrar o lugar certo, os livros certos, estou vendo até sites em ingles, se voce puder me dar uma dica de onde encontrar ou curso pago mesmo, nao quero perder tempo com livros ou sites ruins...
vou abrir outro topico que acho que é mais encrenca ainda, e espero que possa me dar uma dica
obrigado
vou abrir outro topico que acho que é mais encrenca ainda, e espero que possa me dar uma dica
obrigado
Clebergyn- Super Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 788
Registrado : 29/08/2012
galera o Criquio me ajudou e fiz estes dois procedimentos de atalho mas os dois juntos executado separado ou junto nao funciona, so funciona o primeiro, quando mando executar os dois juntos um apos o outro em um outro procedimento nao funciona o segundo, o da macro, sozinho ele funciona porque?
...minutos depois
Agora eu vi, quando saio dou logof e volto aparece o atalho, entao esta criando, mas nao aparece de imediato, so aparece o atalho do programa, e o da macro nao aparece de imediato, o que é isso?
...minutos depois
melhor ainda, qual a funçao vba para atualizar descktop?
Function criar_atalho()
Dim caminho As String
Dim atalhoLnk As WshShortcut
Dim WshShell2 As WshShell
caminho1 = Application.CurrentProject.Path & "\" & Application.CurrentProject.Name
Set WshShell2 = CreateObject("WScript.Shell")
caminho = WshShell2.SpecialFolders("Desktop")
Set atalhoLnk = WshShell2.CreateShortcut(caminho & "\PROGRAMA N1.lnk")
atalhoLnk.IconLocation = Application.CurrentProject.Path & "\fotoeng1.bmp" ' ícone do atalho
atalhoLnk.TargetPath = caminho1 ' programa que o atalho irá executar
atalhoLnk.Save
End Function
mais este para criar um atalho de macro
Function criaratalhomacro()
Dim aCam As String
Dim wShell1 As Object
Set wShell1 = CreateObject("WScript.Shell")
aCam = wShell1.SpecialFolders("Desktop")
Dim n As Integer
n = FreeFile
Open aCam & "\Orçamento_Resumido.MAM" For Output As #n
Print #n, "[Shortcut Properties]"
Print #n, "AccessShortcutVersion=1"
Print #n, "DatabaseName=" & CurrentProject.Name
Print #n, "ObjectName=GeraOrçamento"
Print #n, "ObjectType=Macro"
Print #n, "Computer=" & Environ("Computer Name")
Print #n, "DatabasePath=" & CurrentProject.Path & "\" & CurrentProject.Name
Print #n, "EnableRemote=0"
Print #n, "Icon=265"
Close #n
End Function
...minutos depois
Agora eu vi, quando saio dou logof e volto aparece o atalho, entao esta criando, mas nao aparece de imediato, so aparece o atalho do programa, e o da macro nao aparece de imediato, o que é isso?
...minutos depois
melhor ainda, qual a funçao vba para atualizar descktop?
Function criar_atalho()
Dim caminho As String
Dim atalhoLnk As WshShortcut
Dim WshShell2 As WshShell
caminho1 = Application.CurrentProject.Path & "\" & Application.CurrentProject.Name
Set WshShell2 = CreateObject("WScript.Shell")
caminho = WshShell2.SpecialFolders("Desktop")
Set atalhoLnk = WshShell2.CreateShortcut(caminho & "\PROGRAMA N1.lnk")
atalhoLnk.IconLocation = Application.CurrentProject.Path & "\fotoeng1.bmp" ' ícone do atalho
atalhoLnk.TargetPath = caminho1 ' programa que o atalho irá executar
atalhoLnk.Save
End Function
mais este para criar um atalho de macro
Function criaratalhomacro()
Dim aCam As String
Dim wShell1 As Object
Set wShell1 = CreateObject("WScript.Shell")
aCam = wShell1.SpecialFolders("Desktop")
Dim n As Integer
n = FreeFile
Open aCam & "\Orçamento_Resumido.MAM" For Output As #n
Print #n, "[Shortcut Properties]"
Print #n, "AccessShortcutVersion=1"
Print #n, "DatabaseName=" & CurrentProject.Name
Print #n, "ObjectName=GeraOrçamento"
Print #n, "ObjectType=Macro"
Print #n, "Computer=" & Environ("Computer Name")
Print #n, "DatabasePath=" & CurrentProject.Path & "\" & CurrentProject.Name
Print #n, "EnableRemote=0"
Print #n, "Icon=265"
Close #n
End Function
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
Olá! Por se tratar ainda do mesmo assunto, eu fundi os tópicos.
Não entendi muito bem. Explique melhor por gentileza.
Não entendi muito bem. Explique melhor por gentileza.
.................................................................................
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. |
Clebergyn- Super Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 788
Registrado : 29/08/2012
é o seguinte crio os atalhos e preciso de uma funçao para atualizar o descktop pois vi que os atalhos estao sendo criados mas a principio so aparece o atalho do programa e nao o da macro, mas quando vou no descktop e mando atualizar com o botao direito ele aparece, achei que nao estivesse funcionando mas estao o problema é so atualizar o descktop instantaneamente
agora estou com o problema em outro topico se puder me ajudar, da dando erro, uso o 2003 e depois que abri o 2007 e fechei fui trabalhar no 2003 e da erro "o conjunto de eventos nao é suportado pelo objeto ou classe" e nao sao as referencias, veja o topico
agora estou com o problema em outro topico se puder me ajudar, da dando erro, uso o 2003 e depois que abri o 2007 e fechei fui trabalhar no 2003 e da erro "o conjunto de eventos nao é suportado pelo objeto ou classe" e nao sao as referencias, veja o topico
Conteúdo patrocinado