quinta-feira, 21 de março de 2013

Excel na pratica.Códigos VBA para Cadastro...

CÓDIGOS VBA MODELOS...

FUNÇÃO PARA CADASTROS.

Boa tarde! galera no post anterior da série CÓDIGOS VBA MODELOS... ensinei a criar um numero crescente para ser usado como código de registro, para o cadastro que irei ensinar nesse post... espero que estejam gostando do meu blog...



Post anterir: CÓDIGOS VBA MODELOS... FUNÇÃO NUM_AUTO...


http://excelamador.blogspot.com.br.passo_a_passo_numero_automatico




Vamos abrir a pasta que criamos no post anterior para dar continuidade a mesma...


Agora iremos criar um segundo campo para o nosso banco de dados... 














que será onde vamos cadastrar produtos diversos...Assim o nosso titulo será PRODUTO...











Agora vamos no Editor VBA a caixa de texto criada no post anterior (que exibido o número auto...) temos que alterar a propriedade ENABLE dela para False.

Depois vamos criar outro Objeto caixa de texto para servir de referencia a esse campo novo (PRODUTO) criado na planilha...









Vamos inserir 2 Label (rótulos)para servir de tútulos para as caixas de texto criado...








Alterar a propriedade CAPTION de cada rótulo conforme imagem..


Inserir um botão de comando e alterar a propriedade CAPTION para GRAVAR:






Código modelo para cadastro...

Function CADASTRO()
If FORMULARIO.OBJETO.Text = "" Then
MsgBox " OBJETO É UM CAMPO OBRIGATÓRIO", vbExclamation
FORMULARIO.OBJETO.SetFocus     
Exit Function
Else
End If

Dim linha As Integer
Dim BANCO As Database
Dim TABELA As Recordset

Set BANCO = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "EXCEL 8.0") 

Sql = "insert into [PLANILHA$] (CAMPO)VALUES ('" & FORMULARIO.OBJETO & "')"
BANCO.Execute Sql
BANCO.Close

MODULO.NUM_AUTO

FORMULARIO.OBJETO.Text = ""

FORMULARIO.OBJETO.SetFocus 

End Function

______________________________________________________

CADASTRO = NOME DA FUNÇÃO
OBJETO= NOME DO OBJETO…
PLANILHA= NOME DA PLANILHA
CAMPO= CAMPO DENTRO DA PLANILHA ONDE SERÃO GRAVADAS AS INFORMAÇÕES
FORMULARIO= NOME DO FORMULÁRIO ONDE SE ENCONTRA O OBJETO
MODULO= MÓDULO ONDE ESTÁ O CÓDIGO QUE GERA O NÚMERO AUTOMÁTICO...
NUM_AUTO= NOME DA FUNÇÃO QUE GERA O CÓDIGO AUTO. DENTRO DO MODULO ...

________________________________________________________________________________

COLOCANDO EM MINHA PASTA DE TRABALHO O CÓDIGO ACIMA...

Pois bem vou ir copiando parte por parte e explicar...


Function CADASTRO  ) 'aqui vai o nome da função que pode ser qualquer um...

Verifica se o OBJETO não está vazio
If FORMULARIO.OBJETO.Text = "" Then
MsgBox " OBJETOÉ UM CAMPO OBRIGATÓRIO", vbExclamation
FORMULARIO.OBJETO.SetFocus     
Exit Function
Else
End If



Colocando os meus objetos, o código acima ficará assim:




If UserForm1.TextBox2.Text = "" Then
MsgBox " PRODUTO É UM CAMPO OBRIGATÓRIO", vbExclamation
UserForm1.TextBox2.SetFocus
Exit Function
Else
End If



Ao executa-lo se o Textbox1 estiver vazio exibirá a seguinte mensagem...












UserForm1  = nome do nosso formulário 













TextBox2= nome do nosso objeto no formulário...











PRODUTO = nome do campo na planilha...







esse mesmo código é repetido quantas vezes for necessárias de acordo com o número de caixas de texto que estivermos usando em nosso projeto de modo que não seja efetuado o cadastrado se alguma caixa de texto estiver vazia e do mesmo modo avisando ao usuário qual  é, por meio da mensagem exibida...


________________________________________________________________________________

