/ Published in: Visual Basic
Expand |
Embed | Plain Text
Private Sub cmdSearch_Click() Dim varWhere As Variant ' Initializa Null varWhere = Null ' Se o nome de uma companhia foi especificado If Not IsNothing(Me.txtCompany) Then ' .. gera o predicado varWhere = "[CustomerName] LIKE '" & Me.txtCompany & "*'" End If ' Em seguida passa para as datas If Not IsNothing(Me.txtFromDate) Then If Not IsDate(Me.txtFromDate) Then MsgBox "Você deve digitar uma data válida para "Desde".", vbExclamation, gstrAppTitle Me.txtFromDate.SetFocus Exit Sub End If ' .. gera o predicado ' Nota: tire proveito da propagação do Null ' desse modo não será necessário testar qualquer predicado anterior varWhere = (varWhere + " AND ") & "[OrderDate] >= #" & _ Format(Me.txtFromDate, "dd mmm yyyy") & "#" End If If Not IsNothing(Me.txtToDate) Then If Not IsDate(Me.txtToDate) Then MsgBox "Você deve digitar uma dara válida para "Até".", vbExclamation, gstrAppTitle Me.txtToDate.SetFocus Exit Sub End If ' Certifica que Até é depois ou igual a Desde If Not IsNothing(Me.txtFromDate) Then If Me.txtToDate < Me.txtFromDate Then MsgBox "'Até' não deve ser anterior a 'Desde'.", _ vbExclamation, gstrAppTitle Me.txtToDate.SetFocus Exit Sub End If End If ' .. gera o predicado ' Nota: tire proveito da propagação do Null ' desse modo não será necessário testar qualquer predicado anterior varWhere = (varWhere + " AND ") & "[OrderDate] <= #" & _ Format(Me.txtToDate, "dd mmm yyyy") & "#" End If ' Em seguida passa para a Cidade If Not IsNothing(Me.txtCity) Then ' .. gera o predicado varWhere = (varWhere + " AND ") & "[City] LIKE '" & Me.txtCity & "*'" End If ' Em seguida passa para o estado If Not IsNothing(Me.txtState) Then ' .. gera o predicado varWhere = (varWhere + " AND ") & "[Region] LIKE '" & Me.txtState & "*'" End If ' Em seguida passa para o país If Not IsNothing(Me.txtCountry) Then ' .. build the predicate varWhere = (varWhere + " AND ") & "[Country] LIKE '" & Me.txtCountry & "*'" End If ' Finally, do Sales Rep If Not IsNothing(Me.cmbSalesRep) Then ' .. build the predicate varWhere = (varWhere + " AND ") & "[SalesRepID] = " & Me.cmbSalesRep End If ' Check to see that we built a filter If IsNothing(varWhere) Then MsgBox "Você deve dar entrada a pelo menos um critério de localização.", vbInformation, gstrAppTitle Exit Sub End If ' Vê se há alguma linha com um rápido DLookup If IsNothing(DLookup("OrderID", "qryOrders", varWhere)) Then MsgBox "Nenhum Pedido satisfaz seu critério.", vbInformation, gstrAppTitle Exit Sub End If ' Abre Clientes filtrado ' Nota: se o form já estiver aberto, apenas aplica o filtro DoCmd.OpenForm "frmOrders", WhereCondition:=varWhere ' Done DoCmd.Close acForm, Me.Name End Sub
You need to login to post a comment.
