Visual Basic - ayuda con findfirst urgente

Life is soft - evento anual de software empresarial
 
Vista:

ayuda con findfirst urgente

Publicado por Marcelo Pirez (4 intervenciones) el 12/05/2003 19:33:59
Amigos del foro tengo un problema que quiero ver si me dan una mano

El tema es el siguiente
Deseo hacer una búsqueda que implica que el registro que debo encontrar debe coincidir con la fecha del día y con un número de empleado que debe ser igual al que se selecciona desde una grilla
El problema es que al hacer el findfirst de la fecha and el número me da un error de no coinciden los tipos

Aquí les paso el código para ver si me pueden ayudar
Gracias

EN ESTA LINEA ES DONDE TENGO EL PROBLEMA

AdmHorarios.Recordset.FindFirst "[Fecha] Like '" & Date & "*'" And AdmHorarios.Recordset(0) = Val(Grilla.Text)
If AdmHorarios.Recordset.NoMatch Then
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con findfirst urgente

Publicado por Cecilia Colalongo (3116 intervenciones) el 12/05/2003 19:39:41
Fijate de enviar la fecha entre # (numerales) o entre comillas simples.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con findfirst urgente

Publicado por Marcelo Pírez (4 intervenciones) el 14/05/2003 03:00:38
Amigos cuando mando la fecha sola funciona bien el tema es cuando le agrego la busqueda por numero
yo pienso que el tema viene por como estoy encarando el and
me podrian pasar un ejemplo a ver si lo puedo solucionar

GRACIAS a TODOS/AS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con findfirst urgente

Publicado por tecniCam (186 intervenciones) el 12/05/2003 23:17:44
Justo lo que dice Cecilia y, además, aquí llevas un ejemplo para el dia de hoy y entre 2 fechas insertadas en 2 Cuadro de Texto (TextBox, para los americanos e ingleses):

If Option1(0).Value = True Then
SQL = "SELECT * FROM CAJA WHERE Fecha = Date();"
'Esto es para el día de hoy
Else
If txtDesde = "" Or txtHasta = "" Then
MsgBox "Debe rellenar los campos de selección entre fechas"
txtDesde.SetFocus
GoTo fuera
End If
If IsDate(txtDesde) And IsDate(txtHasta) Then
Dim criterio1, criterio2
criterio1 = Format(txtDesde, "Short Date")
criterio2 = Format(txtHasta, "Short Date")
If CInt(Left(criterio1, 2)) < 13 Or CInt(Left(criterio2, 2)) < 13 Then
criterio1 = formateaFecha(criterio1)
criterio2 = formateaFecha(criterio2)
End If
' Las líneas anteriores llevan a una función que formatea adecuadamente
SQL = "SELECT * FROM CAJA WHERE Fecha BETWEEN #" & criterio1 & "# AND #" & criterio2 & "# ORDER BY Fecha;"

Etc., etc...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:ayuda con findfirst urgente

Publicado por Felix (1 intervención) el 05/05/2015 18:02:09
En la validación de Fecha con FindFirst siempre he tenido problema; y cambié la forma de hacer búsqueda validando Fechas.- He llegado a la conclusión que el findfirst trabaja bien con los días del mes a partir del día 13, del 1 al 12 invierte.- Ejemplo:

Tengo una tabla que contiene la tasa del cambio con respecto al dolar... en mi ventana para hacer un Recibo de Caja hago que confirmar la elaboración del Recibo, vaya primeramente a la tabla donde está la tasa de cambio, busque la coincidencia entre las dos fechas (la del día y la que ya contiene la tabla); ésto el findfirst lo hace correctamente solo a partir del día 13.-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
FecAux = DTPicker1.Value
FecAux = Format(FecAux, "mm/dd/yyyy")
Data1.recordsource = "SELECT * FROM Tasa ORDER By Fecha"
Data1.Refresh
With Data1.Recordset
Reg = Data1.Recordset. Recordcount
If Reg > 0 then
Data1.Recordset.movefirst
Data1.Recordset.Findfirst "Fecha = #"& FecAux &"#"
If Data1.Recordset.Nomatch = False then
TextBox1.text = Data1.Recordset("Cambio")
else
Msgbox "Tasa de cambio del día no ha sido actualizada"
Exit sub
Endif
Endif
end With

Este código debería funcionar para cualquier día del mes, pero solo funciona con los días a partir del 13.-

Quisiera me argumentaran si estoy en lo cierto o realmente puedo hacer algo; he probado por algunas otras instancia y no logro hacer que Findfirst me funcione en este particular.... en cualquier otra búsqueda el FindFirst funciona muy bien, pero aquí me desanimó por completo...-

Cambié la búsqueda con un Do While, pero considero que en una búsqueda grande se me haría muy lento.- Pero en este particular se puede delimitar que la búsqueda se haga solamente en el mes que pertenece la fecha actual del sistema en DTPicker.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar