• Domingo 22 de Diciembre de 2024, 09:03

Autor Tema:  Ingreso De Horas Y Fechas En Vb 6.0  (Leído 22571 veces)

Vate

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Ingreso De Horas Y Fechas En Vb 6.0
« en: Jueves 21 de Diciembre de 2006, 20:04 »
0
Hola amigos, estoy utilizando VB 6.0 para hacer una aplicacion, tengo en mi formulario dos textbox, una de hora y otra de fecha. Lo que quiero hacer es guardar ambas en dos campos que tengo asignados en mi base de datos (formato date time). El visual basic me da la hora del sistema (time y date) yo hago asi para guardar a la base de datos

strSQL="insert into LLAMADA (hora,fecha) values(" & time & "," & date &")"

sin embargo no puede hacer lo que deseo. Si alguno de uds ha hecho algo parecido porfavor aviseme

Gracias de antemano

mamex

  • Miembro activo
  • **
  • Mensajes: 77
  • Nacionalidad: mx
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #1 en: Jueves 21 de Diciembre de 2006, 22:48 »
0
Te faltó meter entre comillas simples, los valores (date, time). Va de la siguiente manera:

Código: Text
  1.  
  2. strSQL = "INSERT INTO llamada(hora,fecha) VALUES('" & Time & "','" & Date & "')"
  3.  
  4.  

Vate

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #2 en: Jueves 21 de Diciembre de 2006, 23:14 »
0
gracias mamex,pero puse esa cadena y me salio el siguiente error

"The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value."

conoces algo al respecto?
gracias

mamex

  • Miembro activo
  • **
  • Mensajes: 77
  • Nacionalidad: mx
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #3 en: Viernes 22 de Diciembre de 2006, 01:10 »
0
Que tipo de base de datos es?, que objeto usas?

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #4 en: Viernes 22 de Diciembre de 2006, 02:28 »
0
El problema es que los valores de tipo fecha no van así: '" & Time & "' sino #" & Time & "#

mamex

  • Miembro activo
  • **
  • Mensajes: 77
  • Nacionalidad: mx
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #5 en: Viernes 22 de Diciembre de 2006, 20:36 »
0
Pues el código que yo puse, primero lo  probé, y me guardó los datos sin mayor problema.     :)

Vate

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #6 en: Viernes 22 de Diciembre de 2006, 22:23 »
0
mamex, como ejecutaste la sentencia? porque yo ejecuto en VB y no funciona, tal vez me puedas pasar esa parte entera de como guardar desde VB 6.0 a SQL 2000 server, bonjourlima@hotmail.com
Gracias

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #7 en: Viernes 22 de Diciembre de 2006, 22:35 »
0
Cita de: "Vate"
mamex, como ejecutaste la sentencia? porque yo ejecuto en VB y no funciona, tal vez me puedas pasar esa parte entera de como guardar desde VB 6.0 a SQL 2000 server, bonjourlima@hotmail.com
Gracias
Probaste como te lo dí?

Vate

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #8 en: Viernes 22 de Diciembre de 2006, 23:13 »
0
Si Arkantos, ejecute la sentencia aqui esta parte de mi codigo VB 6.0

Private Sub Command3_Click()

Dim rsGuarda As New ADODB.Recordset
Dim texto As String
texto = Time
strSQL = "INSERT INTO LLAMADA (HoraLlamada) VALUES(# " & texto & " #)"
rsGuarda.Open strSQL, Conexion

End Sub

Sale error de sintaxis del SQL

Gracias

Vate

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #9 en: Viernes 22 de Diciembre de 2006, 23:17 »
0
Tambien ejecute la cadena  con cmillas simples

strSQL = "INSERT INTO LLAMADA (HoraLlamada) VALUES(' " & texto & " ')"

y sale los siguiente

 "Error de sintaxis al convertir una cadena de caracteres a datetime."

