Problemas con variables

Tengo una aplicación que me esta dando error cuando realizo un select y en este hago un sum de una variable de la tabla y al insertarla en otra da error de conversión, te muestro:
Es es el select:
SELECT count(Tarjeta) as Cantidad, (sum(Monto_disp)/100) as Monto from TLF1 (index(indfecha_disp)) Where (fecha_disp > '050216' and fecha_disp <= '050217') and Typ = '420' and Codigo_Trans = '10'
e inserta la data en otra tabla:
oConn.execute "INSERT INTO COMPENSADOR(Cantidad,Monto,Tipo) VALUES ('"&rs.fields("Cantidad").value&"','"&VarMonto&"','A')"
El error arrogado es :
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]Error al convertir el tipo de datos varchar a numeric.
La variable el la tabla en la cual se hace el insert esta declarada como decimal y en la tabla de la que se lee esta como money, al revisar la data veo que hay un registro con decimales y es el que me esta causando el problema, lo que no entiendo es porque da error si la variable es decimal.
Por favor que tengo que hacer para solucionar el problema.

1 respuesta

Respuesta
1
El problema no es en el insert es desde la sentencia de select, el formato de fecha debe de ser (yyyymmdd) y si quieres la hora (yyyymmdd hh:mm:ss) :
SELECT count(Tarjeta) as Cantidad, (sum(Monto_disp)/100) as Monto from TLF1 (index(indfecha_disp)) Where (fecha_disp > '20050216' and fecha_disp <= '20050217') and Typ = '420' and Codigo_Trans = '10'
e inserta la data en otra tabla:
oConn.execute "INSERT INTO COMPENSADOR(Cantidad,Monto,Tipo) VALUES ('"&rs.fields("Cantidad").value&"','"&VarMonto&"','A')"
Te explico, la fecha, esta declarada como Char de 6 debido a que se trabaja es con yymmdd sin importar si es yyyymmdd, el problema me da es cuando la variable Monto que es el alias de SUM(Monto_Disp)/100 as Monto me da con decimales es decir 120344.74 y cuando va hacer el insert me da error de convertir el tipo de datos varchar a numeric. Y me doy cuenta que es por los decimales ya que si le quito manualmnete los decimales al monto 120344.00 la aplicación corre perfectamente. ¿Qué función de conversión debo aplicar para convertir el valor SUM(Monto_Disp)/100 que es un valor varchar a decimal o numérico?
Si en la instrucción de insert le indicas el nombre del campo de cantidad, porque en el segundo campo no le pasas el mismo nombre de campo de Monto, o que significa VarMonto y de que tipo de campo es Monto_disp.
Disculpa... pero ya lo intente.. puse los dos campos money y sigue el error...
Ok... count(Tarjeta) as Cantidad cuenta la cantidad de tarjetas, (sum(Monto_disp)/100) as Monto me suma los montos de las tarjetas, en el insert mando el alias Monto, lo que pasa es que te envíe una variable con la cual estaba haciendo pruebas de conversión, pero en el insert mando es rs.fields("Monto").value al igual como la cantidad.
El campo Monto_disp es money en la tabla original y cuando lo inserto a la otra tabla monto es decimal. Trate de hacer una conversión pero me da error, y con otras me redondea la cantidad y eso no lo quiero ya que debe guardar los decimales.
Puedes pegar todo el código completo para verlo mejor.
Sugiero que le dejes el mismo tipo de campo, no te afecta en nada que los dos sean money.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas