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
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.