MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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


2 participantes

    Formulário de Consulta com vários critérios e com caractere coringa e resultado no subform.

    avatar
    aajr.ti
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 18/06/2012

    Formulário de Consulta com vários critérios e com caractere coringa e resultado no subform. Empty Formulário de Consulta com vários critérios e com caractere coringa e resultado no subform.

    Mensagem  aajr.ti 11/5/2013, 14:51

    Olá pessoal, tenho encontrado muitos recursos no fórum, mas estou com um problema que não estou visualizando a solução.
    Tenho um formulário, com 8 campos, esse formulário é de consulta. Todos os campos podem ser critérios para essa consulta e posso utilizar carácter coringa "*".
    Montei um código, não dos melhores, mas funciona. O problema é que ele funciona uma unica vez, quando rodo a consulta pelo segunda vez ele trava o access.

    Não sei o que fazer. e puderem me ajudar agradeço. Segue o código:

    Private Sub bt_PESQUISAR_Click()
    Dim rs As dao.Recordset
    Dim db As dao.Database
    Dim SQL As String
    Dim aux_CAMPO_NULL As Boolean

    Me.Refresh
    SendKeys "{F2}"
    aux_CAMPO_NULL = False

    '*******************************************
    ' Verifica os critérios da pesquisa.
    '*******************************************

    If IsNull(Me.txtb_cod_CRITERIO) And IsNull(Me.txtb_DENOM_CRITERIO) And IsNull(Me.cmbb_TIPO_CRITERIO) And IsNull(Me.cmbb_UNID_MED_CRITERIO) And IsNull(Me.txtb_NUM_CASAS_DEC) And Me.chk_PREENCHIMENTO_AUTOMATICO = 0 And IsNull(Me.txtb_Tabela_Preench_autom) And IsNull(Me.txtb_Campo_Preench_autom) Then
    MsgBox "Favor informar ao menos um critério para pesquisa.", vbInformation, "Aviso"
    Me.txtb_cod_CRITERIO.SetFocus
    Exit Sub
    End If

    '*******************************************
    ' Identifica os critérios da pesquisa.
    '*******************************************

    SQL = "SELECT * FROM cns_CRITER_METOD WHERE"

    If Not IsNull(Me.txtb_cod_CRITERIO) Then
    SQL = SQL & " cod_CRITERIO like '" & Me.txtb_cod_CRITERIO & "'"
    aux_CAMPO_NULL = True
    End If

    If Not IsNull(Me.txtb_DENOM_CRITERIO) Then
    If aux_CAMPO_NULL = True Then
    SQL = SQL & " and DENOM_CRITERIO like '" & Me.txtb_DENOM_CRITERIO & "'"
    Else
    SQL = SQL & " DENOM_CRITERIO like '" & Me.txtb_DENOM_CRITERIO & "'"
    aux_CAMPO_NULL = True
    End If

    ElseIf Not IsNull(Me.cmbb_TIPO_CRITERIO) Then
    If aux_CAMPO_NULL = True Then
    SQL = SQL & " and TIPO_CRITERIO like '" & Me.cmbb_TIPO_CRITERIO & "'"
    Else
    SQL = SQL & " TIPO_CRITERIO like '" & Me.cmbb_TIPO_CRITERIO & "'"
    aux_CAMPO_NULL = True
    End If

    ElseIf Not IsNull(Me.cmbb_UNID_MED_CRITERIO) Then
    If aux_CAMPO_NULL = True Then
    SQL = SQL & " and UNID_MED_CRITERIO like '" & Me.cmbb_UNID_MED_CRITERIO & "'"
    Else
    SQL = SQL & " UNID_MED_CRITERIO like '" & Me.cmbb_UNID_MED_CRITERIO & "'"
    aux_CAMPO_NULL = True
    End If

    ElseIf Not IsNull(Me.txtb_NUM_CASAS_DEC) Then
    If aux_CAMPO_NULL = True Then
    SQL = SQL & " and NUM_CASAS_DEC like " & Me.txtb_NUM_CASAS_DEC
    Else
    SQL = SQL & " NUM_CASAS_DEC like " & Me.txtb_NUM_CASAS_DEC
    aux_CAMPO_NULL = True
    End If

    ElseIf Me.chk_PREENCHIMENTO_AUTOMATICO = 1 Then
    If aux_CAMPO_NULL = True Then
    SQL = SQL & " and PREENCHIMENTO_AUTOMATICO like " & Me.chk_PREENCHIMENTO_AUTOMATICO
    Else
    SQL = SQL & " PREENCHIMENTO_AUTOMATICO like " & Me.chk_PREENCHIMENTO_AUTOMATICO
    aux_CAMPO_NULL = True
    End If

    ElseIf Not IsNull(Me.txtb_Tabela_Preench_autom) Then
    If aux_CAMPO_NULL = True Then
    SQL = SQL & " and TABELA_PREENCH_AUTOM like '" & Me.txtb_Tabela_Preench_autom & "'"
    Else
    SQL = SQL & " TABELA_PREENCH_AUTOM like '" & Me.txtb_Tabela_Preench_autom & "'"
    aux_CAMPO_NULL = True
    End If

    ElseIf Not IsNull(Me.txtb_Campo_Preench_autom) Then
    If aux_CAMPO_NULL = True Then
    SQL = SQL & " and CAMPO_PREENCH_AUTOM like '" & Me.txtb_Campo_Preench_autom & "'"
    Else
    SQL = SQL & " CAMPO_PREENCH_AUTOM like '" & Me.txtb_Campo_Preench_autom & "'"
    aux_CAMPO_NULL = True
    End If

    End If

    set db = CurrentDb()
    Set rs = db.OpenRecordset(SQL, dbOpenDynaset)
    Set Form_frm_pesq_CRITERIOS_METODOLOGIA.sub_frm_CRITERIOS_METODOLOGIA.Form.Recordset = rs

    Me.sub_frm_CRITERIOS_METODOLOGIA.Form.Requery

    End Sub

    Obrigado pela oportunidade de participar.
    Paulo Robilotta
    Paulo Robilotta
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 24/09/2010

    Formulário de Consulta com vários critérios e com caractere coringa e resultado no subform. Empty Re: Formulário de Consulta com vários critérios e com caractere coringa e resultado no subform.

    Mensagem  Paulo Robilotta 7/6/2013, 20:50

    Não sei se entendi direito o que você quer fazer, mas desconfio que é um filtro em sequência.

    Se for, dá uma olhada nestes links :

    http://accessporexemplo.wordpress.com/exemplos/meusexemplos/filtros-sequenciais-para-subformularios/

    http://accessporexemplo.wordpress.com/2012/01/07/access-filtros-sequenciais-versao-2/

      Data/hora atual: 8/9/2024, 01:12