MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Mensagem de "sem dados" após clicar em botão de pesquisa

    Compartilhe
    avatar
    cafpr
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 934
    Registrado : 08/02/2011

    [Resolvido]Mensagem de "sem dados" após clicar em botão de pesquisa

    Mensagem  cafpr em Qua 01 Nov 2017, 03:55

    Pesquisei mas não encontrei solução para a questão que é:

    Há um formulário de pesquisa com campos data inicial e data final onde após inserir as datas há um botão de comando pesquisar e é ai

    que necessito que após clicar neste botão e não haver dados aparecer uma mensagem de: Sem dados.

    Desde já agradeço e muito a ajuda.

    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 525
    Registrado : 18/01/2013

    Re: [Resolvido]Mensagem de "sem dados" após clicar em botão de pesquisa

    Mensagem  CassioFabre em Qua 01 Nov 2017, 11:43

    Bom dia,

    Voce pode, antes de fazer a pesquisa, fazer uma contagem na tabela com os parâmetros que deseja. Exemplo:
    Código:
    Dim rs as recordset

    set rs = currentdb.openrecordset("SELECT COUNT([campo_tbl]) as c FROM [tbl] WHERE [parametros]")

    If rs!c = 0 then
        MsgBox "Nenhum dado encontrado para pesquisa!", vbExclamation, "Sem dados"
        Exit sub
    end if

    'aqui o código da pesquisa normal

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3419
    Registrado : 14/08/2013

    Re: [Resolvido]Mensagem de "sem dados" após clicar em botão de pesquisa

    Mensagem  FabioPaes em Qua 01 Nov 2017, 15:17

    Bom dia aos Amigos!

    Seria interessante o amigo postar como é realizado o Filtro. Pois se for realizado através de DAO.Recordset,  não precisa nem realizar uma segunda consulta para contar o registro... Pode ser utilizado a propriedade BOF para determinar se o Recordset tem ou não dados... Se ele nao tiver, emite alerta. Se tiver, Segue...Assim, melhoramos o desempenho do nosso APP.

    Veja mais aqui: msdn.microsoft.com/pt-br/library/office/ff821459.aspx

    Ex:
    Código:

    Dim DB As Database
    Dim rs As DAO.Recordset

    Set DB = CurrentDb()
    Set rs = DB.OpenRecordset("SELECT * FROm tb1 WHERE CampoCriterio='AAA'")

        If rs.BOF = True Then
            MsgBox "Nao Há dados"

        Else
            rs.MoveNext: rs.MoveFirst
            MsgBox rs.RecordCount
        End If
    Set rs = Nothing
    Set DB = Nothing


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    cafpr
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 934
    Registrado : 08/02/2011

    Re: [Resolvido]Mensagem de "sem dados" após clicar em botão de pesquisa

    Mensagem  cafpr em Qua 01 Nov 2017, 19:56

    Segue o exemplo.
    Em access 2013
    Anexos
    ControleEstoque - Cópia.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.4 Mb) Baixado 7 vez(es)
    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 525
    Registrado : 18/01/2013

    Re: [Resolvido]Mensagem de "sem dados" após clicar em botão de pesquisa

    Mensagem  CassioFabre em Sex 03 Nov 2017, 09:29

    Bom dia,

    É sempre bom informar que está usando formulário acoplados e não desacoplados como imaginamos. Basta usar 3 linhas de código e seu problema é resolvido. Substitua o código do botão filtrar pelo abaixo:
    Código:
    Private Sub Comando116_Click()

    If Not IsNull(Me.DataInicial) And Not IsNull(Me.DataFinal) Then

    Me.Filter = "[DataEntrada] Between #" & Format$(Me![DataInicial], _
    "mm/dd/yyyy") & "# And #" & Format$(Me![DataFinal], "mm/dd/yyyy") & "#"
    Me.FilterOn = True

    If Me.RecordsetClone.RecordCount = 0 Then
        MsgBox "Não há dados para o filtro!", vbCritical, "Dados"
        Me.FilterOn = False
    End If

    End If
    End Sub

    Segue em anexo.

    Abraço.
    Anexos
    ControleEstoque - Cópia.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.4 Mb) Baixado 6 vez(es)


    .................................................................................
    Só não tem código pra morte!
    avatar
    cafpr
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 934
    Registrado : 08/02/2011

    Re: [Resolvido]Mensagem de "sem dados" após clicar em botão de pesquisa

    Mensagem  cafpr em Sab 04 Nov 2017, 21:17

    Boa tarde Cassio.

    Problema resolvido, obrigado.

    OBS:
    Você está certo, nas dúvidas postadas quanto mais detalhes melhor. Vou procurar lembrar-me.

    Testei em outros forms acoplados e com códigos diferentes para filtrar e acrescentando ao final a expressão abaixo funciona perfeitamente.

    If Me.RecordsetClone.RecordCount = 0 Then
    MsgBox "Não há dados para o filtro!", vbCritical, "Dados"
    Me.FilterOn = False
    End If


      Data/hora atual: Qua 22 Nov 2017, 10:46