esto es lo que realizo en formulario principal ten un campo cion un boton buscar
Código: Seleccionar todo
Private Sub bus1_Click()
Dim buscar As String
Dim CriterioBusqueda As String
If IsNull(buscar3) Then
MsgBox "No ha ingresado nada" & vbCrLf & _
"vuelva a intentarlo", vbCritical, "Campo Nulo"
buscar3.SetFocus
Exit Sub
End If
buscar = Me.buscar3
CriterioBusqueda = "[codigoT]=" & "'" & buscar3 & "'"
'Comprobamos si existe el Nif del Usuario
If DCount("codigoT", "personal_pagos", CriterioBusqueda) > 0 Then
'Abrimos una caja de mensajes indicamos que lo encontramos
MsgBox "Codigo Encontrado Empleado " & Texto3 & " Y su, Codigo Es " & buscar2, vbInformation, "Empleado Encontrado"
'Y abrimos
DoCmd.OpenForm "nomina_apertura", acNormal, "", "", acEdit, acNormal
DoCmd.GoToControl "codigoT" 'Rem cuadro de texto donde introducimos el Nif
DoCmd.FindRecord Forms![Buscar_empleado_pagos]!buscar3, acEntire, False, , False, acCurrent, True
DoCmd.Close acForm, "Buscar_empleado_pagos"
Else
'De no existir lanzamos un Mensaje
MsgBox " El Empleado no Existe" & Texto3 & " Ni su Codigo " & buscar3, vbCritical, "Empleado No Existe"
buscar3.SetFocus
End If
End Sub
me carga un formulario con los datos del trabajador y luego los filtro por fecha cos dos campos fechainicial y fecha final y con e boton procedo a llamar este codigo
Código: Seleccionar todo
Private Sub buscar_Click()
'filta el subformulario
If Me.txtfechainicio = vbNullString Or IsNull(Me.txtfechainicio) Then
MsgBox "Debe incluir una fecha inicial a Buscar", vbCritical, "Error en Fecha Inicial Reintente"
txtfechainicio.SetFocus
Exit Sub
ElseIf Me.txtfechafin = vbNullString Or IsNull(Me.txtfechafin) Then
MsgBox "Debe Incluir Una Fecha Final", vbCritical, "Error En Fecha Final Reintente"
txtfechafin.SetFocus
Exit Sub
ElseIf Me.txtfechafin < Me.txtfechainicio Then
MsgBox "La Fecha Final No Puede Ser Mayor a La Fecha Inicial", vbCritical, "Error En Fechas"
txtfechafin.SetFocus
Exit Sub
End If
DoEvents
DoCmd.Close acForm, "Nomina_tdc_Tlmk"
DoEvents
DoCmd.OpenForm "qs_telemarquista", acFormDS, , , , acHidden
DoCmd.OpenForm "Nomina_tdc_Tlmk", acFormDS, , , , acHidden
Me.pagos_personal.Form.RecordSource = _
"SELECT nomina_tlmk_consulta.* " & _
"FROM Personal_pagos LEFT JOIN nomina_tlmk_consulta ON Personal_pagos.CodigoT = nomina_tlmk_consulta.Tlmk " & _
"WHERE nomina_tlmk_consulta.Fecha_busqueda Between #" & Me.txtfechainicio & "# And #" & Me.txtfechafin & "# " & _
"AND nomina_tlmk_consulta.numero_contrato Is Not Null"
Dim sFiltro As String
Dim sFecha_busqueda As String
If IsNull(Me.txtfechainicio) And IsNull(Me.txtfechafin) Then
sFecha_busqueda = ""
Else
sFecha_busqueda = "Fecha_busqueda BETWEEN #" & Format(Nz(Me.txtfechainicio, #1/1/1900#), "mm-dd-yyyy") & _
"# AND #" & Format(Nz(Me.txtfechafin, #12/31/9999#), "mm-dd-yyyy") & "#"
End If
If sFecha_busqueda <> "" Then
If sFiltro <> "" Then
sFiltro = sFiltro & " AND " & sFecha_busqueda
Else
sFiltro = sFecha_busqueda
End If
End If
Debug.Print sFiltro
If sFiltro <> "" Then
Me.pagos_personal.Form.Filter = sFiltro
Me.pagos_personal.Form.FilterOn = True
Else
Me.pagos_personal.Form.FilterOn = False
End If
End Sub
para ambos casos tarda un minuto alguna idea de que estara mal ?