Postada em 08/08/2007 16:38 hs
Boa tarde. Estou iniciando estudos em VB6 e estou apanhando pra fazer funcionar uma rotina de gravação em um BD Access 2000. Segue abaixo o código que estou tentando fazer essa rotina
'Num módulo chamado: AbreBD
Dim ConectaBD As New ADODB.Connection
'Ao abrir o form de produtos eu coloco para fazer a conexão com o BD: AbreBD.ConectaBD.ConnectionString= ""Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & app.path &"DatabaseSN.mdb;"
'Abre o BD: AbreBD.ConectaBD.open Msgbox "Base de Dados aberto com sucesso!!", vbInformation + vbOkOnly,"AVISO" Na rotina de gravação de dados está assim:
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 = ConectaBD .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
Onde será que está o erro nesta rotina? Será que errei os comandos SQL's :(? Por favor, se puderem me ajudar agradeço pois é um trabalho de aprendizagem.;)
Edson:P
|