Visual Basic - Checar Fecha y Hora

Life is soft - evento anual de software empresarial
 
Vista:

Checar Fecha y Hora

Publicado por Lucyfer (140 intervenciones) el 12/09/2005 18:32:08
Necesito obtener un reporte de una tabla de access con rango de fecha y hora

Como puedo hacer la comparacion con los campos ??
Y deben tener algun formato en especial los campos de la base de datos ??
Y el formato de las variables para la comparacion ??

Gracias de antemano por su ayuda que me ha sacado de mas de un apuro.
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:Checar Fecha y Hora

Publicado por ivan (463 intervenciones) el 12/09/2005 20:16:37
Para comparar fechas entre un campo de una base de datos y un valor x en Visual Basic... ambos deben de ser del mismo tipo, o sea, tipo DATE.

Por ejemplo en una base de datos defines un campo llamado Fecha1, el cual es tipo date, en Access está algo relacionado con el formato de máscara, o sea, cómo quieres que se guarde tu fecha... elige el que desees, ya desde visual basic puedes definir una variable tipo DATE.

Cuando haces la comparación puedes hacerlo..

1
2
3
4
5
Dim Fecha_compara as Date
Fecha_compara = Date
If Rs("Fecha1") = Fecha_compara then
   ......
endif

Otra forma de asignarle valor a la variable Fecha_compara es asi...:

Fecha_compara = CDate("01/01/2000")

O algo parecido.... yo lo uso así..

.... CDate(Combo1.Text + " " + Combo2.Text + " " + Combo3.Text)

Espero poder ser de ayuda...

Saludos
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:Sigo con la Pregunta

Publicado por Lucyfer (140 intervenciones) el 12/09/2005 20:59:54
Sigo con la pregunta pues falta saber como comparar por fecha y hora

Por la pura fecha no tengo lio, necesito hacerlo por las dos cosas

Gracias
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:Sigo con la Pregunta

Publicado por ivan (463 intervenciones) el 13/09/2005 01:36:50
Ok....

La función DATE te da la fecha actual del sistema
La función TIME te da la hora actual del sistema
La función NOW te da la fecha y hora actual del sistema

1
2
3
4
5
6
7
8
Dim dia, mes, año As Integer
Dim hora, minutos, segundos As Integer
  dia = Day(Now)
  mes = Month(Now)
  año = Year(Now)
  hora = Hour(Now)
  minutos = Minute(Now)
  segundos = Second(Now)

Ahora... desconozco cómo guardas tu fecha y hora en la base de datos....

Espero esto te sirva

Saludos
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:Sigo con la Pregunta

Publicado por Lucyfer (140 intervenciones) el 13/09/2005 15:24:04
Lo guardo en formato fecha, sin ningun formato especial, no se en que formato guardarlo en la base de datos ni en que formato declarar las variables de manera que almacenen fecha y hora y se comparen tambien con fecha y hora

Necesito saber en que formato necesitaria guardarlo para que pudiera yo hacer la comparacion en un ciclo y como declarar e inicializar las variables

1
2
3
4
5
6
WHILE  !CampoFecha >= VariableFechaHoraInicial    AND
               !CampoFecha <=   VariableFechaHoraFinal
 
       ? !campo
 
ENDDO

Gracias
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:Sigo con la Pregunta

Publicado por ivan (463 intervenciones) el 13/09/2005 17:55:42
Intentaré hacer el código para tratar de hacer lo que tu buscas...

Utilizando el campo "CampoFecha" y comparándolo con "VariableFechaHoraInicial" y "VariableFechaHoraFinal"

Espera un rato y lo pongo....
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

Espero esta sea la respuesta

Publicado por ivan (463 intervenciones) el 13/09/2005 19:19:46
Con este código lleno un campo llamado "campofecha" cuyo tipo es "Fecha/Hora", este campo pertenece a TABLA1, la cual se contiene en un archivo llamado EJEMPLO.MDB, ubicado en C:\

Hice 10 asignaciones donde puse como valores la fecha y hora actual... a cada registro le voy sumando un día y una hora.... ESTO LO HICE SOLAMENTE COMO EJEMPLO.... EL CÓMO ASIGNAS ESTE VALOR A TU BASE DE DATOS Y EL CÓMO LA ABRAS Y LA MANIPULES.... ES COSA TUYA....

1
2
3
4
5
6
7
8
9
10
11
12
Set conexion = New ADODB.Connection
Set tabla = New ADODB.Recordset
conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ejemplo.mdb;Persist Security Info=False"
conexion.Open
tabla.Open "SELECT * from TABLA1", conexion, adOpenKeyset, adLockOptimistic
For i = 1 To 10
    tabla.AddNew
    fecha = CDate(Day(Date) + i & " " & Month(Date) & " " & Year(Date))
    tiempo = Hour(Time) + i & ":" & Minute(Time) & ":" & Second(Time)
    tabla("campofecha") = fecha & " " & tiempo
    tabla.Update
