none
problema incomprensible en manejo de fechas vb2008 RRS feed

  • Pregunta

  • Disculpen me está apareciendo un mensage de error en visualbasic2008 al intentar evaluar fechas mediante consulta sql, en mi codigo actualizo datos según la fecha especificada en un label. Mi tabla está es Access, mi campo "fecha" Tipo:fecha/hora y FORMATO:fecha corta

    entra_caja = "update Cortes set ventas=ventas,entradas=cambio,concepto=entro_dinero where fecha=label4" orden_s = New OleDb.OleDbCommand(entra_caja, conn) orden_s.Parameters.Add(New OleDb.OleDbParameter("ventas", OleDb.OleDbType.Numeric)) orden_s.Parameters("ventas").Value = ventas orden_s.Parameters.Add(New OleDb.OleDbParameter("entradas", OleDb.OleDbType.Numeric)) orden_s.Parameters("entradas").Value = cambio 'Val(TextBox5.Text) orden_s.Parameters.Add(New OleDb.OleDbParameter("concepto", OleDb.OleDbType.VarChar)) orden_s.Parameters("concepto").Value = entro_dinero '??? MUY EXTRAÑO NO ACEPTA fecha=label pero si uso insert si ingresa label ??? 'orden_s.Parameters.Add(New OleDb.OleDbParameter("fecha", OleDb.OleDbType.VarChar)) 'orden_s.Parameters("fecha").Value = Label4.Text orden_s.Parameters.Add(New OleDb.OleDbParameter("fecha", OleDb.OleDbType.DBDate)) orden_s.Parameters("fecha").Value = Date.Today ' Label4.Text

    Asi que cambié el tipo de dato "DBDate" directamente, pero sigo recibiendo el waring:"No coiciden los tipos de datos en la expresión"

    cabe mencionar que en otra seccion de mi programa utilizo también
     Dim checa_cajero As String
                    checa_cajero = "select usuario from Cortes where fecha=label4 and usuario=label32"
                    ord = New OleDb.OleDbDataAdapter(checa_cajero, conec)
                    ord.SelectCommand.Parameters.Add(New OleDb.OleDbParameter("fecha", OleDb.OleDbType.VarChar))
                    ord.SelectCommand.Parameters("fecha").Value = Label4.Text
                    ord.SelectCommand.Parameters.Add(New OleDb.OleDbParameter("usuario", OleDb.OleDbType.VarChar))
                    ord.SelectCommand.Parameters("usuario").Value = Label32.Text
                    tab = New DataSet
                    ord.Fill(tab, "Cortes")

    Y en ésta, me ejecuta perfectamente mi consulta y parametros. No logro entender porqué aqui si y la otra no 


    lunes, 23 de septiembre de 2013 18:35

Respuestas

  • Esta vez yo mismo resolví el problema que a simpli vista era complejo encontrar el error

    ja, miren lo que es la incapacidad de visual studio para detectar el "supuesto error", bien el compilador que evalúa Parametros OLEDB, no fué capaz de detectar que lo que fallaba en mi codigo era el orden de declaración de los parámetros oledb, si en mi consulta tengo. "update tabla campo1=label2, campo2=label3"

    en mis parámetros debo pasar primero el valor de label2 : ordeen.Parameters.Add(New OleDb.OleDbParameter("campo1", OleDb.OleDbType.VarChar))
     ordeen
    .Parameters("campo1").Value =label2.text

    y luego valor del label3: ordeen.Parameters.Add(New OleDb.OleDbParameter("campo2", OleDb.OleDbType.VarChar))
     ordeen
    .Parameters("campo2").Value =label3.text

    y Asunto resuelto

    sábado, 28 de septiembre de 2013 3:19

Todas las respuestas

  • Aun cuando manejo controles Monthcalendar me sigue marcando error el el tipo de datos:

    pongo:

    modifica = "update clientes set nombre=combobox5,dias_credito=textbox14,fecha_abono=MonthCalendar1,fecha_liquidacion=MonthCalendar2"

    ordeen.Parameters.Add(New OleDb.OleDbParameter("cve_cliente", OleDb.OleDbType.VarChar)) ordeen.Parameters("cve_cliente").Value = TextBox12.Text ordeen.Parameters.Add(New OleDb.OleDbParameter("nombre", OleDb.OleDbType.VarChar)) ordeen.Parameters("nombre").Value = ComboBox5.Text ordeen.Parameters.Add(New OleDb.OleDbParameter("dias_credito", OleDb.OleDbType.Integer)) ordeen.Parameters("dias_credito").Value = Int(TextBox14.Text) ordeen.Parameters.Add(New OleDb.OleDbParameter("fecha_abono", OleDb.OleDbType.Date)) ordeen.Parameters("fecha_abono").Value = MonthCalendar1.SelectionStart 'Convert.ToDateTime(ComboBox8.Text) 'CDate(ComboBox8.Text) 'ordeen.Parameters.Add(New OleDb.OleDbParameter("@objectdate", DbType.DateTime)) 'ordeen.Parameters("@objectdate").Value = DateTime.Now.ToOADate() ordeen.Parameters.Add(New OleDb.OleDbParameter("fecha_liquidacion", OleDb.OleDbType.Date)) ordeen.Parameters("fecha_liquidacion").Value = MonthCalendar2.SelectionEnd

    Prové con 'Convert.ToDateTime(ComboBox8.Text) y tampoco funcionó

    *Si el parámetro tiene type.Date y el monthCalendar.SelectionStart acaso no es tipo date??

    *Recordar que mi tabla está en Access 2007 con tipo de campo fecha/hora formato:fecha corta


    martes, 24 de septiembre de 2013 16:51
  • Esta vez yo mismo resolví el problema que a simpli vista era complejo encontrar el error

    ja, miren lo que es la incapacidad de visual studio para detectar el "supuesto error", bien el compilador que evalúa Parametros OLEDB, no fué capaz de detectar que lo que fallaba en mi codigo era el orden de declaración de los parámetros oledb, si en mi consulta tengo. "update tabla campo1=label2, campo2=label3"

    en mis parámetros debo pasar primero el valor de label2 : ordeen.Parameters.Add(New OleDb.OleDbParameter("campo1", OleDb.OleDbType.VarChar))
     ordeen
    .Parameters("campo1").Value =label2.text

    y luego valor del label3: ordeen.Parameters.Add(New OleDb.OleDbParameter("campo2", OleDb.OleDbType.VarChar))
     ordeen
    .Parameters("campo2").Value =label3.text

    y Asunto resuelto

    sábado, 28 de septiembre de 2013 3:19