1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[ajuda] vb6

Discussão em 'Programação' iniciada por .sys, 14 de Maio de 2012. (Respostas: 5; Visualizações: 748)

  1. .sys

    .sys Power Member

    boas tardes , bem é o seguinte eu tou a tentar a aceder a uma tabela da bd com um data mas se a tabela tiver vazia da erro e queria conseguir resolver esse erro eu de momento tentei isto

    On Error GoTo TrataErro
    If datas.BOFAction = False Then
    cont = 0
    datas.Recordset.MoveFirst
    Do
    cont = cont + 1
    datas.Recordset.MoveNext
    Loop Until datas.Recordset.EOF
    Label1.Caption = "tem " & cont & " pedidos para serem atendidos"
    Else
    Label1.Caption = "tem 0 pedidos para serem atendidos"
    Image1.Enabled = False
    End If
    If Err.Number = 3021 Then
    MsgBox "3"
    Label1.Caption = "tem 0 pedidos para serem atendidos"
    Image1.Enabled = False
    End If

    mas nao da , eu ja tentei varias coisas mas nada qe nao de erro :s
     
  2. Boas,
    já não programo em VB ha algum tempo, mas experimentaste substituir
    Código:
    If datas.BOFAction = False Then
    por
    Código:
    If not datas.recordset.eof Then
     
  3. fmf1966

    fmf1966 Power Member

    Para saberes a quantidade de registos não precisas percorrê-los todos.

    substitui:
    Código:
    cont = 0
    datas.Recordset.MoveFirst
    Do
    cont = cont + 1
    datas.Recordset.MoveNext
    Loop Until datas.Recordset.EOF
    por:
    Código:
    If datas.Recordset.EOF then
        cont = 0
    Else
        datas.Recordset.MoveLast
        cont=datas.Recordset.RecordCount
    End IF

    Ou então faz uma pesquisa SQL baseada na função de agregação COUNT.
     
  4. É preferivel mesmo usar o count(*) do SQL.

    Há situações que o recordcount do recordset não funciona (acho que funciona em DAO e não em ADO)
     
  5. fmf1966

    fmf1966 Power Member

    É sempre preferível utilizar as funções de agregação do SQL.

    Até porque dependendo da quantidade de registos, o recordset nunca carrega todos os registo incialmente, irá carregá-los conforme for preciso, o que obriga a ir para o ultimo registo para obtermos o valor correcto do RecordCount.
     
  6. .sys

    .sys Power Member

    eu resolvi assim :

    On Error GoTo Trata_Erro
    datas.Recordset.MoveFirst
    If datas.Recordset.EOF Then
    Label1.Caption = "Não tem pedidos para serem atendidos"
    Image1.Enabled = False
    Else
    cont = 0
    datas.Recordset.MoveFirst
    Do
    cont = cont + 1
    datas.Recordset.MoveNext
    Loop Until datas.Recordset.EOF
    Label1.Caption = "Existem " & cont & " pedidos para serem atendidos"
    End If
    Trata_Erro:
    Resume Next

    ty na mesma pessoal <3
     
    Última edição: 17 de Maio de 2012

Partilhar esta Página