mamex

  • Miembro activo
  • **
  • Mensajes: 77
  • Nacionalidad: mx
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #10 en: Sábado 23 de Diciembre de 2006, 03:32 »
0
Puedes probar con otra manera, por ejemplo, yo creo un recordset, despues agrego un nuevo registro, y guardo los datos.
Debes agregar la referencia Microsoft Activex Data Objects 2.5 Library para que te acepte el recordset

'Funcion para guardar los datos
Código: Text
  1.  
  2. private sub guardarDatos
  3.     Dim rs as recordset
  4.     set rs = crearConsulta("miBaseDeDatos.mdb","Select hora,fecha from llamada")
  5.     rs.addNew
  6.     rs.fields!hora = time
  7.     rs.fields!fecha = date
  8.     rs.update  
  9. end sub
  10.  
  11.  

Y aqui está la funcion para crear el recordset
Código: Text
  1.  
  2. 'Crea una consulta y la regresa como un recordset
  3. Public Function crearConsulta(baseDeDatos As String, sql As String) As Recordset
  4.     Dim bd As Connection, rs As Recordset
  5.     Set bd = New Connection
  6.     Set rs = New Recordset
  7.     'Genera la cadena de conexión
  8.     bd.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
  9.         baseDeDatos & ";Persist Security Info=False"
  10.     'Abre la base de datos
  11.     bd.Open
  12.     'Se la asigna al recordset
  13.     rs.Open sql, bd, adOpenKeyset, adLockOptimistic
  14.     If rs.recordCount > 0 Then _
  15.         rs.MoveFirst
  16.     'Regresa el recordset
  17.     Set crearConsulta = rs
  18. End Function
  19.  
  20.  

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #11 en: Sábado 23 de Diciembre de 2006, 06:13 »
0
Cita de: "Vate"
Si Arkantos, ejecute la sentencia aqui esta parte de mi codigo VB 6.0

Private Sub Command3_Click()

Dim rsGuarda As New ADODB.Recordset
Dim texto As String
texto = Time
strSQL = "INSERT INTO LLAMADA (HoraLlamada) VALUES(# " & texto & " #)"
rsGuarda.Open strSQL, Conexion

End Sub

Sale error de sintaxis del SQL

Gracias
Utilizar los # en fechas y horas es para access :P

ejecuta directamente sobre la conexion

Código: Text
  1.  
  2. texto = Time
  3. strSQL = "INSERT INTO LLAMADA (HoraLlamada) VALUES(' " & texto & " ')"
  4. Conexion.Execute strSQL
  5.  

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #12 en: Sábado 23 de Diciembre de 2006, 07:33 »
0
Citar
Utilizar los # en fechas y horas es para access tongue.gif
Tienes razón, lo siento :scream:

Vate

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #13 en: Sábado 23 de Diciembre de 2006, 17:30 »
0
F_Tanori estoy que me peleo con el sQL  :angry: , he puesto esa cadena de conexion y sigue saliendo" Error de Sintaxis al convertir una cadena de caracteres a date time" .
 Nunca habia trabajado con fechas ni pense que fuera tan complicado hacerlo
Si alguien puede ayudarme estare infinitamente agradecido

Dim texto As Date
 texto = Time
  strSQL = "INSERT INTO LLAMADA (HoraLlamada) VALUES(' " & texto & " ')"
  Conexion.Execute strSQL

Gracias

albertovicat

  • Miembro activo
  • **
  • Mensajes: 38
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #14 en: Sábado 23 de Diciembre de 2006, 19:05 »
0
Tengo hecho un programa (maneja bases *.mdb) que en una parte selecciona las ventas de mostrador que no se facturaron, para reunirlas todas en una única factura, las seleeciona así:

"SELECT * FROM Tabla1 WHERE [Proced/Destino] = 'Venta' AND Comprobante = '0' AND Fecha >= #" & FDesde & "# AND Fecha <= #" & FHasta & "#"

