RUN-TIME ERROR 3709
eis aqui o código,
Quando coloco um código de usuário me informa o seguinte erro:
Run-time error '3709': A operação solicitada requer um obijeto OLE DB Session, para o qual não há suporte do provedor atual.
Onde está o problema?
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
Quando coloco um código de usuário me informa o seguinte erro:
Run-time error '3709': A operação solicitada requer um obijeto OLE DB Session, para o qual não há suporte do provedor atual.
Onde está o problema?
O problema nao é no seu codigo + sim la na parte que vc esta fazendo a conexao... o PROVIDER esta errado...coloquei um outro provedor..
Tenta esse:
flw
Tenta esse:
db.Open "Provider=MSDASQL;
flw
o meu está assim:
Private Sub Timer1_Timer()
On Error GoTo errConexao
cnnBiblio.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" & _
"Data Source=" & App.Path & "\Biblio.mdb;"
cnnBiblio.Open
Unload Me
frmBiblio.Show
Exit Sub
errConexao:
With Err
If .Number <> 0 Then
MsgBox "Houve um erro na conexão com o banco de dados." & _
vbCrLf & "O sistema será encerrado.", _
vbCritical + vbOKOnly + vbApplicationModal, _
"Erro na conexão"
.Number = 0
Set cnnBiblio = Nothing
End
End If
End With
End Sub
'Tenta conectar assim:
Public Sub Conecta()
Set cnn = New Connection
cnn.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source='" & App.Path & "\BolOnLine.mdb';Jet OLEDB:Database Password=241000;"
Set rs = New ADODB.Recordset
rs.Open SqlTabela, cnn, adOpenKeyset, adLockOptimistic, adCmdText
End Sub
Ainda não funcionou, ficou assim:
Private Sub Timer1_Timer()
Set cnnBiblio = New Connection
cnnBiblio.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= '" & App.Path & "\biblio.mdb;'" & _
"Jet OLEDB:Database Password=241000;"
'On Error GoTo errConexao
' cnnBiblio.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
' "Data Source=" & App.Path & "\Biblio.mdb;"
' cnnBiblio.Open
Unload Me
frmBiblio.Show
Exit Sub
errConexao:
With Err
If .Number <> 0 Then
MsgBox "Houve um erro na conexão com o banco de dados." & _
vbCrLf & "O sistema será encerrado.", _
vbCritical + vbOKOnly + vbApplicationModal, _
"Erro na conexão"
.Number = 0
Set cnnBiblio = Nothing
End
End If
End With
End Sub
Faz assim:
flw
[/c]
[c]Private Sub Timer1_Timer()
Set cnnBiblio = New Connection
cnnBiblio.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= '" & App.Path & "\biblio.mdb;'" & _
"Jet OLEDB:Database Password=241000;"
'On Error GoTo errConexao
' cnnBiblio.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
' "Data Source=" & App.Path & "\Biblio.mdb;"
' cnnBiblio.Open
Unload Me
frmBiblio.Show
Exit Sub
errConexao:
With Err
If .Number <> 0 Then
MsgBox "Houve um erro na conexão com o banco de dados." & _
vbCrLf & "O sistema será encerrado.", _
vbCritical + vbOKOnly + vbApplicationModal, _
"Erro na conexão"
.Number = 0
Set cnnBiblio = Nothing
End
End If
End With
End Sub
flw
[/c]
Continua mostrando o mesmo erro na seguinte linha
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 [txt-color=#ff0000]<<<<---DAQUI NÃO PASSA--->>>[/txt-color]
.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
Troque isto aqui:
Por isto aqui:
With cnnComando
.ActiveConnection = cnnBiblio '#ff0000'><<<<---DAQUI NÃO PASSA--->>>
.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
Por isto aqui:
rsSelecao.Open "SELECT * FROM Usuarios WHERE CodUsuario = " & _
txtCodUsuario.Text, cnnBiblio, 3
Blz Marcelohf,
mas o problema é que eu não estou conseguindo conectar com o banco de dados, biblio.mdb que está na mesma pasta do projeto, está dando o erro citado no tópico, já tentei da forma que o SILVERDRAGON e o FLAVIOGUILHERME me passaram mas ainda assim não consegui conectar, entendam que sou iniciante e estou fazendo os exercÃÂÂcios de uma apostila pois não tenho tantos argumentos pra identificar o problema.
mas o problema é que eu não estou conseguindo conectar com o banco de dados, biblio.mdb que está na mesma pasta do projeto, está dando o erro citado no tópico, já tentei da forma que o SILVERDRAGON e o FLAVIOGUILHERME me passaram mas ainda assim não consegui conectar, entendam que sou iniciante e estou fazendo os exercÃÂÂcios de uma apostila pois não tenho tantos argumentos pra identificar o problema.
Problema resolvido pessoal o erro era que eu coloquei a conexão em um formulário que não estava iniciado então nunca iria conectar. rsrsrsrsrs.
Desculpem o atrapalho mas iniciante é assim mesmo.
Fiquem com Deus.
Desculpem o atrapalho mas iniciante é assim mesmo.
Fiquem com Deus.
Tópico encerrado , respostas não são mais permitidas