Foros del Web » Programando para Internet » ASP Clásico »

Ayuda para actualizar tabla en access con un formulario de region repetida

Estas en el tema de Ayuda para actualizar tabla en access con un formulario de region repetida en el foro de ASP Clásico en Foros del Web. Hola a todos Mi problema es que tengo un formulario que se llena con los datos de una tabla de access, en este formulario yo ...
  #1 (permalink)  
Antiguo 09/01/2008, 11:31
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Ayuda para actualizar tabla en access con un formulario de region repetida

Hola a todos

Mi problema es que tengo un formulario que se llena con los datos de una tabla de access, en este formulario yo tengo unos campos de texto, pero como estan en una region repetida todos tienen el mismo nombre y al introducir datos y querer hacer actualización en access me envia error, ya intente con array para separar los datos pero no hace le update. Tienen alguna idea de como podria hacerlo???

Saludos

Última edición por danyac27; 09/01/2008 a las 11:42
  #2 (permalink)  
Antiguo 09/01/2008, 11:57
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Ayuda para actualizar tabla en access con un formulario de region repetida

pega el codigo

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 09/01/2008, 12:53
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Compostela
Mensajes: 103
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Ayuda para actualizar tabla en access con un formulario de region repetida

Sin pegar el código es muy difícil por no decir imposible...

Unas cosillas a ver si ayudan ;)

1. Si el problema lo estás teniendo al recoger los valores del recordset a parte del nombre (rs("id") por ejemplo) puedes hacerlo llamando al índice del campo (por ejemplo si es id el primer valor que recoges sería rs(0)).

2. Si el problema (creo que este) lo tienes porque los campos <input value=...> tienen el mismo nombre por alguna repetición que haces debes cambiarlo mientras estés a tiempo por mil razones va a ser un problema con lo que debes de intentar identificar a cada uno de los campos del formulario, por ejemplo:

<input name="campo1" id ="campo1" value="valor de elemento 1">
<input name="campo2" id ="campo2" value="valor de elemento 2"">
etc

Suerte!
__________________
Fran Castro
Diseño de Paginas Web Descargas Gratis
  #4 (permalink)  
Antiguo 09/01/2008, 12:58
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Re: Ayuda para actualizar tabla en access con un formulario de region repetida

Hola, este es el codigo del archivo en donde tengo la tabla con la region repetida

<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_whoiswho_mig2_STRING
Recordset1.Source = "SELECT * FROM data where id_htc=13 and id_class='2007b'"

Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows
%>
<form name="form1" method="post" action="grades_insert_ph1.asp">
<table width="650" border="1">
<tr>
<td>Id</td>
<td>SAP</td>
<td>FIRSTNAME</td>
<td>LASTNAME</td>
<td>RED BOOK</td>
<td>HYD</td>
<td>PIZZA</td>
<td>G_R</td>
<td>DLG</td>
<td>LOG</td>
<td>CMT</td>
<td>CPS</td>
<td>PE</td>
</tr>
<%
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))
%>
<tr>
<td><label></label>
<input name="id" type="text" id="id" value="<%=(Recordset1.Fields.Item("id").Value)%>" size="4" readonly="true"></td>
<td><%=(Recordset1.Fields.Item("sap").Value)%></td>
<td><%=(Recordset1.Fields.Item("fname").Value)%> </td>
<td><%=(Recordset1.Fields.Item("lname").Value)%> </td>
<td><label>
<input name="rb" type="text" id="rb" value="<%=(Recordset1.Fields.Item("red_book").Valu e)%>" size="4" maxlength="4">
</label></td>
<td><input name="hyd" type="text" id="hyd" value="<%=(Recordset1.Fields.Item("hydraulics").Va lue)%>" size="4" maxlength="4"/></td>
<td><input name="pizza" type="text" id="pizza" value="<%=(Recordset1.Fields.Item("pizza").Value)% >" size="4" maxlength="4"/></td>
<td><input name="geology" type="text" id="geology" value="<%=(Recordset1.Fields.Item("g_r").Value)%>" size="4" maxlength="4"/></td>
<td><input name="dlg" type="text" id="dlg" value="<%=(Recordset1.Fields.Item("dlg").Value)%>" size="4" maxlength="4" /></td>
<td><input name="log" type="text" id="log" value="<%=(Recordset1.Fields.Item("log").Value)%>" size="4" maxlength="4"/></td>
<td><input name="cmt" type="text" id="cmt" value="<%=(Recordset1.Fields.Item("cmt").Value)%>" size="4" maxlength="4" /></td>
<td><input name="cps" type="text" id="cps" value="<%=(Recordset1.Fields.Item("cps").Value)%>" size="4" maxlength="4" /></td>
<td><input name="pe" type="text" id="pe" value="<%=(Recordset1.Fields.Item("pe").Value)%>" size="4" maxlength="4" /></td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Recordset1.MoveNext()
Wend
%>

</table>
<p>
<label>
<input type="submit" name="Submit" value="Submit">
</label>
</p>
</form>
<p>&nbsp;</p>
<p>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>
</p>


Este es el archivo que recibe los valores y que debe hacer la actualizacion en la base de datos

<%@LANGUAGE="VBSCRIPT"%>

<%
Dim oConn
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open="Driver=Microsoft Access Driver (*.mdb); DBQ=" & Server.MapPath("database") & "\whoiswho_mig2.mdb;"

arreglo = request("id")
arreglo = split(arreglo,",")
total = ubound(arreglo)

for x=0 to total
response.write arreglo(x)
next

arreglo1 = request("geology")
arreglo1 = split(arreglo1,",")
total1 = ubound(arreglo1)

