none
RUN-TIME ERROR '3163' en VB 6.0 RRS feed

  • Pregunta

  • SALUDOS:
    Acudo a ustedes ya que tengo 2 problemas:
    El PROBLEMA #1 es el siguiente:
    cadsql = "SELECT * FROM dt_ordenes_trabajo WHERE
    cadsql = cadsql & "  fecha_entrada >= " & "Format('" & campo1 & "', " & " 'dd/mm/yyyy') AND fecha_entrada <= " & "Format('" & campo2 & "', " & " 'dd/mm/yyyy') "
    cadsql = cadsql & "  order by num_orden_trabajo  "
    Set GRSOrden = BDSistema.OpenRecordset(cadsql, dbOpenSnapshot)

    La variable "GRSOrden" esta declarada como variable global de tipo RECORDSET.
    Cuando se trata de ejecutar el QUERY me marca el siguiente error

    RUN-TIME ERROR '3163':

    The field is too small to accept the amount of data you attempted to add.
    Try inserting or pasting les data.

    Si yo quito la lines (3) que su función es ordenar el resultado del QUERY, se ejecuta sin problema.



    El PROBLEMA #2 es el siguiente:
    While Not GRSOrden.EOF
                cadsql2 = "INSERT INTO TMP_ORDEN_DIA (orden, observaciones, estatus)"
                cadsql2 = cadsql2 & " VALUES ("
                cadsql2 = cadsql2 & GRSOrden!num_orden_trabajo & ", "

                If GRSOrden!status = "A" Then
                    cadsql2 = cadsql2 & " 'I.A', " & " 'Activa' "
                ElseIf GRSOrden!status = "P" Then
                    cadsql2 = cadsql2 & " 'PENDIENTE', " & " 'Pendiente' "
                ElseIf GRSOrden!status = "C" Then
                    cadsql2 = cadsql2 & " '................', " & " 'Cancelada' "
                ElseIf GRSOrden!status = "T" Then
                    cadsql2 = cadsql2 & " 'VTA. MOSTRADOR', " & " 'Terminada' "
                ElseIf GRSOrden!status = "VM" Then
                    cadsql2 = cadsql2 & " '................', " & " 'Venta M.' "
                Else
                    cadsql2 = cadsql2 & " '................', " & " NULL "
                End If
                cadsql2 = cadsql2 & ")"
                BDSistema.Execute cadsql2, dbSQLPassThrough

                GRSOrden.MoveNext
    Wend

    Este ciclo funciona las a medias, ya que despues del 3 o 4 registro que lee, al intentar leer el siguiente me manda el mismo error que arriba.

    RUN-TIME ERROR '3163':
    The field is too small to accept the amount of data you attempted to add.
    Try inserting or pasting les data.

    En el cuadro de error me da la opción de DEBUGEAR el programa, pero aqui el problema esta en que, una vez en el debug, y SIN MODIFICAR nada del código, preciono F5 para que corra otra vez el programa, se sigue ejecutando sin mostrar ningun tipo de error.

    P.D. Ambos códigos pertenecen a mismo modulo, como se muestra acontinuación:

    cadsql = "SELECT * FROM dt_ordenes_trabajo WHERE
    cadsql = cadsql & "  fecha_entrada >= " & "Format('" & campo1 & "', " & " 'dd/mm/yyyy') AND fecha_entrada <= " & "Format('" & campo2 & "', " & " 'dd/mm/yyyy') "
    cadsql = cadsql & "  order by num_orden_trabajo  "
    Set GRSOrden = BDSistema.OpenRecordset(cadsql, dbOpenSnapshot)

    While Not GRSOrden.EOF
                cadsql2 = "INSERT INTO TMP_ORDEN_DIA (orden, observaciones, estatus)"
                cadsql2 = cadsql2 & " VALUES ("
                cadsql2 = cadsql2 & GRSOrden!num_orden_trabajo & ", "
                If GRSOrden!status = "A" Then
                    cadsql2 = cadsql2 & " 'I.A', " & " 'Activa' "
                ElseIf GRSOrden!status = "P" Then
                    cadsql2 = cadsql2 & " 'PENDIENTE', " & " 'Pendiente' "
                ElseIf GRSOrden!status = "C" Then
                    cadsql2 = cadsql2 & " '................', " & " 'Cancelada' "
                ElseIf GRSOrden!status = "T" Then
                    cadsql2 = cadsql2 & " 'VTA. MOSTRADOR', " & " 'Terminada' "
                ElseIf GRSOrden!status = "VM" Then
                    cadsql2 = cadsql2 & " '................', " & " 'Venta M.' "
                Else
                    cadsql2 = cadsql2 & " '................', " & " NULL "
                End If
                cadsql2 = cadsql2 & ")"
                BDSistema.Execute cadsql2, dbSQLPassThrough
                GRSOrden.MoveNext
    Wend
    martes, 24 de julio de 2007 17:48

Todas las respuestas

  • Como defines la variable cadsql?

     

    Salud!

    miércoles, 25 de julio de 2007 2:37
    Moderador
  • Este tipo de errores lo he visto cuando se intenta ingresar un valor que queda fuera de rango, por ejemplo:

     

    Si quiero ingresar este texto: "Hola Mundo", en un campo de texto cuya longitud sea de 4 entonces mostrara el error anunciado.

     

    La solucion seria que revisaras las longitudes de los campos de tu tabla.

    miércoles, 25 de julio de 2007 13:06
  • SALUDOS COMUNIDAD:
    Antes que nada, les agradezco que hayan respondido a este problema.

    Antes que nada, dejenme decirles que este es un programa ya hecho y que yo solo lo estoy modificando por TODOS los problemas que tiene el mismo

    El problema se presento por el QUERY, todavia sigo buscandole la cuadratura al circulo, pero todavia no le encuentro

    El query dice " SELECT  * FROM ..." y en el programa solo requiere 2 campos, Y entra a un loop, el cual se encarga de recorrer el resultado del query. Las primeras 2 o 3 veces lo hace bien aun que el query trae TODOS los campos de la tabla. Pero despues ya no, y manda el error.

    RUN-TIME ERROR '3163':
    The field is too small to accept the amount of data you attempted to add.
    Try inserting or pasting les data.


    El problema lo solucione cambiando el query " SELECT campo1, campo2 FROM ..." Y se soluciono el problema.


    Comunidad, en verdad les pido una disculpa por postear un problema tan simple y tonto y por hacerles perder su tiempo.
    viernes, 27 de julio de 2007 20:21