Notifications
Clear all

MSGBOX ao iniciar planilha

12 Posts
2 Usuários
0 Reactions
4,308 Visualizações
(@rilton)
Posts: 232
Reputable Member
Topic starter
 

Queria saber se tem como, ao iniciar minha planilha ela me exibe uma msgbox dizendo por exemplo?

Exitem 2 tarefas para hoje, deseja visualiza-la?

OBS: Meu banco de dados fica no access, meu formulario faz uma conexão com o mesmo!

 
Postado : 19/10/2012 9:10 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Rilton,

Boa Tarde!

Para exibir uma mensagem quando sua planilha for aberta, insira o código abaixo no evento Workbook_Open da planilha, assim:

Private Sub Workbook_Open()
    MsgBox "Exitem 2 tarefas para hoje, deseja visualiza-la?", vbQuestion + vbYesNo, "TAREFAS"
End Sub
 
Postado : 20/10/2012 10:09 am
(@rilton)
Posts: 232
Reputable Member
Topic starter
 

Wagner Morel,

Eu queria que a msgbox aparecesse em função dos registros já cadastrados no banco (que no meu caso fica no access). Por exemplo, tenho um formulário de cadastro de funcionários. ao inicar a planilha é me exibido uma mensagem de quem está fazendo aniversario hoje (" Existem dois aniversáriantes hoje, Paulo e Roberto") . caso não tenha niguem fazendo aniversário a mensagem não apareceria. Ou seja, minha planilha só iria exibir a msgbox em função dos registros no meu bando de dados.

 
Postado : 20/10/2012 1:51 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Ok. Não havia entendido assim.

Bem, no caso, você deverá, então, no evento Workbook_Open da sua planilha, fazer uma connexão com seu banco de dados (para isso, obviamente, você deve ter declarado as variáveis de BD como globais para serem utilizadas em qualquer módulo do seu código), executar um comando SQL na tabela que você quer, utilizando a cláusula WHERE para buscar somente as datas cadastradas que sejam iguais a data do dia (gravada no relógio do micro) e, encontrando algo no Recordset, exibir a caixa de mensagem que você quer.

Pelo que você fala em seu último post, creio que você já deve ter conhecimento de desenvolvimento utilizando a dobradinha Excel/Access. Assim, creio que você já deve saber como fazer essa conexão e consulta. de todo modo, segue abaixo um pequeno trtecho de código que faz isso:

    'Aqui eu atribuo, à variável de objeto de BD "PendentesPeriodo", uma nova instância ADO do tipo Recordset. Isso vai gravar os registros encontrados na consulta SQL
    Set PendentesPeriodo = New ADODB.Recordset
    
    'Aqui eu armazeno na variável "ComandoSQLPendentesPeriodo" os comando SQL que fazem a consulta que quero. Nesse meu caso, eu tenho duas condições para a _
