MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]SQL.RecordCount com valores errados

    avatar
    nucosta
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 25
    Registrado : 24/07/2012

    [Resolvido]SQL.RecordCount com valores errados Empty [Resolvido]SQL.RecordCount com valores errados

    Mensagem  nucosta em 21/10/2020, 17:11

    Boa tarde,

    Este código (consulta) dá resultado errado, alguém saberá porquê?

    Set dbs = CurrentDb()
       SQL = "SELECT teste.testeid FROM teste  WHERE testequantidade > 0 AND testenumero = 53;"
       
       Set SQL = dbs.OpenRecordset(SQL)
       
       If SQL.RecordCount = 1 Then
       MsgBox "1 registo."
       Else
       MsgBox SQL.RecordCount & " Registos."
       End If


    Coloco exemplo em teste.

    No comando do lado esquerdo deveria aparecer um registo como podem ver na tabela, já no outro deveria aparecer os 3 registos.
    Não consigo perceber porquê.

    Obrigado
    Nuno
    Anexos
    [Resolvido]SQL.RecordCount com valores errados AttachmentTeste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (165 Kb) Baixado 1 vez(es)


    Última edição por nucosta em 21/10/2020, 20:17, editado 1 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2527
    Registrado : 22/11/2016

    [Resolvido]SQL.RecordCount com valores errados Empty Re: [Resolvido]SQL.RecordCount com valores errados

    Mensagem  DamascenoJr. em 21/10/2020, 19:30

    Set SQL = dbs.OpenRecordset(SQL)

    Call SQL.movelast: Call SQL.movefirst

    If SQL.RecordCount = 1 Then
    MsgBox "1 registo."
    Else
    MsgBox SQL.RecordCount & " Registos."
    End If

    O VBA é aguniado!
    Dê-lhe uma tarefa e ele logo quer trabalhar. Pedindo para antes ele ir no final do conjunto de registros e voltar, assim ele finalmente vai saber quantos registros tem.
    avatar
    nucosta
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 25
    Registrado : 24/07/2012

    [Resolvido]SQL.RecordCount com valores errados Empty (RESOLVIDO) SQL.RecordCount com valores errados

    Mensagem  nucosta em 21/10/2020, 20:16

    Obrigado Damasceno,

    Tens toda a razão, o problema é que se não tiver registos dá erro.

    Tive de fazer:

    Set SQL = dbs.OpenRecordset(SQL)

    If (SQL.RecordCount) Then

    Call SQL.movelast: Call SQL.movefirst

    If SQL.RecordCount = 1 Then
    MsgBox "1 registo."
    Else
    MsgBox SQL.RecordCount & " Registos."
    End If
    end if

    Ficou resolvido,
    Mais uma vez obrigado.

    Nuno
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7850
    Registrado : 05/11/2009

    [Resolvido]SQL.RecordCount com valores errados Empty Re: [Resolvido]SQL.RecordCount com valores errados

    Mensagem  Alexandre Neves em 21/10/2020, 20:36

    Boa noite

    O Resolvido não foi marcado devidamente. Deve ser clicado o botão "Resolvido" que se situa na parte inferior direita do fórum (ao lado da caixa de texto do título)
    Desta vez, já corrigi marcação


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

      Data/hora atual: 20/1/2021, 20:01