Pessoal, sou muito......MAS MUITO MESMO.......novato em VB e comecei a seguir uma apostila de VB6 que peguei na internet para criar um programa chamado Bibliotecario (alguém já deve ter ouvido falar dessa apostila).
No entanto, agora que tem a parte de códigos, começou a dar alguns erros. No momento estou precisando resolver um, pra depois testar os outros.
Obs: Em um módulo está declarado - Public cnnBiblio As New ADODB.Connection
A variável vInclusao foi declarada no começo assim - Dim vInclusao As Boolean - em GENERAL - DECLARATIONS
Segue abaixo o erro que está dando e mais abaixo o código.
'começa o comando para verificação de existência e inclusão de novo Usuario no campo CodUsuario
'pesquisando se já existe o código cadastrado
Private Sub txtCodUsuario_LostFocus()
'variável que será usada para manipular o Banco de Dados
Dim cnnComando As New ADODB.Command
'variável que recebe os dados do Banco de Dados e Grava no BD de volta
Dim rsSelecao As New ADODB.Recordset
On Error GoTo errSelecao 'caso ocorra erro vai pra outro comando abaixo
'Verifica se foi digitado um Código válido
'Val vai retornar em valores numericos o que foi digitado na txtCodUsuario
'como não foi digitado nada ele retorna 0, então acontece a MsgBox abaixo
If Val(txtCodUsuario.Text) = 0 Then
MsgBox "Não foi digitado um código válido, verifique", _
vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
Exit Sub
End If
'o comando abaixo transforma o cursor do mouse em ampulheta
Screen.MousePointer = vbHourglass
'o command começa a executar operações no BD
With cnnComando
'ativa a conexão criada com o BD
.ActiveConnection = cnnBiblio
'indica o tipo de dados a ser aberto
.CommandType = adCmdText
'Monta o comando SELECT para selecionar o registro na tabela:
'indica qual o campo a ser trabalhado
.CommandText = "SELECT * FROM Usuarios WHERE codUsuario = " & _
txtCodUsuario.Text & ";"
'declarando que o rsSeleção será executado como declarado acima
Set rsSelecao = .Execute
End With
With rsSelecao
If .EOF And .BOF Then 'verifica o inicio e final do registro
'Se o recordset está vazio, não retornou registro com esse código:
LimparDados
'Identifica a operação como Inclusão
vInclusao = True
Else
'Senão, atribui aos campos os dados do registro
txtNomeUsuario.Text = !NomeUsuario
txtEndereco.Text = !Endereco
txtCidade.Text = !Cidade
txtEstado.Text = !Estado
txtCEP.Text = !CEP
txtTelefone.Text = Empty & !Telefone
'Identifica a operação com alteração
vInclusao = False
'habilita o botão excluir
Toolbar1.Buttons(3).Enabled = True
End If
End With
'Desabilita a digitação do campo código
txtCodUsuario.Enabled = False
Saida:
'Elimina o command e o recordset da memória:
Set rsSelecao = Nothing
Set cnnComando = Nothing
Screen.MousePointer = vbDefault 'volta o ponteiro normal do mouse
errSelecao:
With Err
If .Number <> 0 Then
MsgBox "Houve um erro na recuperação do registro solicitado.", _
vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"
.Number = 0
GoTo Saida
End If
End With
End Sub
'-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
'============================================SUB ROTINAS=======================================
'----------------------------------------------------INICIO DA SUB ROTINA GRAVAR DADOS------------------------------------------------------------------
Private Sub GravarDados()
Dim cnnComando As New ADODB.Command
Dim vConfMsg As Integer
Dim vErro As Boolean
On Error GoTo errGravacao[b]---------------Já desabilitei temporariamente esse comando para descobrir onde está erro[/b]
'Inicializa as variáveis auxiliares
vConfMsg = vbExclamation + vbOKOnly + vbSystemModal
vErro = False
'verifica os dados digitados
If txtNomeUsuario.Text = Empty Then
MsgBox "O Campo Nome não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtEndereco.Text = Empty Then
MsgBox "O Campo Endereço não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtCidade.Text = Empty Then
MsgBox "O Campo Cidade não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtEstado.Text = Empty Then
MsgBox "O Campo Estado não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtCEP.Text = Empty Then
MsgBox "O Campo CEP não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
'se ocorreu erro de digitação, sai da Sub sem gravar
If vErro Then
Exit Sub
End If
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
'verifica a operação e cria o comando SQL correspondente
If vInclusao = True Then
'Inclusão:
.CommandText = "INSERT INTO Usuarios " & _
"(CodUsuario, NomeUsuario, Endereco, Cidade, " & _
"Estado, CEP, Telefone) VALUES ('" & _
txtCodUsuario.Text & ",'" & _
txtNomeUsuario.Text & "','" & _
txtEndereco.Text & "','" & _
txtCidade.Text & "','" & _
txtEstado.Text & "','" & _
txtCEP.Text & "','" & _
txtTelefone.Text & "');"
Else
'Alteração:
.CommandText = "UPDATE Usuarios SET " & _
"NomeUsuario = '" & txtNomeUsuario.Text & "'," & _
"Endereco = '," & txtEndereco.Text & "'," & _
"Cidade = '," & txtCidade.Text & "'," & _
"Estado = '," & txtEstado.Text & "'," & _
"CEP = '," & txtCEP.Text & "'," & _
"Telefone = '," & txtTelefone.Text & "' " & _
"WHERE CodUsuario = " & txtCodUsuario.Text & ";"
End If
.Execute[b]--------------------APARENTEMENTE É AQUI QUE ESTÁ DANDO O ERRO.[/b]
End With
MsgBox "Gravação concluída com Sucesso.", _
vbApplicationModal + vbInformation + vbOKOnly, _
"Gravação Ok"
'chama a Sub que limpa o formulário:
LimparTela
Saida:
Screen.MousePointer = vbDefault
Set cnnComando = Nothing
Exit Sub
errGravacao:[b]---------------Já desabilitei temporariamente esse comando para descobrir onde está erro[/b]
With Err
If .Number <> 0 Then
MsgBox "Houve um erro durante a gravação dos dados na tabela.", _
vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
.Number = 0
GoTo Saida
End If
End With
End Sub
'--------------------------------------------------------------FIM DA SUB ROTINA GRAVAR DADOS--------------------------------------------------------------
Pergunta
Jucla
Pessoal, sou muito......MAS MUITO MESMO.......novato em VB e comecei a seguir uma apostila de VB6 que peguei na internet para criar um programa chamado Bibliotecario (alguém já deve ter ouvido falar dessa apostila).
No entanto, agora que tem a parte de códigos, começou a dar alguns erros. No momento estou precisando resolver um, pra depois testar os outros.
Obs: Em um módulo está declarado - Public cnnBiblio As New ADODB.Connection
A variável vInclusao foi declarada no começo assim - Dim vInclusao As Boolean - em GENERAL - DECLARATIONS
Segue abaixo o erro que está dando e mais abaixo o código.
Desde já agradeço muita a ajuda....
CÓDIGO:
________________________________________________________________________________________________________________________
Editado por JuclaLink para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.