FDesde y FHasta son variables string que contienen las fechas que el usuario designó, ya que pueden abarcar varios días.
Funciona correctamente. En los posts anteriores me parece ver que hay un espacio en blanco entre los numerales y la variable.
¿Puede ser el motivo de la falla?

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #15 en: Domingo 24 de Diciembre de 2006, 02:54 »
0
Hola mira de momento aqui no tengo el SQL Server :P


y eso no es una cadena de conexion :P, es una instruccion/sentencia/comando... SQL ;)

pero voy a decirte que se me ocurre que este pasando,(probando en MySQL :P):

yo tengo una tabla que se llama bitacora y tengo un campo de tipo DateTime para insertar un registro con un dato en ese
campo desde vb y lo intento asi...
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES(NULL,356,1,'23-02-2006') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

o asi
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES(NULL,356,1,'23/02/2006') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

me da un error en la fecha primeramente me falta agregarle la hora ya que el campo es DateTime... entonces
si pruebo con...

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES(NULL,356,1,'23-02-2006 10:50:30') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

tambien es error :P

y la razon es sencilla es el formato es incorrecto para ingresar una fecha a un campo datetime pues el formato
que espera es 0000-00-00 00:00:00 (año-mes-dia hh:mm:ss)..... entonces
hay que enviarlo de esa manera

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES(NULL,356,1,'2006-02-23 10:50:30') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

incluso la pura hora
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES('0000-00-00 10:50:30') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

o la pura fecha
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]INSERT[/color] INTO bitacora(idrow,movimiento,usuario,fechahora) VALUES('2006-02-23 00:00:00') <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

y con eso ya guarda (MySQL) ingresalo tal cual lo espere SQL Server que no se cual sea :P creo que el mismo


desde VB

Código: Text
  1. Dim texto As String
  2.    
  3.     texto = &#34;0000-00-00 &#34; & Format(Time, &#34;hh:mm:ss&#34;)
  4.     strSQL = &#34;INSERT INTO LLAMADA (HoraLlamada) VALUES('&#34; & texto & &#34;')&#34;
  5.     Conexion.Execute strSQL
  6.  
   
Ha... no hay que darle espacio a los delimitadores porque entonces estas agregados dos caracteres mas (en blanco)
algo como lo que dice albertovicat

strSQL = "INSERT INTO LLAMADA (HoraLlamada) VALUES('<espacio de mas> " & texto & "<espacio de mas> ')"

porque seria: ' 0000-00-00 10:50:30 ' que no es lo mismo a '0000-00-00 10:50:30'




(# es para access) :P

Saludos y espero te ayude, aclaro de nuevo estas pruebas y deducciones fueron aplicadas sobre MySQL
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

ERNESTO_FOX

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Ingreso De Horas Y Fechas En Vb 6.0
« Respuesta #16 en: Domingo 12 de Octubre de 2008, 03:50 »
0
SI LO QUE DESEAS ES GUARDAR UN CAMPO DATETIME EN UNA TABLA DE SQL SERVER, USANDO VB NET, LO PUEDES HACER DE LA SIGUIENTE MANERA:

DEFINE UNA VARIABLE TIPO STRING, QUE CONTENDRA EL COMANDO SQL A INSERTAR EL REGISTRO EN TU TABLA,
xsql: VARIABLE TIPO STRING
ej1: ES EL NOMBRE DE LA TABLA

Me.textbox1.text= Date.Now
dim xsql as string
xsql = "insert into ej1 (fecha) values (convert(datetime,' "+Me.textbox1.Text.Replace(".", "")+ " '))"

 xconex.open()
 xcomando = New SqlCommand
 xcomando.CommandText = xsql
 xcomando.Connection = xconex     'conexion activa
 xcomando.CommandType = CommandType.Text
 xcomando.ExecuteNonQuery()

nota: se usa el comando "convert", de sql, para convertir un valor a datetime,
nota: si te das cuenta, elimine los puntos "." del formato datetime  y los reemplaze por espacio nulo "",

espero que te sirva...