none
Rotina de procura por registros nulos... RRS feed

  • Pergunta

  • 'Olá. Preciso de um help da comunidade.

    'Tenho um project, feito em VB6, onde é feita uma procura de registros cujo campo <Retorno> não tenha ainda sido

    'preenchido (ex.: o filme ainda não voltou).

    'Na rotina abaixo, funciona OK. Contudo, se não houver nenhum filme emprestado e ainda não devolvido, somente

    'com o tratamento de erro consigo essa informação. Como poderia fazer para obter essa mesma resposta,

    'porém sem ser através da rotina que intercepta erro lógico? (ao excluir a cláusula <on error goto>, surge a msg

    'de erro <No current records>

    'Funcionamento da rotina.

    'Ao clicar no botão <cmdEmp>, a rotina é executada...

    On Error GoTo trataerro
        Dim Procura As String
            If Data1.Recordset.Fields("Retorno") <> "" Then
            Data1.Recordset.MoveNext
            cmdEmp_Click
            Exit Sub

    Else
            MsgBox "Há registros de filmes emprestados ...", vbOKOnly, "Verifique a lista a seguir."
            Procura = "SELECT * FROM Transações WHERE Not IsNull(Saida) and IsNull(Retorno) ORDER BY Saida DESC"
            Data1.RecordSource = Procura
            Data1.Refresh
            cmdTudo.Enabled = True
            cmdApagar.Enabled = False
            cmdEmp.Enabled = False
            End If
            Exit Sub
    trataerro:         MsgBox "Não há registros de filmes emprestados...", vbOKOnly, "Filmes na prateleira."
                       Data1.Recordset.MoveFirst
    End Sub

    Obrigado...


    Falvieira

    terça-feira, 3 de abril de 2012 18:36

Respostas

  • 'Resolvi da seguinte maneira:

    Private Sub cmdTeste_Click()
    Dim Procura As String, Procura_2 As String
        Procura = "SELECT * FROM Transações WHERE Retorno="" ORDER BY Saida DESC"
            Do Until Not Data1.Recordset.EOF = True
                MsgBox "Não há filmes emprestados...", vbOKOnly, "Filmes na prateleira."
                Data1.Recordset.MoveFirst
                Exit Sub
            Loop
                If Not Data1.Recordset.Fields("Retorno") = "" Then
                    Data1.Recordset.MoveNext
                    cmdTeste_Click
                    Exit Sub
             Else
                MsgBox "Há filme(s) emprestado(s)." & Chr(13) & _
                "Veja a listagem a seguir...", vbOKOnly, "Filme(s) fora da prateleira."    'Exibe os dados num grid
                Procura_2 = "SELECT * FROM Transações WHERE Not IsNull(Saida) and IsNull(Retorno) ORDER BY Saida DESC"
                'O script para SQL é o seguinte: <Not IsNull> e <IsNull>... 
                Data1.RecordSource = Procura_2
                Data1.Refresh
                cmdTudo.Enabled = True
                cmdApagar.Enabled = False
                cmdTeste.Enabled = False
                Exit Sub
            End If
    End Sub

    t+ e obrigado pela colaboração.


    Falvieira

    • Sugerido como Resposta J4ND3R sexta-feira, 6 de abril de 2012 06:46
    • Marcado como Resposta Levi DomingosModerator sexta-feira, 6 de abril de 2012 19:52
    quinta-feira, 5 de abril de 2012 23:27

Todas as Respostas

  • Faz o select normalmente. fora do select faz o tratamento do campo nulo

    if datarecor.campo = "" then

    goto 

    End if


    One word frees us of all the weight and pain of life: that word is love.

    terça-feira, 3 de abril de 2012 22:02
    Moderador
  • 'Resolvi da seguinte maneira:

    Private Sub cmdTeste_Click()
    Dim Procura As String, Procura_2 As String
        Procura = "SELECT * FROM Transações WHERE Retorno="" ORDER BY Saida DESC"
            Do Until Not Data1.Recordset.EOF = True
                MsgBox "Não há filmes emprestados...", vbOKOnly, "Filmes na prateleira."
                Data1.Recordset.MoveFirst
                Exit Sub
            Loop
                If Not Data1.Recordset.Fields("Retorno") = "" Then
                    Data1.Recordset.MoveNext
                    cmdTeste_Click
                    Exit Sub
             Else
                MsgBox "Há filme(s) emprestado(s)." & Chr(13) & _
                "Veja a listagem a seguir...", vbOKOnly, "Filme(s) fora da prateleira."    'Exibe os dados num grid
                Procura_2 = "SELECT * FROM Transações WHERE Not IsNull(Saida) and IsNull(Retorno) ORDER BY Saida DESC"
                'O script para SQL é o seguinte: <Not IsNull> e <IsNull>... 
                Data1.RecordSource = Procura_2
                Data1.Refresh
                cmdTudo.Enabled = True
                cmdApagar.Enabled = False
                cmdTeste.Enabled = False
                Exit Sub
            End If
    End Sub

    t+ e obrigado pela colaboração.


    Falvieira

    • Sugerido como Resposta J4ND3R sexta-feira, 6 de abril de 2012 06:46
    • Marcado como Resposta Levi DomingosModerator sexta-feira, 6 de abril de 2012 19:52
    quinta-feira, 5 de abril de 2012 23:27