cláusula Where. No seu caso, basta apenas uma condição (nome_do_campo_data de sua tabela igual a data atual do micro (Date)
    ComandoSQLPendentesPeriodo = "Select * From Tarefas" & vbCrLf
    ComandoSQLPendentesPeriodo = ComandoSQLPendentesPeriodo & "Where Status = 'Pendente'" & vbCrLf
    ComandoSQLPendentesPeriodo = ComandoSQLPendentesPeriodo & "And Data >= #" & Dtp_Inicio.Value & "# And Data <= #" & Dtp_Fim.Value & "#" & vbCrLf
    ComandoSQLPendentesPeriodo = ComandoSQLPendentesPeriodo & "Order by Data"

NO código a seguir, você verifica se foi gravado alguma coisa no Recordset e grava em uma variável do tipo String:

        While Not PendentesPeriodo.EOF
           Aniversariante = PendentesPeriodo!Nome
           DataAniversario = PendentesPeriodo!Data
           If Aniversariante = "" Then
                 Exit Sub
           Else
                'Msgbox com a mensagem que você quer
           End If
       Wend 
 
Postado : 20/10/2012 2:28 pm
(@rilton)
Posts: 232
Reputable Member
Topic starter
 

Wagner Morel,

Pelo contrário, não tenho quase nenhum conhecimento sobre a dobradinha excel e access, o que estou criando é com base em alguns modelos disponiveis na internet. Estou começando a compreender o assunto, mas ainda estou bem no inicio.
Caso possa me ajudar estou disponibilizando em anexo o formulário que estou criando. Sobre o código descrito, tentei adaptar, mais sem sucesso.
Mas obrigado pela colaboração.

 
Postado : 20/10/2012 2:57 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Rilton,

Boa Noite!

Baixei seus arquivos (a base e a planilha) e não estou entendendo o que você quer. Na sua base não tem nenhuma tabela com cadastro de funcionários, nem datas de aniversários. No seu arquivo Excel, também não achei nenhum formulário de cadastro de funcioinários nem relação de cadastro e datas de aniversários dos mesmos...

 
Postado : 20/10/2012 3:31 pm
(@rilton)
Posts: 232
Reputable Member
Topic starter
 

Wagner Morel,

Por exemplo, tenho um formulário de cadastro de funcionários. ao inicar a planilha é me exibido uma mensagem de quem está fazendo aniversario hoje (" Existem dois aniversáriantes hoje, Paulo e Roberto") . caso não tenha niguem fazendo aniversário a mensagem não apareceria. Ou seja, minha planilha só iria exibir a msgbox em função dos registros no meu bando de dados.

Me desculpe.

O caso acima é um exemplo que eu utilizei para explicar melhor o meu caso.
O arquivo que eu te enviei, é um arquivo que estou criando para programar atividades a serem realizadas em um determinado dia. Nele tem um campo cahamado de data prevista ( Data para realização da atividade), e no banco de dados na tabela programar tem uma coluna chamada DTª_INI_PREV que recebe os registros das datas registradas. Dessa forma, eu queria criar um metodo para que quando a planilha fosse aberta, me exibiria uma mensagem dizendo " Existem duas atividades a serem Realizadas hoje, Deseja ativa-las".

 
Postado : 20/10/2012 4:12 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

OK, meu caro Rilton.

Se você tivesse dito assim desde a sua primeira mensagem...

Mas vamos lá.

Segue o arquivo de volta com a implementação do que você solicitou: surgimento de uma mensagem, quando da abertura da planilha, informando as atividades existentes para serem realizadas na data. Observe que alterei, na sua base de dados, 3 atividades para refmletir a data de hoje e assim informar no início da abertura da planilha (para teste). Se você apagar essas 3 datas que alterei, obviamente, não será apresentada mensagem alguma na abertura da planilha.

Veja também que a string de conexão com o Banco de Dados, no Excel, procura pelo arquivo Base.mdb existente no mesmo diretório onde estiver a planilha. A mensagem informa a existência da quantidade de atividades a serem realizadas e pergunta se quer ativá-las. Apresenta também os botões SIM e NÃO. Se responder não, a mensagem desaparece e nada acontece. Se responder SIM, a mensagem também desaparece e também nada acontece. Veja no código existente no evento Workbook_Open da sua planilha que não implementei nenhum código relativo a essa ativação da atividade. Também é possível você não perguntar nada e somente informar que existem as atividades.

Espero que seja isso e que lhe seja útil.

 
Postado : 20/10/2012 5:54 pm
(@rilton)
Posts: 232
Reputable Member
Topic starter
 

Wagner Morel,

Ficou excelente, obrigado pela ajuda e por contribuir para melhoramento deste trabalho que estou criando. E me desculpe pela falta de informação, é que eu faço tantas perguntas aqui no forum e as vezes fico constrangido em enviar o arquivo e pedir para que alguém me ajude a encontrar uma solução. Aí prefiro postar citando alguns exemplos e mediante as respostas tento adaptar ao meu formulário sem que alguém faça para mim.
Se não for te encomodar muito, estou pesquisando sobre como criar gráficos vindos direto do banco de dados para o formulário, sem precisar traze-lo para o form. como imagem, mas ainda não encontrei um comando que faça isso. Dessa forma queria saber se é possivel fazer isso no VB?

 
Postado : 20/10/2012 10:19 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Rilton,

Bom Dia!

Fico contente por ter ajudado.

Quanto a ficar constrangido aqui no fórum, esqueça isso. No meu modesto modo de entender, um fórum se faz com a participação voluntária e com o tempo disponível dos seus integrantes. Assim, de uma forma ou de outra, estamos todos aqui para contribuir, seja aprendendo e/ou ensinando. Quero dizer com isso, que os integrantes aqui (ou de outro fórum qualquer) devem ficar muito à vontade para ajudar ou não, de acordo com seus conhecimentos.

Então, meu amigo, pergunte a vontade! E outra: quando tiver um problema, evite postar exemplos análogos para depois ter que quebrar a cabeça tentando entender. Especifique claramente o problema, tipo assim: tenho isso, estou com esse problema e pretendo que o resultado final seja dessa forma.

Valeu, irmão! Obrigado também pela oportunidade de ajudar. Tenho aprendido muito nesses fóruns.

Afinal, aquele que não vive para servir, não serve para viver!

 
Postado : 21/10/2012 8:06 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Nossa! Falei tantaas coisas que esqueci do principal!

Quanto a questão dos gráficos que você pergunta, infelizmente essa não é a minha praia e eu não domino o assunto. Fico devendo essa!

 
Postado : 21/10/2012 8:08 am
(@rilton)
Posts: 232
Reputable Member
Topic starter
 

Wagner Morel ,

Obrigado. Quero que saiba que sua ajuda me foi de grande valia.Tudo o que fazemos pensando em ajudar ao próximo nos é devolvido em dobro. Então pode ter certeza que um dia você será recompensado. "O fardo é proporcional às forças, como a recompensa será proporcional ao ato solidário" (Adaptação da frase de Allan Cardec)
Obrigado, mais uma vez, por sua atenção e pelo carinho dedicado.
Abraços!

 
Postado : 21/10/2012 8:50 am