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 : 958
    Registrado : 08/02/2011

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

    Mensagem  cafpr em 1/11/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
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  CassioFabre em 1/11/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 : 3904
    Registrado : 14/08/2013

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

    Mensagem  FabioPaes em 1/11/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 : 958
    Registrado : 08/02/2011

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

    Mensagem  cafpr em 1/11/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 14 vez(es)
    avatar
    CassioFabre
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  CassioFabre em 3/11/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 24 vez(es)


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

    Respeito às Regras 100%

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

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

    Mensagem  cafpr em 4/11/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: 24/6/2018, 07:57