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


3 participantes

    [Resolvido]Correr codigo a horas :)

    avatar
    Flashed
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 258
    Registrado : 03/05/2011

    [Resolvido]Correr codigo a horas :) Empty Correr codigo a horas :)

    Mensagem  Flashed 5/5/2011, 16:32

    Boas

    Tenho o seguinte codigo:


    Sub Comando0_Click()
    On Error GoTo Err_Comando0_Click
    'Declarei as variáveis strConsulta e strNomePlanilha
    Dim strConsulta, strNomePLanilha

    'Na variável strConsulta eu informei o nome exato da minha consulta
    strConsulta = "Semana1"
    'Na varivável strNomePlanilha eu informei o local e o nome do arquivo a ser gerado.
    strNomePLanilha = "C:\Documents and Settings\.xlsx"
    'Aqui foi montado a expressao que faz exportar a cunsulta em um arquivo de excel.
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, strConsulta, strNomePLanilha

    Exit_Comando0_Click:
    Exit Sub


    Err_Comando0_Click:
    MsgBox Err.Description
    Resume Exit_Comando0_Click


    End Sub

    Preciso que ele seja executado todos os dias as 2 da tarde e 8 da noite.


    Existe forma de correr este código sem abrir o access?

    att
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  JPaulo 5/5/2011, 17:30

    Existe sim, o simples será como eu lhe vou passar:


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Correr codigo a horas :) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Correr codigo a horas :) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Correr codigo a horas :) Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  JPaulo 5/5/2011, 17:44

    1º Transforme essa instrução numa função publica:

    Public Function ExportaConsulta()
    'Declarei as variáveis strConsulta e strNomePlanilha
    Dim strConsulta, strNomePLanilha
    'Na variável strConsulta eu informei o nome exato da minha consulta
    strConsulta = "Semana1"
    'Na varivável strNomePlanilha eu informei o local e o nome do arquivo a ser gerado.
    strNomePLanilha = "C:\Documents and Settings\.xlsx"
    'Aqui foi montado a expressao que faz exportar a cunsulta em um arquivo de excel.
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, strConsulta, strNomePLanilha
    Exit Function
    End Function


    2º Crie uma Macro e coloque a Ação de correr código.


    3º Crie uma folha de texto (bloco de notas) ou (Notepad)


    Cole isto lá dentro e mude para os nomes corretos e salve:

    @echo off
    START /WAIT Msaccess.exe "C:\SeuBanco.mdb" /x "SuaMacro"


    4º Mude a extensão desse .txt para .bat

    5º Instale este programa de agendamento de tarefas:


    http://dl.dropbox.com/u/771097/AgendaTarefas.rar

    6º Configure ele para as horas que quiser, fazer o .bat correr e voilá.




    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Correr codigo a horas :) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Correr codigo a horas :) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Correr codigo a horas :) Folder_announce_new Instruções SQL como utilizar...
    avatar
    Flashed
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 258
    Registrado : 03/05/2011

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  Flashed 6/5/2011, 10:16

    como crio a acção publica?

    Abro o vba no acess e depois?
    Me desculpa mas a minha base de access são poucas!
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  vieirasoft 6/5/2011, 16:39

    Abra um módulo VBA e cole a função que o Mestre lhe passou

    Public Function ExportaConsulta()
    'Declarei as variáveis strConsulta e strNomePlanilha
    Dim strConsulta, strNomePLanilha
    'Na variável strConsulta eu informei o nome exato da minha consulta
    strConsulta = "Semana1"
    'Na varivável strNomePlanilha eu informei o local e o nome do arquivo a ser gerado.
    strNomePLanilha = "C:\Documents and Settings\.xlsx"
    'Aqui foi montado a expressao que faz exportar a cunsulta em um arquivo de excel.
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, strConsulta, strNomePLanilha
    Exit Function
    End Function

    O resto está explicíto no outro tópico anterior
    avatar
    Flashed
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 258
    Registrado : 03/05/2011

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  Flashed 9/5/2011, 10:23

    Funcionou beleza Very Happy

    Obrigado e desculpem as perguntas mas ainda estou muito verde Smile

    Tem maneira de fechar o access no fim do código?

    Quando o bat é executado ele abre access e no fim não o fecha! Existe maneira de o fechar no fim o de o correr minimixado?

    O ideal seria...

    Correr este .bat sem abrir o access ou a janela do dos.

    Pois isto vai correr na maquina do cliente e quanto mais discreto for melhor é!
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  vieirasoft 9/5/2011, 11:03

    Você pode utilizar o módulo esconder janela do Access" ou "Tornar Access Transparente" e evita ter que o correr minimizado. Veja no Repositório de exemplos.
    avatar
    Flashed
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 258
    Registrado : 03/05/2011

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  Flashed 9/5/2011, 11:16

    Onde vejo isso?
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  vieirasoft 9/5/2011, 11:32

    POr exemplo este código postado pelo Criquio

    Abra um módulo e cole este código


    Option Compare Database
    Option Explicit
    'Autor de la función base: Indeterminado
    'Declaraciones
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long

    Private Declare Function SetLayeredWindowAttributes Lib "user32" _
    (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

    'Constantes
    Private Const GWL_EXSTYLE = (-20)
    Private Const WS_EX_LAYERED = &H80000
    Private Const LWA_ALPHA = &H2

    Function AccessTransparente(Nivel As Integer)
    'Adaptación: Byron Contreras, febrero 08, byronlcl@gmail.com
    'Objetivo: Ajustar el nivel de transparencia de la ventana principal
    ' de access. El nivel de transparencia debe estar entre 0 a 250
    '.............................................................................
    Dim lngHwnd As Long
    If Nivel < 0 Or Nivel > 250 Then Exit Function
    lngHwnd = Application.hWndAccessApp
    SetWindowLong lngHwnd, GWL_EXSTYLE, GetWindowLong(lngHwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
    SetLayeredWindowAttributes lngHwnd, 0, Nivel, LWA_ALPHA
    End Function

    No Form de abertura

    'Private Sub Form_Load()
    Call AccessTransparente(0)
    'End Sub
    avatar
    Flashed
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 258
    Registrado : 03/05/2011

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  Flashed 9/5/2011, 14:14

    Já abri um modulo no ficheiro access novo e colei o código que você postou. Mas se fizer F5 não acontece nada, abre a janela das macros apenas!

    É suposto?

    Uma questão:

    No Form de abertura

    'Private Sub Form_Load()
    Call AccessTransparente(0)
    'End Sub

    Qual é o meu form de abertura? Eu não sei criar form no access
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  vieirasoft 9/5/2011, 14:16

    Então a sua bD não tem formulários? Se tem, como eu acho que deve ter, qual deles é que abre no início da BD?
    avatar
    Flashed
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 258
    Registrado : 03/05/2011

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  Flashed 9/5/2011, 14:19

    A minha bd tem o seguinte:

    um modulo;
    Consultas;
    E uma importação;
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  vieirasoft 9/5/2011, 14:26

    Então nunca fez um formulário? Melhor começar a ver exemplos antes de passar para coisas complicadas, amigão.

    Os formulários são para mostrar os dados. Veja alguns exemplos aqui no fórum

    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  vieirasoft 9/5/2011, 14:28

    Olhe aqui um exemplo

    http://dl.dropbox.com/u/8157744/esconderjanela.zip
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  vieirasoft 13/5/2011, 19:56

    Então, conseguiu adaptar?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  JPaulo 14/5/2011, 10:47

    Bom dia a todos;

    Mais uma vez o simples;

    Utilize no final do código, o Application.Quit [i]

    Ou inclua direto na Macro, para encerrar o Access.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Correr codigo a horas :) Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Correr codigo a horas :) Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Correr codigo a horas :) Folder_announce_new Instruções SQL como utilizar...
    avatar
    Convidado
    Convidado


    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  Convidado 14/5/2011, 13:31

    Opa!, aproveitando a deixa, caro João Paulo.. tenho esse codigo ao abrir de um form que exporta um relatorio para pdf e o envia por e-mail.. coo adpatar para execucao sem ter que abrir o access?




    ' FUNÇÃO PARA O ENVIO DO RELATÓRIO "FORMULÁRIO DE INSPEÇÃO" PARA A AGESEP
    ' variável que representa o mês corrente

    'se o dia do mês for maior ou igual a 25 e o arquivo mês-ano.pdf ainda não existir, então...
    'If Day(Date) >= 12 And Len(Dir(CurrentProject.Path & "\Relatórios\" & Format(Now, "mm-yyyy") & ".pdf")) = 0 Then
    If Day(Date) >= 12 And Len(Dir(CurrentProject.Path & "\Relatórios\Inspecao_" & Format(Now, "mm-yyyy") & ".pdf")) = 0 Then



    ' cria o pdf na subpasta Relatórios com nome "mês-ano.pdf"
    'DoCmd.OutputTo acOutputReport, "rptRelatorioInspecao", "PDFFormat(*.pdf)", CurrentProject.Path & "\Relatórios\" & Format(Now, "mm-yyyy") & ".pdf", False, "", 0, acExportQualityScreen
    DoCmd.OutputTo acOutputReport, "rptRelatorioInspecao", "PDFFormat(*.pdf)", CurrentProject.Path & "\Relatórios\Inspecao_" & Format(Now, "mm-yyyy") & ".pdf", False, "", 0, acExportQualityScreen
    DoCmd.OutputTo acOutputReport, "rptQuantitativo_Fechado", "PDFFormat(*.pdf)", CurrentProject.Path & "\Relatórios\Quantitativo_fechado_" & Format(Now, "mm-yyyy") & ".pdf", False, "", 0, acExportQualityScreen
    DoCmd.OutputTo acOutputReport, "rptQuantitativo_Albergue", "PDFFormat(*.pdf)", CurrentProject.Path & "\Relatórios\Quantitativo_Albergue_" & Format(Now, "mm-yyyy") & ".pdf", False, "", 0, acExportQualityScreen

    ' cria as variáveis dos objetos cdo e envia o email
    Dim Mens As Object
    Dim Config As Object
    Set Mens = CreateObject("CDO.Message")
    Set Config = CreateObject("CDO.Configuration")

    With Config


    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxxxxx"
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxxx"
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60



    .Fields.Update
    End With

    Set Mens = New CDO.Message
    With Mens
    Set .Configuration = Config
    .From = "(TESTE DE ENVIO AUTOMATICO DE E-MAIL SYSPEN - Favor ignorar este e-mail)"
    'SYSPEN - Sistema de Informação e Gerenciamento Penitenciário"

    .Sender = "xxxx"


    .Subject = "Relatórios Administrativos da Unidade Prisional de Mineiros"
    .HTMLBody = "Segue em anexo (PDF) os relatórios de inspeção e quantitativos do CIS Mineiros-GO"

    .To = "xxxxxxxxxxx"
    ' a linha abaixo pega o pdf criado e anexa à mensagem
    '.AddAttachment CurrentProject.Path & "\Relatórios\" & Format(Now, "mm-yyyy") & ".pdf"
    .AddAttachment CurrentProject.Path & "\Relatórios\Inspecao_" & Format(Now, "mm-yyyy") & ".pdf"
    .AddAttachment CurrentProject.Path & "\Relatórios\Quantitativo_Fechado_" & Format(Now, "mm-yyyy") & ".pdf"
    .AddAttachment CurrentProject.Path & "\Relatórios\Quantitativo_Albergue_" & Format(Now, "mm-yyyy") & ".pdf"


    .Send
    End With

    MsgBox "E-mail's enviados com sucesso." & vbCrLf & _
    "Foram criados na pasta Relatórios, os arquivos em PDF do corrente mês", vbOKOnly + vbInformation, "Relatórios enviados"

    Set Mens = Nothing
    Set Config = Nothing
    Exit Sub
    Else
    Exit Sub
    End If
    End Sub
    avatar
    Convidad
    Convidado


    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  Convidad 14/5/2011, 13:58

    para ambos os casos, sem abrir o access é impossivel.

    na macro pode defenir varias etapas, como minimizar o access e o quit para fechar, tal como o jpaulo disse.
    avatar
    Convidado
    Convidado


    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  Convidado 14/5/2011, 14:00

    no meu caso pode abri o access sim.. mas e o login e senha?
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  vieirasoft 12/6/2011, 15:28

    Vamos dar o tópico por resolvido.

    Conteúdo patrocinado


    [Resolvido]Correr codigo a horas :) Empty Re: [Resolvido]Correr codigo a horas :)

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 10:21