Usuario
RUN-TIME ERROR '3163' en VB 6.0

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- Cambiado Toni Recio [Techdencias]Moderator lunes, 8 de junio de 2009 14:00 ([Loc]From:Lenguaje VB.NET)
Todas las respuestas
-
-
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.
-
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.