for x=0 to total1
response.write arreglo1(x)
next

set oConn = Server.CreateObject("ADODB.Connection") ' conexion
oConn.Open "Driver=Microsoft Access Driver (*.mdb); DBQ=" & Server.MapPath("database") & "\whoiswho_mig2.mdb;"
SQL="UPDATE data SET g_r="&arreglo1&" where id="&arreglo&";" LINEA 30 EN DONDE ENVIA ERROR
set rs= oConn.Execute(SQL)
Set oConn = nothing
%>


Me manda el siguiente error
Microsoft VBScript runtime error '800a000d'

Type mismatch

/esg/esghrd_tec/esghrd_tec_content/utilization/grades_insert_ph1.asp, line 30
  #5 (permalink)  
Antiguo 09/01/2008, 13:11
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Compostela
Mensajes: 103
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Ayuda para actualizar tabla en access con un formulario de region repetida

Partiendo de que existen los campos id y g_r

Prueba a poner:

SQL="UPDATE data SET g_r='"&arreglo1&"' where id="&arreglo&";"

Un saludo.
__________________
Fran Castro
Diseño de Paginas Web Descargas Gratis
  #6 (permalink)  
Antiguo 09/01/2008, 13:19
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Compostela
Mensajes: 103
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Ayuda para actualizar tabla en access con un formulario de region repetida

Estoy viendo el código detenidamente y veo que estás llamando a una matriz (arreglo y arreglo1) como si fuera una variable...

Debería estar dentro del for

for x=0 to total1

SQL="UPDATE data SET g_r="&arreglo1(x)&" where id="&arreglo(x)&";" 'OJO CON LAS COMILLAS SIMPLES EN CASO DE SER CAMPOS DE TEXTO (ver respuesta anterior)
set rs= oConn.Execute(SQL)

next

Saludos.
__________________
Fran Castro
Diseño de Paginas Web Descargas Gratis
  #7 (permalink)  
Antiguo 09/01/2008, 13:21
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Ayuda para actualizar tabla en access con un formulario de region repetida

SQL="UPDATE data SET g_r="&arreglo1&" where id="&arreglo&";" LINEA 30 EN DONDE ENVIA ERROR
response.write sql
response.end
set rs= oConn.Execute(SQL)
Set oConn = nothing

mira que es loq ue trae tu arreglo

creo que tu sql se tiene que ejecutar en for

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #8 (permalink)  
Antiguo 09/01/2008, 13:27
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Ayuda para actualizar tabla en access con un formulario de region repetida

Puse el update en el segundo for y ya no me envia el error pero no hace la actualizacion la base de datos.

Saludos
  #9 (permalink)  
Antiguo 09/01/2008, 13:33
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Compostela
Mensajes: 103
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Ayuda para actualizar tabla en access con un formulario de region repetida

Dos cosillas...

1. ¿Puedes hacer lo que comentó JuanRAPerez y pegar la consulta que te va a mostrar?

SQL="UPDATE data SET g_r="&arreglo1&" where id="&arreglo&";"
response.write sql
response.end
set rs= oConn.Execute(SQL)

2.¿Puedes indicar qué tipo de datos son id y g_r en la base de datos?

Un saludo.
__________________
Fran Castro
Diseño de Paginas Web Descargas Gratis
  #10 (permalink)  
Antiguo 09/01/2008, 13:38
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Ayuda para actualizar tabla en access con un formulario de region repetida

es lio es que el sql tendria que estar dentro de los dos for dado que igual si lo deja dentro de un for tendria solo ese arreglo() disponible

y no entiendo que hace la pagina del form :P

ando topadito
__________________
JuanRa Pérez
San Salvador, El Salvador
  #11 (permalink)  
Antiguo 09/01/2008, 13:54
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Re: Ayuda para actualizar tabla en access con un formulario de region repetida

Al ejecutar la consulta del update me muestra lo siguiente

UPDATE data SET g_r=95 where id=170 , pero no lo actualiza en la base de datos.

Id es un dato autonumerico y g_r es numerico.

El form es para actualizar calificaciones de unos estudiantes.

Hice una tabla con region repetida para que me traiga los registros de todos los estudiantes, en donde puse textfield para el id y para los examenes de los cuales quiero poner calificaciones, pero al poner las calificaciones y dar clic en enviar pasa lo que comente anteriormente.

Saludos
  #12 (permalink)  
Antiguo 09/01/2008, 14:39
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Re: Ayuda para actualizar tabla en access con un formulario de region repetida

Ya logre hacer que me actualice, pero solo lo hace con el primer registro, alguna idea de como puedo lograr que me actualice todos???

Saludos



<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/whoiswho_mig.asp" -->

<%
Dim oConn
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open="Driver=Microsoft Access Driver (*.mdb); DBQ=" & Server.MapPath("database") & "\whoiswho_mig2.mdb;"
'id_data=request.Form("id")
'response.Write(id_data)
'geology=request.Form("geology")
'response.Write(geology)
arreglo = request("id")
arreglo1 = request("geology")

arreglo = split(arreglo,",")
arreglo1 = split(arreglo1,",")

total = ubound(arreglo)
total1 = ubound(arreglo1)

for x=0 to total

for y=0 to total1

set oConn = Server.CreateObject("ADODB.Connection") ' conexion
oConn.Open "Driver=Microsoft Access Driver (*.mdb); DBQ=" & Server.MapPath("database") & "\whoiswho_mig2.mdb;"
SQL="UPDATE data SET g_r="&arreglo1(y)&" where id="&arreglo(x)&";"
set rs= oConn.Execute(SQL)
Set oConn = nothing
response.write sql
response.End()

next
next


%>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:06.