Sql = "insert into [PLANILHA$] (CAMPO)VALUES ('" & FORMULARIO.OBJETO& "')"


A linha acima é responsável pelo cadastro  nela você tem que informar em qual planilha será feito o cadastro???? que no nosso exemplo será... TESTE_NUMERO então a linha ficará assim

Sql = "insert into [TESTE_NUMERO$] (CAMPO)VALUES ('" & FORMULARIO.OBJETO& "')"



CAMPO aqui devemos dizer em quais campos serão gravadas as informações, vamos gravar então nos campos NUMERO e PRODUTO de nossa planilha...

então a linha ficará assim agora...

Sql = "insert into [TESTE_NUMERO$] (NUMERO,PRODUTO)VALUES ('" & FORMULARIO.OBJETO& "')"


Veja que para separar um  campo do outro basta por a virgula entre eles.

______________________________________________________


FORMULARIO aqui devemos informar qual UserForm está o Objeto que terá a informação... no caso é o UserForm1...


então a linha ficará assim agora...

Sql = "insert into [TESTE_NUMERO$] (NUMERO,PRODUTO)VALUES ('" & UserForm1.OBJETO& "')"


______________________________________________________


OBJETO aqui informamos ao código onde está a informação que vai ser gravada... que no nosso caso como o primeiro campo do código é NUMERO  então o primeiro objeto será o TextBox1... 


então a linha ficará assim agora...

Sql = "insert into [TESTE_NUMERO$] (NUMERO,PRODUTO)VALUES ('" & UserForm1.TextBox1 & "')"





e por fim vamos por o objeto que irá por as informações no campo PRODUTO que será o TextBox2...








então a linha ficará assim agora...

Sql = "insert into [TESTE_NUMERO$] (NUMERO,PRODUTO)VALUES ('" & UserForm1.TextBox1 & "','" & UserForm1.TextBox2 & "')"


______________________________________________________



MODULO.NUM_AUTO (aqui devemos chamar a função código automático criado no post mencionado no inicio deste) 

FORMULARIO.OBJETO.Text = "" (esse código serve para limpar a caixa de texto)

FORMULARIO.OBJETO.SetFocus  (esse código serve para levar o ponteiro do mouse novamente para o objeto citado nele)
______________________________________________________


Veja como ficará o código completo para gravar esses 2 objetos na planilha...



Function CADASTRO()
If UserForm1.Textbox2.Text = "" Then
MsgBox " PRODUTO É UM CAMPO OBRIGATÓRIO", vbExclamation
UserForm1.Textbox2.SetFocus     
Exit Function
Else
End If

Dim linha As Integer
Dim BANCO As Database
Dim TABELA As Recordset

Set BANCO = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "EXCEL 8.0") 

Sql = "insert into [TESTE_NUMERO$] (NUMERO,PRODUTO)VALUES ('" & UserForm1.TextBox1 & "','" & UserForm1.TextBox2 & "')"


BANCO.Execute Sql
BANCO.Close


Módulo1.NUMERO


UserForm1.Textbox2.Text = ""

UserForm1.Textbox2.SetFocus 

End Function

______________________________________________________

Vamos copiar e colar o código dentro do módulo1 logo abaixo da função NUMERO...




_________________________________________________________________________________



Vamos chamar essa função dentro do botão no evento Click...



_____________________________________________________

Pronto agora é só rodar o formulário e testar...

Estando tudo certo salvem o trabalho que irei acrescentar uma terceira coluna ao cadastro a de Valor dos Produtos...

Não percam o próximo post será voltado para colocar a coluna valor, assim você conseguirá cadastrar quantas informações você precisar... e também darei inicio ao assunto pesquisa... onde ao cadastrar um determinado produto o mesmo já apareça em   uma lista dentro do próprio formulário...

Até mais...

Deixem comentários dizendo se conseguiram ou não, no caso de dúvidas será um prazer analisa-las e ajudar a compreender cada passo postado aqui...

At; Edivan Cabral...



Um comentário:

  1. Como eu realizo esse procedimento???

    "Agora vamos no Editor VBA a caixa de texto criada no post anterior (que exibido o número auto...) temos que alterar a propriedade ENABLE dela para False."

    Eu não achei como alterar de enable para false

    ResponderExcluir