CADASTRO COM VB6 E ACCESS 2000

USUARIO.EXCLUIDOS 08/05/2006 11:05:22
#145457
Bom dia pessoal,

Estou tentando fazer uma simples aplicação de cadastro de clientes, utilizando uma apostila que peguei no "apostilando", mas não funciona.
Cadastrei clientes manualmente no Banco de dados Acess 2000 para teste, mas quando executo a pesquisa pelo CPF com a aplicação abaixo, vêm a mensagem "Run-time error '-2147217913 (80040e07)': tipo de dados incompatível na expressão de critério".

Por favor, me ajudem a descobrir o que aontece!
Ah! Se algém tiver uma apostila com instuções passo a passo sobre como criar uma simples aplicação de cadastro (inclusão, exlusão, Alteração), por favor me indique!!

Grato,
Cláudio Gutemberg

Citação:


Private Sub txtDocumento_LostFocus()
Dim cnnComando As New ADODB.Command
Dim rsSelecao As New ADODB.Recordset
'On Error GoTo errSelecao
'Verifica se foi digitado um código válido:
If Val(txtDocumento.Text) = 0 Then
MsgBox "Não foi digitado um código válido, verifique.", _
vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
txtDocumento.Text = Empty
txtDocumento.SetFocus
Exit Sub
End If
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnCardeal
.CommandType = adCmdText
'Monta o comando SELECT para selecionar o registro na tabela:
.CommandText = "SELECT * FROM balcafi WHERE bfcpf = " & Val(txtDocumento.Text) & ";"
Set rsSelecao = .Execute
End With
With rsSelecao
If .EOF And .BOF Then
'Se o recordset está vazio, não retornou registro com esse código:
LimparDados
'Identifica a operacao como Inclusão:
vInclusao = True
Else
'Senão, atribui aos campos os dados do registro:
txtDocumento2.Text = !bfrg
txtNome.Text = !bfnome
txtEndereço.Text = !bfend
txtTelefone.Text = Empty & !bftel
txtEmail.Text = !bfemail
txtObs.Text = Empty & !bfobs
'Identifica a operacao como Alteração:
vInclusao = False
'Habilita o botão Excluir:
cmdExcluir.Enabled = True
End If
End With
'Desabilita a digitação do campo código:
txtDocumento.Enabled = False

Saida:
'Elimina o command e o recordset da memória:
Set rsSelecao = Nothing
Set cnnComando = Nothing
Screen.MousePointer = vbDefault
Exit Sub

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

Private Sub LimparDados()
'Apaga o conteúdo dos campos do formulário:
txtRG.Text = Empty
txtNome.Text = Empty
txtEndereço.Text = Empty
txtTelefone.Text = Empty
txtContato.Text = Empty
txtSite.Text = Empty
txtEmail.Text = Empty
txtObs.Text = Empty
End Sub

Private Sub GravarDados()
Dim cnnComando As New ADODB.Command
Dim vConfMsg As Integer
Dim vErro As Boolean
On Error GoTo errGravacao
'Inicializa as variáveis auxiliares:
vConfMsg = vbExclamation + vbOKOnly + vbSystemModal
vErro = False
'Verifica os dados digitados:
If txtDocumento2.Text = Empty Then
MsgBox "O campo " & vDocumento & " não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtNome.Text = Empty Then
MsgBox "O campo Nome não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtEndereço.Text = Empty Then
MsgBox "O campo Endereço não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtTelefone.Text = Empty Then
MsgBox "O campo Telefone não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtEmail.Text = Empty Then
MsgBox "O campo E-Mail não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
'Se aconteceu um erro de digitação, sai da sub sem gravar:
If vErro Then Exit Sub
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnCardeal
.CommandType = adCmdText
'Verifica a operação e cria o comando SQL correspondente:
If vInclusao Then
'Inclusão:
.CommandText = "INSERT INTO balcafi " & _
"(bfcpf, bfrg, bfnome, bfend, " & _
"bftel, bfemail, bfobs) VALUES ('" & _
txtDocumento.Text & ",'" & _
txtDocumento2.Text & "','" & _
txtNome.Text & "','" & _
txtEndereço.Text & "','" & _
txtTelefone.Text & "','" & _
txtEmail.Text & "','" & _
txtObs.Text & "','"
Else
'Alteração:
.CommandText = "UPDATE Usuarios SET " & _
"bfrg = '" & txtDocumento2.Text & "'," & _
"bfnome = '" & txtNome.Text & "'," & _
"bfend = '," & txtEndereço.Text & "'," & _
"bftel = '," & txtTelefone.Text & "'," & _
"bfemail = '," & txtEmail.Text & "'," & _
"bfobs = '," & txtObs.Text & "'," & _
"WHERE bfcpf = " & txtDocumento.Text & ";"
End If
.Execute
End With
MsgBox "Gravação concluída com sucesso.", _
vbApplicationModal + vbInformation + vbOKOnly, _
"Gravação OK"
'Chama a sub que limpa os dados do formulário:
LimparTela
Saida:
Screen.MousePointer = vbDefault
Set cnnComando = Nothing
Exit Sub
errGravacao:
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

Private Sub LimparTela()
'Chama a sub LimparDados para limpar os campos do formulário:
LimparDados
'Desabilita o botão Excluir:
cmdExcluir.Enabled = False
'Apaga o conteúdo do campo CodUsuario e lhe passa o foco:
txtDocumento.Text = Empty
txtDocumento.SetFocus
End Sub

Private Sub ExcluirRegistro()
Dim cnnComando As New ADODB.Command
Dim vOk As Integer
On Error GoTo errExclusao
'Solicita confirmação da exclusão do registro:
vOk = MsgBox("Confirma a exclusão desse registro?", _
vbApplicationModal + vbDefaultButton2 + vbQuestion + vbYesNo, _
"Exclusão")
If vOk = vbYes Then
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnCardeal
.CommandType = adCmdText
'Cria o comando SQL:
.CommandText = "DELETE FROM balcafi WHERE bfcpf = " & _
txtDocumento.Text & ";"
.Execute
End With
MsgBox "Registro excluído com sucesso.", _
vbApplicationModal + vbInformation + vbOKOnly, _
"Exclusão OK"
'Chama a sub que apaga todos os campos do formulário:
LimparTela
End If

Saida:
Screen.MousePointer = vbDefault
Set cnnComando = Nothing
Exit Sub

errExclusao:
With Err
If .Number <> 0 Then
MsgBox "Houve um erro durante a exclusão do registro.", _
vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
.Number = 0
GoTo Saida
End If
End With
End Sub

USUARIO.EXCLUIDOS 08/05/2006 11:07:34
#145459
Cara vc tem q converter o banco de dados para access 97 !!!!Falow espero ter ajudado!
DIOGOMUNARIN 08/05/2006 11:37:54
#145470
vou te mandar uma apostila por email blz...ah se vc nao quiser converter vc pode apenas mudar a conexao...ja q vc deve pode estar usando a versao errada da conexao....se for isso muda para Provider=Microsoft.Jet.OLEDB.4.0;
USUARIO.EXCLUIDOS 08/05/2006 12:39:32
#145489
Resposta escolhida
Cara ... seu campo de CPF é texto ou numerico no banco ??

Se for texto a sintax errada esta aqui:

"SELECT * FROM balcafi WHERE bfcpf = " & Val
(txtDocumento.Text) & ";"

O banco só entende que é texo se vc colocar o '
Fica assim:

"SELECT * FROM balcafi WHERE bfcpf = '" & Val
(txtDocumento.Text) & "'"

Espero ter ajudado

Tópico encerrado , respostas não são mais permitidas