segunda-feira, 18 de março de 2013

Excel VBA, Projeto Agenda Telefônica Parte 2...

AGENDA TELEFÔNICA PARTE II


Olá, galera dando continuidade ao post anterior do nosso projeto agenda onde ensinei a criar a planilha, o banco de dados, o userform e os objetos necessários para nosso exemplo em VBA Agenda Telefônica.

Onde temos como principal objetivo ensinar o código para o cadastramento de informações em nosso banco de dados...


Nessa continuação vou ensinar a criar um código numérico automático para que ao gravarmos a primeira informação que por sua vez será com código 1, automaticamente já seja gerado o códIgo 2.



BORA LÁ ENTÃO...

Vamos então abrir a nossa pasta de trabalho que criamos no post anterior...




Abrir o editor VBA, pressionando o atalho Alt+F11 ou através da guia desenvolvedor...



HABILITANDO REFERENCIA (Microsoft DAO 3.6 Object Library)

Essa referencia é essencial para o bom funcionamento de nosso projeto assim como todos os outros que formos criar baseados  nesse tutorial...



Passo a passo

Clicamos no menu Ferramentas...






Em seguida  clicamos em 
Referencias...










procuramos a referencia marcada na imagem ao lado e em seguida clicamos no botão "OK"









CRIANDO O CÓDIGO PARA GERAR UM NUMERO AUTOMATICO

Bom antes de mais nada vamos criar um módulo, para escrevermos o código que irá gerar o numero automático...



Clicamos na haste ao lado do botão Inserir UserForm...










No  menu que se abre escolhemos o opção Módulo...

e o Módulo será criado com o nome Módulo 1...











Vejam o módulo inserido já na imagem a direita...













CÓDIGO

Agora dentro do módulo1 vamos copiar e colar o código que vai gerar o numero...

O código é o seguinte:


Function NUM_AUTO()
Dim BANCO As Database
Dim TABELA As Recordset
Set BANCO = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "EXCEL 8.0")
Set TABELA = BANCO.OpenRecordset("AGENDA$")
If TABELA.EOF And TABELA.BOF Then
    frmagenda.TXT_CODIGO = 1
Else
    TABELA.MoveLast
    frmagenda.TXT_CODIGO = Format(TABELA("NUMERO") + 1)
End If
End Function


Quem viu o post anterior repare que o código é o mesmo só mudaram os nomes de cada objeto...



EXPLICAÇÃO PASSO A PASSO


NUM_AUTO   = nome da função



AGENDA= nome 
da planilha onde serão          
 gravadas as informações






frmagenda
nome            
do userform




TXT_CODIGO =  nome d
objeto que se encontra no formulário.










NUMERO =                      
campo na planilha
onde será gravada
a informação
"1,2,3,4,5,6 etc"






Pois bem como podemos observar nas duas postagem sobre esse assunto o código para gerarmos números automáticos é o mesmo porém trocamos apenas o nome da planilha AGENDA o formulário frmagenda , o objeto dentro do formulário TXT_CODIGO  , e o campo na planilha NUMERO ,que irá receber o código quando formos grava-lo na planilha...


CHAMANDO O CÓDIGO DENTRO DO FORMULÁRIO


Agora vamos chamar esse código do formulário no evento initialize, assim sempre que o mesmo for iniciado automaticamente já irá puxar o próximo código...



Damos um clique  
duplo em qualquer
 vazia no formulário







Irá se abrir 
a tela de  códigos 
do formulário...





Devemos trocar               
Click por initialize





Agora é só chamarmos a função que criamos no módulo1...
para isso        
basta 
escrever 

módulo1.NUM_AUTO


Vamos agora alterar a propriedade ENABLE da caixa de texto TXT_CODIGO para false, assim o usuário não poderá alterar seu valor, já que o numero será automático...




pronto agora é só clicar em uma área vazia do formulário e executar vejam que o valor deverá ser igual a 1, uma vez que não tem nada cadastrado ainda...

resultado final para esse post:



Na parte III,vou ensinar o código que efetua o cadastro das informações...


isso aí espero que tenham gostado e até a parte III...


edivan.cabral@yahoo.com.br

3 comentários:

  1. Não deu certo, segui a risca todos os passos mais não gerou o numero.(o codigo copiei e colei)

    ResponderExcluir
    Respostas
    1. Moises tudo bom, por favor envie a planilha que voce usou, para edivan.cabral@yahoo.com.br para eu ver o que esta errado, se for no meu post vou corrigir se for na planilha te falo, é que eu fiz umas 3 vezes antes de postar e funcionou... aguardo seu e-mail...

      Excluir
    2. Didática ótima, o conteúdo ótimo.

      Edivan meus parabéns pela iniciativa e pela didática.

      O problema é a navegação do seu site nossa muito confusa a sequencia de aulas confusa, tudo confuso.

      Sugestão mude este modelo de site coloque algo mais direto e didático como as suas aulas.

      Valeu amigo, e meus parabéns, MAS pelo amor de DEUS mude este site para que possamos seguir a sequencia das aulas :).

      Excluir