Ir ao conteúdo
  • Cadastre-se

Novato


Avila

Posts recomendados

Estou aprendendo e fazendo uma aplicação simples em VB6 para aprendizado, mas quando vou fazer a gravação do registro ele da erro.

Faz a exclusão e a limpeza dos registro normalmente mas a gravação de um novo registro sempre da erro quando vai gravar no banco de dados . Alguem pode me ajudar com isso, abaixo segue o programa:

obs: tem um modulo com a seguinte linha de comando:

Public cnnBiblio As New ADODB.Connection

Abaixo o Programa

Dim vInclusao As Boolean
Private Sub Form_Load()
'Centraliza o formulário na área de trabalho do MDI:
Me.Left = (frmBiblio.ScaleWidth - Me.Width) / 2
Me.Top = (frmBiblio.ScaleHeight - Me.Height) / 2
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
'Se a tecla Enter foi pressionada, passa o foco para o próximo controle na
'seqüência de TabIndex:
If KeyAscii = vbKeyReturn Then
SendKeys "{Tab}"
KeyAscii = 0
End If
End Sub
Private Sub txtCodUsuario_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(txtCodUsuario.Text) = 0 Then
MsgBox "Não foi digitado um código válido, verifique.", _
vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
Exit Sub
End If
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
'Monta o comando SELECT para selecionar o registro na tabela:
.CommandText = "SELECT * FROM Usuarios WHERE CodUsuario = " & _
txtCodUsuario.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:
txtNomeUsuario.Text = !NomeUsuario
txtEndereco.Text = !Endereco
txtCidade.Text = !Cidade
txtEstado.Text = !Estado
txtCEP.Text = !CEP
txtTelefone.Text = Empty & !Telefone
'Identifica a operacao como 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
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:
txtNomeUsuario.Text = Empty
txtEndereco.Text = Empty
txtCidade.Text = Empty
txtEstado.Text = Empty
txtCEP.Text = Empty
txtTelefone.Text = Empty
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
'Verifica qual foi o botão clicado:
Select Case Button.Index
Case 1
'Botão Gravar:
GravarDados
Case 2
'Botão Limpar:
LimparTela
Case 3
'Botão Excluir:
ExcluirRegistro
Case 4
'Botão Retornar:
Unload Me
End Select
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 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 aconteceu um erro de digitação, sai da sub sem gravar:
If vErro Then Exit Sub
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
'Verifica a operação e cria o comando SQL correspondente:
If vInclusao 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
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:
Toolbar1.Buttons(3).Enabled = False
'Apaga o conteúdo do campo CodUsuario e lhe passa o foco:
txtCodUsuario.Text = Empty
txtCodUsuario.Enabled = True
txtCodUsuario.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 = cnnBiblio
.CommandType = adCmdText
'Cria o comando SQL:
.CommandText = "DELETE FROM Usuarios WHERE CodUsuario = " & _
txtCodUsuario.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
Private Sub txtNomeUsuario_LostFocus()
'Converte a primeira letra de cada palavra digitada em maiúscula,
'e as demais em minúsculas:
txtNomeUsuario.Text = StrConv(txtNomeUsuario.Text, vbProperCase)
End Sub
Private Sub txtCidade_LostFocus()
txtCidade.Text = StrConv(txtCidade.Text, vbProperCase)
End Sub
Private Sub txtEndereco_LostFocus()
txtEndereco.Text = StrConv(txtEndereco.Text, vbProperCase)
End Sub
Private Sub txtEstado_LostFocus()
'Converte a sigla do Estado digitada em letras maiúsculas:
txtEstado.Text = UCase(txtEstado.Text)
End Sub
Private Sub txtCEP_LostFocus()
'Formata o CEP digitado:
txtCEP.Text = Format(txtCEP.Text, "00000-000")
End Sub

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...