Inserta varios datos de una sola ves

Tengo el siguiente problema ojala me puedas ayudar
tengo una selección de datos que después de hacerle un tratamiento lo despliego en pantalla para que el usuario lo vea el problema es que el los tiene que guardar y no he podido lograr insertarlos en la base de datos(ACCESS) trabajo con asp
el resultado es este y lo despliego en pantalla
Estadística Clientes Morosos
Control Cobranzas Abonos Morosas Prejudicial Vencidas Vigentes Total Gral %
0001 yo -150.00 0 750000 350000 150000 c+a+m+p+v 9%
0015 el 0 350.000 715320 36592 2365998
n.n
Los tengo dentro se un form y con un botón guardar en base de datos
el problema que tengo es que no se como hacer para que al llegar al final del 1 registro 0001 el programa sepa que es uno nuevo 0015 y lo grabe ya que me toma todos los registros 0001 hasta n registros como uno solo y al ingresarlos de esta forma
sssql="insert into tabla (campo1, campo2, campo)values(valor1.valor2.valorn)"
Me da el error de
Error de sintaxis en la instrucción INSERT INTO. Esto es por que no sabe cuando comienza el otro registro ojala me hayas entendido

1 Respuesta

Respuesta
1
Me imagino que al desplegarlo en pantalla para que se vea una linea le colocas un vbcrlf al final
Entonces toda esa cadena que la forman los registros la divides con String. Split por ese carácter: vbcrlf.
Luego grabas registro a registro
No lo despliego en una tabla de html me podrías aclarar que es el vbcrlf.
Aquí te dejo el código del despliegue y del insert
<!--r />set conn = Server.CreateObject("ADODB.connection")
set rs = Server.CreateObject("ADODB.Recordset")
set rs_b = Server.CreateObject("ADODB.Recordset")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\asp\control\control.mdb;"
ssql="select count(Clvref1),Clvref1 from base group by Clvref1 "
set rs=conn.execute(ssql)
if not rs.eof and rs.Bof then<br /-->
<!--se
'onsubmit="return validaform();-->
<form action="ComCargarEstadistica1.asp?" accept-charset="UNKNOWN" enctype="application/x-www-form-urlencoded" method="post">
<table border="1" width="100%">
<tbody>
<tr bgcolor="#87ceeb">
<td align="center">[size= x-small; font-family: tahoma]Fecha[/size]</td>
<td><input maxlength="2147483647" name="fecha" size="10" type="text" /></td>
</tr>
<tr bgcolor="#87ceeb">
<td align="center">[size= x-small; font-family: tahoma]Control Cobranzas[/size]</td>
<td align="center">[size= x-small; font-family: tahoma]Abonos[/size]</td>
<td align="center">[size= x-small; font-family: tahoma]Morosas[/size]</td>
<td align="center">[size= x-small; font-family: tahoma]Prejudicial[/size]</td>
<td align="center">[size= x-small; font-family: tahoma]Vencidas[/size]</td>
<td align="center">[size= x-small; font-family: tahoma]Vigentes[/size]</td>
<td align="center">[size= x-small; font-family: tahoma]Total Gral[/size]</td>
<td align="center">[size= x-small; font-family: tahoma]%[/size]</td>
</tr>
<tr>
<!--r />do while not rs.eof<br /-->
</tr>
<tr>
<td>[size= x-small; font-family: tahoma]<input maxlength="2147483647" name="control" size="20" type="text" value="<%=rs.fields(" />" size="10">[/size]</td>
<td>[size= x-small; font-family: tahoma]
<!--r />dim abon
abon=0
set rs_c=conn.Execute("exec abono")
do while Not rs_c.Eof
if rs_c.fields("Clvref1") =rs.fields("Clvref1") then
abon = abon + rs_c.fields("ImpteML")
end if
rs_c.Movenext
loop<br /-->
<input maxlength="2147483647" name="abono" size="10" type="text" value="<%=abon%>" />[/size]</td>
<td>[size= x-small; font-family: tahoma]
<!--r />dim mor,final
final=0
mor=0
set rs_c=conn.Execute("exec morosas")
do while Not rs_c.Eof
if rs_c.fields("Clvref1") =rs.fields("Clvref1") then
mor = mor + rs_c.fields("ImpteML")
'final=mor/1000000
end if
rs_c.Movenext
loop<br /-->
<input maxlength="2147483647" name="morosas" size="10" type="text" value="<%=mor%>" />[/size]</td>
<td>[size= x-small; font-family: tahoma]
<!--m pre
pre=0
set rs_c=conn.Execute("exec pre")
do while Not rs_c.Eof
if rs_c.fields("Clvref1") =rs.fields("Clvref1") then
pre = pre + rs_c.fields("ImpteML")
end if
rs_c.Movenext
loop<br /-->
<input maxlength="2147483647" name="prejudicial" size="10" type="text" value="<%=pre%>" />[/size]</td>
<td>[size= x-small; font-family: tahoma]
<!--m ven
ven=0
set rs_c=conn.Execute("exec vencidas")
do while Not rs_c.Eof
if rs_c.fields("Clvref1") =rs.fields("Clvref1") then
ven = ven + rs_c.fields("ImpteML")
end if
rs_c.Movenext
loop<br /-->
<input maxlength="2147483647" name="vence" size="10" type="text" value="<%=ven%>" />[/size]</td>
<td>[size= x-small; font-family: tahoma]
<!--m vig
vig=0
set rs_c=conn.Execute("exec vigentes")
do while Not rs_c.Eof
if rs_c.fields("Clvref1") =rs.fields("Clvref1") then
vig=vig+rs_c.fields("ImpteML")
end if
rs_c.Movenext
loop<br /-->
<input maxlength="2147483647" name="vigentes" size="10" type="text" value="<%=vig%>" />[/size]</td>
<td align="center" bgcolor="#000000">[size= x-small; font-family: tahoma]
<!--m suma
suma=0
suma= mor+pre+ven+vig<br /-->
<input maxlength="2147483647" name="total" size="10" type="text" value="<%=suma%>" />
[/size]</td>
<td align="center">[size= x-small; font-family: tahoma]
<!--m porc,porc1
porc1=0
porc=0
porc= vig/suma
porc1 = left(porc,4)'sacamos el resto de los numeros despues del 4 valor <br /-->
<input maxlength="2147483647" name="porcentaje" size="5" type="text" value="<%=porc1%>" />[/size]</td>
</tr>
<tr>
<!--r />rs.Movenext
loop
end if<br /-->
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td> </td>
<td>
<input maxlength="2147483647" name="aceptar" size="20" type="submit" value="GUARDAR ESTADISTICA EN LA BASE DE DATOS " />
</td>
</tr>
</tbody>
</table>
</form>
aqui el del insert
<%
set conn =server.createObject("ADODB.connection")
set rs = Server.createObject("ADODB.Recordset")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\asp\control\control.mdb;"
control =request.form("control")
abonos =request.form("abono")
morosas =request.form("morosas")
prejudicial =request.form("prejudicial")
vencidas =request.form("vence")
vigentes =request.form("vigentes")
total =request.form("total")
porcentajes =request.form("porcentaje")
fecha =request.form("fecha")
'fecha= date()
control = split(control, ",")
abonos = split(abonos,",")
morosas = split(morosas,",")
prejudicial = split(prejudicial,",")
vencidas = split(vencidas,",")
vigentes = split(vigentes,",")
total = split(total,",")
porcentajes = split(porcentajes," ")
for i = 0 to ubound(control)
'response.write (control(i))
',porcentaje," & porcentajes(i) & "
sSQL = "INSERT INTO estadistica (Control,abono,morosas,prejudicial,vencidas,vigentes,total,fecha)values(' " & control(i) & " '," & abonos(i) & ", " & morosas(i) & "," & prejudicial(i) & ", " & vencidas(i) & ", " & vigentes(i) & "," & total(i) & ",'" & fecha & "' )"
set rs=conn.execute(ssql)
next
response.write("<b><br>se ingresaron los datos..")
El ingreso lo hace bien pero el problema que tengo es un campo de un porcentaje (formato 0,96) y al colocarlo para poder hacer el insert me da error de que estoy intentando ingresar más campos de los que tengo y el otro problema es que que tengo un campo de nombre cliente y si trae el carácter de comillas simples la base de datos (access)no me lo deja ingresar como puedo hacer para poder ingresarlo o borrarlo
Si lo despliegas en una tabla html, entonces toma cada fila de la tabla y grabas el registro en la tabla.
VbCrlf es una cosntante en VB.NET para indicar el return
El problema que tengo es que al querer hacer el ingreso tengo un registro de tipo porcentaje (ejemplo 0,98) pero al querer ingresarlo me sale que tengo estoy ingresando más campos de los que tengo como puedo hacer para que el 0,98 se me ingrese sin problemas
Claro, eso es porque utilizas la coma como decimal, debes cambiarla por punto y se soluciona
Ya le saque la suma pero si le pongo el punto me da error lo solucione sacándole el la, pero el ingresarlo ala base me queda (EJ 99)no es la idea pero se soluiciono ha
Mira tengo varios campos numéricos de esta forma 5000000 como puedo hacer para que aparezcan de esta forma al desplegarlos 5.000.000 ojala me puedas ayudar
Strings. Format, con este puedes darle el formato que necesites.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas