• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vb_beginner

[vb6] erro marado

7 mensagens neste tópico

ola ao ppl do portugal a programar

deparome kom este erro ja algum tempo mas n sei o k é? :rant_01:

aki vai

Err.number "91"

err.description "object variable or with lock variable not set"

o k akontexe e k e faz a pesquisa na nesma mas da sempre este erro!!!!! :wallbash:

n xei o k fazer?????????

xe poderem dêm uma ajuda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hhhmmm.. só pelo numero do erro n se, talvez a parte do código que dá esse erro ajuda-se :D

Vê os resultados da pesquisa, talvez te ajudem... de Qualquer maneira verifica se declaraste todas as variaveis e/ou objectos. Outra coisa... no inicio do código fonte (cá mesmo em cima na primeira linha) se não tens mete a seguinte linha (antes de tudo) Option Explicit (serve para te obrigar a declarar variaveis e outras coisas), depois envez de fazeres o simples o simples "Run", faz um "Run with Full Compile" para te verificar todo o código.

Se mesmo assim não resultar, copia praqui a parte do código que te esta a dar erro  :D

http://www.google.pt/search?hl=pt-PT&q=runtime+91+on+VB6&btnG=Pesquisar&meta=

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tenho por defeito pra aparecer option Explicit e normalmente parcorrer uso o run with full!

por isso n e dai!

mas vou tentar pesquisar para saber!

vou postar aki a parte do codigo que da erro.

tem e um problema tem as linhas tds comentadas.

Private Sub pesquisar()
'função criada apenas para esta janela("Tabela de Preços") que será chamada com o nome de "pesquisar"

Dim pesqnum As Integer
'variável para descobrir qual foi a caixa que utilizou

Dim RdoAux As New clsGeneric
'declaração da variável "RdoAux" que irá iniciar a classe com o nome"clsGeneric"
    
    On Error GoTo erro
    'em caso de erro salta para o fim do programa, para o erro
    
    tbl_pesquisa_pesq.Cols = 6
    'comando que diz que a tabela "tbl_pesquisa_pesq" tem 6 colunas
    
    If pesq_s = 1 Then Exit Sub
    'caso a variável "pesq_s" igual a 1 termina a função pesquisar
    
    Screen.MousePointer = vbHourglass
    'cursor do rato muda para o modo ocupado
    
    mSQL = "Select * from Registos where familia <> '0' "
    'instrução(query) em SQL que vai pedir a base dados todos os produtos da tabela "Registos" que não sejam iguam a 0
    
    If cmbSerie <> "" Then
    'incio da condição cmbserie que caso não tenha sido seleccionado a serie em branco
    
        mSQL = mSQL & " And Descricao = '" & ConvertePlica(cmbSerie) & "'"
        'adicionara á pesquisa o valor da serie selecionado
        
        pesqnum = 1
        'e a variável "pesqnum" assumirá o valor 1
    
    End If
    'fim da condição cmbSerie
    
    If txtCodigo <> "" Then
    'inicio da condição txtCodigo que quando a caixa de texto "txtcodigo"não tiver em branco
        
        mSQL = mSQL & " And CodProd like '%" & ConvertePlica(txtCodigo) & "%'"
        'adicionara á pesquisa o valor do código do produto
        
        pesqnum = 2
        'e a variável "pesqnum" assumirá o valor 2
    
    End If
    'fim da condição txtCodigo
    
    If txtDescricao <> "" Then
    'inicio da condição txtDescricao caso a caixa de texto for diferente de nula
    
        mSQL = mSQL & " And Descricao1 like '%" & ConvertePlica(txtDescricao) & "%'"
        'adicionara o valor da caixa de texto a pesquisa
        
        pesqnum = 3
        'a variavel "pesqnum" assumirá o valor de 3
        
    End If
    'fim da condição txtDescricao
        
    mSQL = mSQL & " Order by CodProd"
    'os valores serão amostrados por ordem do codigo do produto
    
    Result = RdoAux.openRSET(mSQL)
    'comando para execturar as instruções de SQL dadas anteriormente
    
        If Not RdoAux.RDORSet.EOF Then
        'vai verificar se a pesquisa foi até ao fim da tabela e se existem registos _
        de produtos com os valores anteriormente digitados
              
              i = 1
              'a variável "i" assumirá o valor 1 para iniciar a amostra dos dados no ecran
                     
                     Do Until RdoAux.RDORSet.EOF
                     'esta instrução e´para o programa correr todos os produtos dados pela variável "Result"
                                 
                                 tbl_pesquisa_pesq.Rows = i + 1
                                 'esta instrução adiciona mais 1 linha a tabela "tbl_pesquisa_pesq"
                                 
                                 tbl_pesquisa_pesq.TextMatrix(i, 0) = Trim(RdoAux.RDORSet!codprod)
                                 'o Código do Produto corrente irá aparecer na coluna Referencia na tabela"tbl_pesquisa_pesq"
                                 
                                 tbl_pesquisa_pesq.TextMatrix(i, 1) = Trim(RdoAux.RDORSet!Descricao1)
                                 'a Descrição do Produto irá aparecer na coluna Descrição da tabela"tbl_pesquisa_pesq"
                                
                                 tbl_pesquisa_pesq.TextMatrix(i, 2) = Trim(RdoAux.RDORSet!codbarras)
                                 'o Código de Barras do Produto corrente irá aparecer na coluna C.Barras da tabela "tbl_pesquisa_pesq"
                                 
                                 tbl_pesquisa_pesq.TextMatrix(i, 3) = Trim(RdoAux.RDORSet!QtdMultVenda)
                                 'a Quantidade do Produto corrente irá aparecer na coluna QT Emb da tabela "tbl_pesquisa_pesq"
                                 
                                 tbl_pesquisa_pesq.TextMatrix(i, 4) = Trim(RdoAux.RDORSet!unidstk)
                                 'a Unidade do Produto corrente irá aparecer na coluna Un da tabela "tbl_pesquisa_pesq"
                                 
                                 tbl_pesquisa_pesq.TextMatrix(i, 5) = Trim(RdoAux.RDORSet!PVP1)
                                 'o Preço de Venda ao Publico do Produto corrente irá aparecer na coluna Preço da tabela "tbl_pesquisa_pesq"
                                 
                                 i = i + 1
                                 'vai somar mais 1 ao valor de "i" para passar pro Produto seguinte
                                 
                                 RdoAux.RDORSet.MoveNext
                                 'move a pesquisa para o Produto seguinte
                                 
                    Loop
                    'volta para o "Do Until" para começar amostrar o produto seguinte
                    
                    pesq_s = 2
                    'a variável pesq_s assumirá o valor de 2 para poder fazer pesquisas
        Else
        'caso não haja produtos com os valores anteriormente digitados
        
            If pesqnum = 1 Then MsgBox "Série não encontrada!", vbOKOnly + vbCritical, "Série"
            'caso tenha sido com a combo box apresentará uma mensagem a dizer "Série não encontrada!"
            
            If pesqnum = 2 Then MsgBox "Código de Produto não encontrado!", vbOKOnly + vbCritical, "Código Produto"
            'caso tivesse utilizado a txtcodigo apresentará uma mensagem no encran a dizer "Código de Produto não encontrado!"
            
            If pesqnum = 3 Then MsgBox "Descrição não encontrada!", vbOKOnly + vbCritical, "Descrição"
            'caso fosse utilizado txtdescricao apresentará uma mensagem a dizer "Descrição não encontrada!"
            
            pesq_s = 1
            'a variavel pesq_s assumirá o valor 1
            
            cmd_limpar_Click
            'eta função irá limpar as  caixas de texto e apagara os produtos na tabela "tbl_pesquisa_pesq"
            
            Screen.MousePointer = vbDefault
            'o cursor do rato modo para o modo normal
            
        End If
        'fim  da condição de "If Not RdoAux.RDORSet.EOF Then"
        
    Screen.MousePointer = vbDefault
    'o cursor do rato modo para o modo normal
    
    
    Set RdoAux = Nothing
    '

erro:
    If Not Err.Number = 0 Then MsgBox "Update Error No. " & Err.Number & ": " & Err.Description, vbCritical, "Error"
    Screen.MousePointer = vbDefault
End Sub
 

se soberes de mais alguma koixa vai dizendo!!  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epa.... primeiro devias ter posto issu com a ferramenta que o forum tem para postar código que é o GeSHi. Se não sabes o que é, é aquela combobox que diz GeSHi, para utilizates basta clicares, escolhes a  linguagem(neste caso é VB) e depois colocas o código.

E depois quando pedi o código que dava erro não era a função inteira... falava apenas na linha que dá o erro. Quando te dá o erro não te dá a opção "End" e "Debug". Se carregares na opção "Debug" ela vaite selecionar a linha que esta a a dar erro. É essa linha que eu pedi  :D

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desde ja peço desculpa mas n xabia que tinha que utiliza a combo box para por o codigo  :D

agora topa isto

se n tiver controlo de erros o proragama n da erro nenhum!!!!! :wallbash:

sinceramente na sei ke fazer. :rant_01:

e tenho k entregar o trabalho quarta feira

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:bored:

Epa vê bem essas linhas em que estas a trabalhar com base de dados, na minha opinião passa-se algo com a manipolação da base de dados, mas comom eu n percebo muito de base de dados...

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

adiciono no controlo de o err.number 91

obrigado na mesma!!!

:D

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora