estou te passando todas as linhas de programação de uma tela minha de pesquisa, se não entender alguma é so falar
Dim St_opcao As Integer
Private Sub Bt_Voltar_Click()
On Error Resume Next
S_Foco
Frm_Pesq_Pedidos.Hide
End Sub
Private Sub Dt_Fatura_Change()
DBGrid1.Enabled = True
End Sub
Private Sub Dt_Fatura_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then S_Pesquisa
End Sub
Private Sub Status_Change()
DBGrid1.Enabled = True
End Sub
Private Sub Status_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then S_Pesquisa
End Sub
Private Sub Cod_Repres_Change()
DBGrid1.Enabled = True
End Sub
Private Sub Cod_Repres_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then S_Pesquisa
End Sub
Private Sub Cod_Cli_Change()
DBGrid1.Enabled = True
End Sub
Private Sub Cod_Cli_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then S_Pesquisa
End Sub
Private Sub DBGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then DBGrid1_DblClick
End Sub
Private Sub Pedido_Change()
DBGrid1.Enabled = True
End Sub
Private Sub Rt_Tipo_Click(Index As Integer)
If Status.Visible Then
Status.SetFocus
Exit Sub
End If
If NF.Visible Then
NF.SetFocus
Exit Sub
End If
If Pedido.Visible Then
Pedido.SetFocus
Exit Sub
End If
If Cod_Repres.Visible Then
Cod_Repres.SetFocus
Exit Sub
End If
If Cod_Cli.Visible Then
Cod_Cli.SetFocus
Exit Sub
End If
End Sub
Private Sub NF_Change()
DBGrid1.Enabled = True
End Sub
Private Sub NF_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then S_Pesquisa
End Sub
Private Sub Pedido_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
S_Pesquisa
Pedido.SetFocus
Pedido.SelStart = 0
Pedido.SelLength = Len(Pedido)
End If
End Sub
Private Sub DBGrid1_RowColChange(LatRow As Variant, ByVal LasRow As Integer)
'Destacando a linha toda no DBGrid
If Data1.Recordset.RecordCount Then
DBGrid1.SelBookmarks.Add Data1.Recordset.Bookmark
End If
End Sub
Private Sub DBGrid1_DblClick()
On Error Resume Next
DBGrid1.Col = 0
If Not IsNull(DBGrid1) Then
If DBGrid1 <> "" Then
Select Case Rt_Origem
Case "Frm_Pedidos"
If Not Frm_Pedidos.F_Carrega_Dados((DBGrid1)) Then
Exit Sub
End If
End Select
S_Foco
Frm_Pesq_Pedidos.Hide
Exit Sub
End If
End If
End Sub
Private Sub Form_Load()
Left = (Screen.Width - Width) / 2
Top = (Screen.Height - Height) / 2
Cod_Cli.DatabaseName = Base_Client.Name
Cod_Cli.BoundColumn = "Codigo"
Cod_Cli.Datafield = "Nome_R"
Cod_Repres.DatabaseName = Base_Repres.Name
Cod_Repres.BoundColumn = "Codigo"
Cod_Repres.Datafield = "Apelido"
Status.DatabaseName = Base_Pedido.Name
Status.BoundColumn = "Codigo"
Status.Datafield = "Descricao"
Data1.DatabaseName = Base_Pedido.Name
Data1.Refresh
St_opcao = 0
S_Larg_Grid
End Sub
Sub S_Oculta()
Pedido.Visible = False
Cod_Cli.Visible = False
Cod_Repres.Visible = False
NF.Visible = False
Status.Visible = False
Dt_Fatura.Visible = False
End Sub
Private Sub Rt_opcao_Click(Index As Integer)
St_opcao = Index
S_Oculta
Et_Rotulo = Rt_opcao(Index).Caption
Select Case Index
Case 4
Status.Visible = True
Status.SetFocus
Case 3
NF.Visible = True
NF.SetFocus
Case 0
Pedido.Visible = True
Pedido.SetFocus
Case 2
Cod_Repres.Visible = True
Cod_Repres.SetFocus
Case 1
Cod_Cli.Visible = True
Cod_Cli.SetFocus
Case 5
Dt_Fatura.Visible = True
Dt_Fatura.SetFocus
End Select
End Sub
Sub S_Pesquisa()
Dim T_Continua As Boolean, T_Valor As String, T_Nome As String, T_Sql As String, T_Condicao As String
Dim T_Tipo As Integer
T_Condicao = ") ORDER BY Pd.Emissao, Pd.Pedido;"
T_Sql = "SELECT Pd.Codigo, Pd.Pedido, Pd.Emissao, St.Descricao, Pd.Emissao_NF FROM Pedidos AS Pd LEFT JOIN Status_Pedido AS St ON Pd.Status = St.Codigo WHERE ("
Select Case St_opcao
Case 4
'Status
If Not Status.MatchedWithList Then
G_Mens "Escolha um Status de Pedido Valido", MEN_INFORMA
Status.SetFocus
Exit Sub
End If
T_Valor = Status.BoundText
T_Condicao = "((Status) = " & T_Valor & ")" & T_Condicao
Case 3 'NF
T_Valor = "" & NF
If T_Valor = "" Then
G_Mens "Escolha uma NF Valida", MEN_INFORMA
NF.SetFocus
Exit Sub
End If
T_Condicao = "((NF) = " & T_Valor & ")" & T_Condicao
Case 0 'Pedido
Pedido = "" & Trim(Pedido)
If Pedido = "" Then
G_Mens "Digite um No. de Pedido Válido", MEN_INFORMA
Pedido.SetFocus
Exit Sub
End If
T_Valor = Pedido
If Rt_Tipo(0) Then
T_Condicao = "((Pedido) Like '" & T_Valor & "*')" & T_Condicao
Else
T_Condicao = "((Pedido) Like '*" & T_Valor & "*')" & T_Condicao
End If
Case 2 'Cod_Repres
If Not Cod_Repres.MatchedWithList Then
G_Mens "Escolha um representante Valido", MEN_INFORMA
Cod_Repres.SetFocus
Exit Sub
End If
T_Valor = Cod_Repres.BoundText
T_Condicao = "((Cod_Repres) = " & T_Valor & ")" & T_Condicao
Case 1 'Cod_Cli
If Not Cod_Cli.MatchedWithList Then
G_Mens "Escolha um Cliente valido", MEN_INFORMA
Cod_Cli.SetFocus
Exit Sub
End If
T_Valor = Cod_Cli.BoundText
T_Condicao = "((Cod_Cli) = " & T_Valor & ")" & T_Condicao
Case 5 'Data de Faturamento
If Dt_Fatura.Text = "__/__/____" Then
G_Mens "Favor digitar uma data", MEN_INFORMA
Dt_Fatura.SetFocus
Exit Sub
End If
T_Valor = Dt_Fatura.Text
T_Condicao = "((Emissao_NF) = " & G_Sqldata(CDate(T_Valor)) & ")" & T_Condicao
End Select
Screen.MousePointer = 11
Data1.RecordSource = T_Sql & T_Condicao
Data1.Refresh
DBGrid1.Refresh
DBGrid1.Enabled = True
S_Larg_Grid
End Sub
Sub S_Larg_Grid()
Screen.MousePointer = 0
End Sub
Sub S_Limpa_Dados()
Data1.RecordSource = "SELECT Pd.Codigo, Pd.Pedido, Pd.Emissao, St.Descricao, Pd.Emissao_NF FROM Pedidos AS Pd LEFT JOIN Status_Pedido AS St ON Pd.Status = St.Codigo WHERE (((Pd.Pedido)=0));"
Data1.Refresh
DBGrid1.Refresh
Cod_Repres.BoundText = ""
NF = ""
Status.BoundText = ""
Pedido = ""
Cod_Cli.BoundText = ""
DBGrid1.Enabled = False
End Sub
Sub S_Foco()
On Error Resume Next
Select Case St_opcao
Case 4: Status.SetFocus
Case 3: NF.SetFocus
Case 0: Pedido.SetFocus
Case 2: Cod_Repres.SetFocus
Case 1: Cod_Cli.SetFocus
End Select
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
On Error Resume Next
If KeyCode = 116 Then 'F5
Cod_Repres.Refresh
Status.Refresh
Cod_Cli.Refresh
Data1.Refresh
DBGrid1.Refresh
End If
End Sub