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:
________________________________________________________________________________________________________________________
'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--------------------------------------------------------------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.