Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos,tipo,eu abro minha conexão com o caminho certo e antes de incluir,mas ele dá um erro:
http://img124.imageshack.us/my.php?image=prob1jv7.png
O código é esse:
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub cmdGravar_Click()
Dim sql As New ADODB.Command
'Abre a conexão
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Adm\Meus documentos\PROJETOS\VB\CONTROLE.mdb;"
'Verifica se o campo nome está vazio
If txtNome = "" Then
'Então emite mensagem de erro ao usuário
MsgBox "Nome do cliente é obrigatório !", vbOKOnly + vbCritical, "Cadastrar cliente"
'Põe foco no campo nome
txtNome.SetFocus
'Abandona a rotina
Exit Sub
End If
'Monta a instrução sql e inicia a inclusão do registro
With sql
.CommandText = "INSERT INTO Clientes (Nome,Cpf,Datanasc,Cep,Endereco,Telefone,Celular,Obs,Bairro) VALUES (?,?,?,?,?,?,?,?,?)"
.Parameters.Append .CreateParameter("Nome", adVarChar, adParamInput, 50)
.Parameters.Append .CreateParameter("Cpf", adVarChar, adParamInput, 14)
.Parameters.Append .CreateParameter("Datanasc", adDate, adParamInput, 8)
.Parameters.Append .CreateParameter("Cep", adVarChar, adParamInput, 9)
.Parameters.Append .CreateParameter("Endereco", adVarChar, adParamInput, 50)
.Parameters.Append .CreateParameter("Telefone", adVarChar, adParamInput, 8)
.Parameters.Append .CreateParameter("Celular", adVarChar, adParamInput, 8)
.Parameters.Append .CreateParameter("Obs", adVarChar, adParamInput, 150)
.Parameters.Append .CreateParameter("Bairro", adVarChar, adParamInput, 50)
.Parameters("Nome") = txtNome
If txtCNPJ = Empty Then
.Parameters("Cpf") = Null
Else
.Parameters("Cpf") = txtCNPJ
End If
If mskNascimento = Empty Then
.Parameters("Datanasc") = Null
Else
.Parameters("Datanasc") = mskNascimento
End If
If mskCep = Empty Then
.Parameters("Cep") = Null
Else
.Parameters("Cep") = mskCep
End If
If txtEndereco = Empty Then
.Parameters("Endereco") = Null
Else
.Parameters("Endereco") = txtEndereco
End If
If txtTelefone = Empty Then
.Parameters("Telefone") = Null
Else
.Parameters("Telefone") = txtTelefone
End If
If txtCelular = Empty Then
.Parameters("Celular") = Null
Else
.Parameters("Celular") = txtCelular
End If
If txtObs = Empty Then
.Parameters("Obs") = Null
Else
.Parameters("Obs") = txtObs
End If
If txtBairro = Empty Then
.Parameters("Bairro") = Null
Else
.Parameters("Bairro") = txtBairro
End If
.Execute
End With
'Emite mensagem ao usuário no final da inclusão
MsgBox "Cliente incluído com sucesso ! ", vbOKOnly + vbInformation, "Cadastrar cliente"
'Chama a função para limpar os campos do formulário
cmdLimpar_Click
Call fuLimpar(Me)
'Põe foco no campo nome
txtNome.SetFocus
'Abandona a rotina
Exit SubContinuou a mesma coisa :(
Reproduzi o seu código com a minha alteração e funcionou aqui. Dê uma olhada!
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub cmdGravar_Click()
Dim sql As New ADODB.Command
'Abre a conexão
'cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Adm\Meus documentos\PROJETOS\VB\CONTROLE.mdb;"
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\141142\Meus documentos\Marcos - BMC\Arquivos - Marcos\Database\CONTROLE.mdb;"
'Verifica se o campo nome está vazio
If txtNome = "" Then
'Então emite mensagem de erro ao usuário
MsgBox "Nome do cliente é obrigatório !", vbOKOnly + vbCritical, "Cadastrar cliente"
'Põe foco no campo nome
txtNome.SetFocus
'Abandona a rotina
Exit Sub
End If
'Monta a instrução sql e inicia a inclusão do registro
With sql
Set .ActiveConnection = cn
.CommandText = "INSERT INTO Clientes (Nome,Cpf,Datanasc,Cep,Endereco,Telefone,Celular,Obs,Bairro) VALUES (?,?,?,?,?,?,?,?,?)"
.Parameters.Append .CreateParameter("Nome", adVarChar, adParamInput, 50)
.Parameters.Append .CreateParameter("Cpf", adVarChar, adParamInput, 14)
.Parameters.Append .CreateParameter("Datanasc", adDate, adParamInput, 8)
.Parameters.Append .CreateParameter("Cep", adVarChar, adParamInput, 9)
.Parameters.Append .CreateParameter("Endereco", adVarChar, adParamInput, 50)
.Parameters.Append .CreateParameter("Telefone", adVarChar, adParamInput, 8)
.Parameters.Append .CreateParameter("Celular", adVarChar, adParamInput, 8)
.Parameters.Append .CreateParameter("Obs", adVarChar, adParamInput, 150)
.Parameters.Append .CreateParameter("Bairro", adVarChar, adParamInput, 50)
.Parameters("Nome") = txtNome
If txtCNPJ = Empty Then
.Parameters("Cpf") = Null
Else
.Parameters("Cpf") = txtCNPJ
End If
If MskNascimento = Empty Then
.Parameters("Datanasc") = Null
Else
.Parameters("Datanasc") = MskNascimento
End If
If MskCEP = Empty Then
.Parameters("Cep") = Null
Else
.Parameters("Cep") = MskCEP
End If
If txtEndereco = Empty Then
.Parameters("Endereco") = Null
Else
.Parameters("Endereco") = txtEndereco
End If
If txtTelefone = Empty Then
.Parameters("Telefone") = Null
Else
.Parameters("Telefone") = txtTelefone
End If
If TxtCelular = Empty Then
.Parameters("Celular") = Null
Else
.Parameters("Celular") = TxtCelular
End If
If txtObs = Empty Then
.Parameters("Obs") = Null
Else
.Parameters("Obs") = txtObs
End If
If txtBairro = Empty Then
.Parameters("Bairro") = Null
Else
.Parameters("Bairro") = txtBairro
End If
.Execute
End With
'Emite mensagem ao usuário no final da inclusão
MsgBox "Cliente incluído com sucesso ! ", vbOKOnly + vbInformation, "Cadastrar cliente"
'Chama a função para limpar os campos do formulário
'cmdLimpar_Click
'Call fuLimpar(Me)
'Põe foco no campo nome
txtNome.SetFocus
'Abandona a rotina
Exit Sub
End Sub
Vo testa ak iqq coisa te do um toke
blza :D deu certo agora,só mudei o path e rodo sussegado,pode ser algum erro de digitação meu que estava causando o erro então,mas o importante que agora funcionou,vou dar mais uma olhada no código.
muuuuiiiito obrigado cara,faz dias q to tentando arrumar isso pois sou leigo em vb.
Valeu !
Precisando, tamos ai!!!
Sucesso!!!!
Obrigado :)
Analisando seu código, percebi que faltou a seguinte instrução:
Set .ActiveConnection = cn
coloca logo após o with sql e faça um teste. ok?
Abraço