Next i

Entonces TABLA1 tiene 10 registros cuyos valores son...:

14/09/2005 11:49:13 a.m.
15/09/2005 12:49:13 pm.
16/09/2005 01:49:13 p.m.
17/09/2005 02:49:13 p.m.
18/09/2005 03:49:13 p.m.
19/09/2005 04:49:13 p.m.
20/09/2005 05:49:13 p.m.
21/09/2005 06:49:13 p.m.
22/09/2005 07:49:13 p.m.
23/09/2005 08:49:13 p.m.

Ahora pongo el código donde va a hacer la comparación... cabe mencionar que los valores de "VariableFechaHoraInicial" y VariableFechaHoraFinal" son elegidos a manera de ejemplo... DESCONOZCO CÓMO LE ASIGNES O LE PIENSES ASIGNAR TU EL VALOR... yo por lo pronto así se me ocurre para este ejemplo...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
fecha = CDate(Day(Date) - 2 & " " & Month(Date) & " " & Year(Date))
tiempo = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time)
VariableFechaHoraInicial = fecha & " " & tiempo
fecha = CDate(Day(Date) + 6 & " " & Month(Date) & " " & Year(Date))
VariableFechaHoraFinal = fecha & " " & tiempo
'   me quedaron los siguientes valores.....
'   VariableFechaHoraInicial=11/09/2005 11:12:05 a.m.
'   VariableFechaHoraFinal=19/09/2005 11:12:05 a.m.
tabla.MoveFirst
  For i = 1 To tabla.RecordCount
    tabla.AbsolutePosition = i
    If CDate(tabla("campofecha")) >= CDate(VariableFechaHoraInicial) _
      And CDate(tabla("campofecha")) <= CDate(VariableFechaHoraFinal) Then
        MsgBox "La fecha " & tabla("campofecha") & " SI está dentro del rango"
    Else
        MsgBox "La fecha " & tabla("campofecha") & " NO está dentro del rango"
    End If
    tabla.Update
  Next i

Al ejecutar este ejemplo muestra como fechas que SI están dentro del rango las primeras 5, el resto lo muestra como fechas que NO están dentro del rango....

Por último las variables que utilizo las defino asi...:

1
2
3
4
Dim VariableFechaHoraInicial, VariableFechaHoraFinal As Date
Dim fecha, tiempo As Date
Dim conexion As ADODB.Connection
Dim tabla As ADODB.Recordset

Espero esta información te sirva... en este ejemplo defino un campo tipo fecha/hora que guarda un fecha con su respectiva hora... también... defino 2 variables que guardan fecha y hora.... les paso valores y luego las comparo con otro campo tipo fecha....

Si acaso no entiendes algo o no es lo que buscas... dime... a ver qué más puedo encontrar...

Suerte...!!!!
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

Espero esta sea la respuesta

Publicado por Williams Santos (1 intervención) el 22/05/2020 03:16:11
Espero me puedas ayudar revisando el error que me arroja.

Yo estoy investigando pero no hay nadie quien maneje muy bien esta área.

Estoy utilizando Visual Basic 6.0 Versión 8176


'Se guarda en la Tabla Ventas '" & FechaHora & "'
Sql = "Insert Into tblVentas (Num_Factura, FechaHora, TipoFact, Dias, TotalFactura, EstadoFact, Comentario, Efectivo, Cambio, IdCliente, IdUsuario) " _
& " VALUES (" & Num_Factura & ",#" & Format(FechaHora, "mm/dd/yyyy hh:mm:ss") & "#," & Me.cmdTipoFact.ListIndex & "," & txtDias.Text & ",'" & CCur(txtTotalFactura) & "',1,'" & Comentario & "','" & CCur(txtVECambio.Text) & "','" & CCur(txtCambio.Text) & "'," & CodigoCliente & "," & Glo_IdUsuario & ") "

Me sale el siguiente error: error de sintaxis en la fecha en la expresión de consulta '#21/05/202011:52:12'.

En el Access tengo:
Nombre del Campo : FechaHora
Tipo de Datos: Fecha/Hora ( aquí, hay que configurar lago? Porque ya le hice un intento, cambiando Formato: Forma General 12/11/2015 21:34:58. Pero igual salió error!!

Espero me puedas ayudar dando otras opciones, de igual estoy investigando a ver si encuentro algo que me encamine a dar la solución a mi problema...

Saludos
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