Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) erro 3251


tito13

Pergunta

Bom dia

Esta me retornando erro 3251 ( O provedor atual não oferece suporte para a interface necessaria a funcionalidade do indice) na sub abaixo

Private Sub LocalizarRegistro()
Dim ProcuraCodigo As String
    ProcuraCodigo = InputBox("Digite o Codigo a ser Consultado")
    rsSelecao.Seek "=", ProcuraCodigo
    If rsSelecao.EOF = True Then
        MsgBox "Registro não Encontrado", vbExclamation
        rsSelecao.MovePrevious
    End If
Mostrar
End Sub

alguém poderia me dizer onde estou errando??

Uso Access 2003

Ado 2.8

vb6

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Gabrieldb, valeu a dica.

o erro ta sinalizando na linha

rsSelecao.Seek "=", ProcuraCodigo
e o acesso não deve ser porque todas as outras subs estao funcionando, mas la vai:
Private Sub Form_Load()
Dim cod As Long
    rsSelecao.Open "Select * From Clientes", cnnOleopl, 1, 2
    If rsSelecao.RecordCount = 0 Then
        cod = "00001"
    Else
        rsSelecao.MoveLast
        cod = rsSelecao("Numero_OS") + 1
    End If
    TxtNumOS.Text = cod
End Sub

Fico no aguardo

Link para o comentário
Compartilhar em outros sites

  • 0

troque a linha:

rsSelecao.Open "Select * From Clientes", cnnOleopl, 1, 2
por
Set rsSelecao = cnnOleopl.Execute("Select * From Clientes")
EDITADO: o seek não seria assim??
rsSelecao.Seek "Nome_do_campo = " & ProcuraCodigo

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi

não deu certo com sua dica, retorna mesma resposta. Então tentei assim:

Private Sub LocalizarRegistro()
Dim ProcuraCodigo As String
    With cnnComando
            .ActiveConnection = cnnOleopl
            .CommandType = adCmdText
            'cria o modulo sql
            .CommandText = "Select * From Clientes"
            .Execute
    End With
    ProcuraCodigo = InputBox("Digite o Codigo a ser Consultado")
    rsSelecao.Seek "Numero_Os = " & ProcuraCodigo
    If rsSelecao.EOF = True Then
        MsgBox "Registro não Encontrado", vbExclamation
        rsSelecao.MovePrevious
    End If
    Mostrar
End Sub

Mas infelizmente retornou mesma resposta

Vou tentando

Link para o comentário
Compartilhar em outros sites

  • 0

antes de abrir a conexao, tenta por então esse codigo:

cnnOleopl.CursorLocation = adUseClient
EDITADO: ou e nesse seu codigo ai você nem associou o recordset ao command. acho q você teria q fazer:
Set rsSelecao = .Execute

mas vai dar o mesmo efeito do codigo q passei.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

tentei dessa forma:

Private Sub LocalizarRegistro()
Dim ProcuraCodigo As String
    With cnnComando
            .ActiveConnection = cnnOleopl
            .CommandType = adCmdText
            'cria o modulo sql
            .CommandText = "Select * From Clientes where Numero_OS = " & TxtNumOS.Text & ";"
            Set rsSelecao = .Execute
    End With
    ProcuraCodigo = InputBox("Digite o Codigo a ser Consultado")
    rsSelecao.Seek "Numero_OS=", ProcuraCodigo
    If rsSelecao.EOF = True Then
        MsgBox "Registro não Encontrado", vbExclamation
        rsSelecao.MovePrevious
    End If
    Mostrar
End Sub
e assim:
Private Sub LocalizarRegistro()
Dim ProcuraCodigo As String
    cnnOleopl.CursorLocation = adUseClient
    Set rsSelecao = cnnOleopl.Execute("Select * From Clientes")
    ProcuraCodigo = InputBox("Digite o Codigo a ser Consultado")
    rsSelecao.Seek "Numero_OS=", ProcuraCodigo
    If rsSelecao.EOF = True Then
        MsgBox "Registro não Encontrado", vbExclamation
        rsSelecao.MovePrevious
    End If
    Mostrar
End Sub

e o retono e o mesmo.

não desisto, espero que voce tambem não

Link para o comentário
Compartilhar em outros sites

  • 0

então. mas esse codigo aqui:

cnnOleopl.CursorLocation = adUseClient
não é pra por nessa sub. é pra por antes de abrir a conexao. tipo, deve ter algum lugar no programa q você usa esse codigo pra abrir a conexao:
cnnOleopl.Open
é antes dessa linha q você tem q por aquela otra q passei acima. e quanto ao seek:
rsSelecao.Seek "Numero_OS=", ProcuraCodigo
não é pra por essa virgula. o segundo parametro serve pra passar o sentido da busca. você teria q concatenar a string:
rsSelecao.Seek "Numero_OS=" & ProcuraCodigo
de qualquer forma, não costumo usar o Seek, se você tiver otros problemas com ele, use o Find q é garantido, sempre faco assim:
rsSelecao.Find "Numero_OS = " & ProcuraCodigo

Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi

muito obrigado!!

usei o metodo Find e funcionou beleza. o codigo ficou assim:

Private Sub LocalizarRegistro()
Dim ProcuraCodigo As String
    Set rsSelecao = cnnOleoPl.Execute("Select * From Clientes")

    ProcuraCodigo = InputBox("Digite o Codigo a ser Consultado")
    rsSelecao.Find "Numero_OS = " & ProcuraCodigo
    If rsSelecao.EOF = True Then
        MsgBox "Registro não Encontrado", vbExclamation
        rsSelecao.MovePrevious
    End If
    Mostrar
End Sub

Valeu

t+

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...