CÓDIGO VBA PARA CADASTROS EM GERAL
Bom galera hoje irei dar continuidade ao post 2 do projeto Agenda Telefônica em VBA...
Quem não leu os posts 1 e 2, recomendo que leiam pois essa é a continuação deles assim fica mais fácil o entendimento e aprendizado...
Parte 1:
http://excelamador.blogspot.com.br/2013/03/excel-vba-agenda-telefonica-passo-passo.html
Parte 2:
PARTE III
PASSO A PASSO...
Abrir também o Editor VBA (Alt + F11)...
CRIANDO O CÓDIGO...
Vamos abrir o módulo, para criarmos a nossa função que irá se chamar CADASTRO...
Dentro da função criada vamos por o seguinte código...
If frmagenda.TXT_NOME.Text = "" Then
MsgBox "NOME COMPLETO É OBRIGATÓRIO", vbExclamation
frmagenda.TXT_NOME.SetFocus
Exit Function
Else
End If
'O código acima serve para avisar o usuário quando a caixa de texto TXT_NOME estiver vazia, pois não é aconselhável cadastrar informações nulas...
'-----------------------------------------------------------------------------
If frmagenda.TXT_TELEFONE.Text = "" Then
MsgBox "TELEFONE É OBRIGATÓRIO", vbExclamation
frmagenda.TXT_TELEFONE.SetFocus
Exit Function
Else
End If
'O código acima faz a mesma coisa do primeira porém analisará a caixa de texto TXT_TELEFONE....
'-----------------------------------------------------------------------------
Dim linha As Integer
Dim BANCO As Database
Dim TABELA As Recordset
Set BANCO = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "EXCEL 8.0") 'abre o banco de dados
Sql = "insert into [AGENDA$] (NUMERO,NOME,TELEFONE)VALUES ('" & frmagenda TXT_CODIGO & "','" & frmagenda TXT_NOME& "','" & frmagenda.TXT_TELEFONE& "')"
BANCO.Execute Sql
BANCO.Close
'---------------------------------------------------------------------------------
Módulo1.NUM_AUTO
'uma vez que efetuado o cadastro o código acima irá chamar a função NUM_AUTO para gerar o próximo numero a ser cadastrado
'--------------------------------------------------------------------------------
frmagenda.TXT_NOME.Text = ""
frmagenda.TXT_TELEFONE.Text = ""
frmagenda.TXT_NOME.SetFocus
Após isso devemos chamar esse código dentro do evento click do botão gravar, para isso basta dar um clique duplo nele, para abrir o seu código que se abre assim:
no local marcado com um traço é onde vamos escrever o código:
módulo1.CADASTRO
pronto agora para testar é só executar o formulário e cadastrar as informações...
EXPLICANDO O CÓDIGO...
PARA FAZER UM SEMELHANTE VOCÊ DEVERÁ APENAS TROCAR OS OBJETOS MENCIONADOS PELOS SEUS OBJETOS. O RESTANTE DO CÓDIGO É SÓ COPIAR E COLAR...
frmagenda = NOME DO USERFORM
TXT_NOME = NOME DO OBJETO CAIXA DE TEXTO
TXT_TELEFONE = NOME DO OBJATO CAIXA DE TEXTO
MsgBox = CHAMA UMA MENSAGEM EXIBINDO O TEXTO QUE ESTIVER DENTRO DOS PARENTESES...
AGENDA = NOME DA PLANILHA
NUMERO,NOME,TELEFONE = CAMPOS DA PLANILHA
('" & frmagenda TXT_CODIGO & "','" & frmagenda TXT_NOME& "','" & frmagenda.TXT_TELEFONE& "')" = CAMPOS NO FORMULÁRIO
É ISSO AÍ TROCANDO ESSAS INFORMAÇÕES PELAS SUAS O SEU PROJETO TERÁ QUE FUNCIONAR PERFEITAMENTE, MAS ATÉ VOCÊ CONHECER CADA LINHA DE CÓDIGO, FAÇA ESSE POST EXATAMENTE COMO DESCRITO DESDE A PARTE 1 ATÉ A 3, PARA VOCÊ APRENDER DE VERDADE A FAZER....
ATT; EDIVAN CABRAL
Olá Amigo,
ResponderExcluirfiz tudo como ensinou, porem esta dantro erro na seguinte linha: (Dim BANCO As Database) aparece a mensagem de erro de compilação e fala que o tipo definido pelo usuário não é definido.
e também toda a linha (Set BANCO = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "EXCEL 8.0") 'abre o banco de dados
Sql = "insert into [AGENDA$] (NUMERO,NOME,TELEFONE)VALUES ('" & frmagenda TXT_CODIGO & "','" & frmagenda TXT_NOME& "','" & frmagenda.TXT_TELEFONE& "')"
fica em vermelho
OBS: estou usando o Excel 2010.
Abraços
Olá boa tarde!
ResponderExcluirOlha no post parte II, tem uma parte que fala sobre habilitar a referencia Microsoft DAO 3.6 Library , você fez isso também???? Pois esse erro geralmente dá por nao estar habilitada essa referencia, reveja os post 1 e 2, talvez você tenha feito alguma coisa de errado, ou mesmo ficou sem fazer alguma coisa, que eu acredito que seja a habilitação da referencia citada acima...
Para maiores esclarecimentos caso não seja esse o problema mande seu exemplo no meu e-mail edivan.cabral@yahoo.com.br para eu analisar e te ajudar a corrigir...
Obrigado, pelo comentário.. Edivan Cabral
Deixe comentário depois dizendo se conseguiu ou não ok... Boa Sorte!
ResponderExcluirolá Edvan,
ResponderExcluirrespondendo a duvida de Edmaxy
na linha
Sql = "insert into [AGENDA$] (NUMERO,NOME,TELEFONE)VALUES ('" & frmagenda TXT_CODIGO & "','" & frmagenda TXT_NOME& "','" & frmagenda.TXT_TELEFONE& "')"
altera para
Sql = "insert into [AGENDA$] (NUMERO,NOME,TELEFONE)VALUES ('" & frmagenda.TXT_CODIGO & "','" & frmagenda.TXT_NOME & "','" & frmagenda.TXT_TELEFONE & "')"
Ok, valeu cara, nem reparei que a falta de espaço antes dos & é que copiei o código que fiz no Excel kkkk certamente a formatação do meu blog deve ter juntado... mas é isso aí obrigado pela observação...
ResponderExcluirvaleu edvan.
ResponderExcluireu só estou retribuindo o favor vc me fez...
lembra da planilha de recibos?
ME AJUDOU D+
e agora to estudando pelo seu blog
Muitíssimo obrigado... e continue lendo estou postando muito sobre VBA eu adoroooooooo!!! rsrsrsrsrsrs
ResponderExcluirboa tarde! nao deu certo, aparece a seguinte mensagen "erro de compilacao
ResponderExcluirsomente comentarios podem aparecer apos end sub, end function ou end property"
AMIGO, ACREDITO QUE VOCE DEVA VERIFICAR O CÓDIGO CRIADO, POIS ELE TEM QUE TERMINAR COM END SUB E NAO PODE MESMO TER NADA APÓS ISSO, POIS SE NAO FICA FORA DO PROCEDIMENTO, CASO PREFIRA MANDE SUA PLANILHA QUE VC FEZ ATÉ AÍ, PARA EU VER CERTINHO E TE FALAR.... VLW
ResponderExcluir