consulta a dos tablas con dos recordset ¿donde esta el error?

silvia
26 de Septiembre del 2003
hola, estoy intentando hacer dos consulta a la vez con dos recordset, una a una tabla llamada PresupuestoElectro y otra a la Tabla Electrodomesticos, para pasar datos de una a otra, el codigo es el siguiente.

Dim cnn
Dim str
Dim rs,rs2,rs4
Dim SQL
Dim SQL2,SQL4
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open "baseDatosAraika"

%>
<%

%>
<%


Set rs = Server.CreateObject("ADODB.Recordset")
SQL="select * from PresupuestosElectro where campo = 1"
rs.Open SQL,cnn,2, 2
Set rs4 = Server.CreateObject("ADODB.Recordset")
SQL4="select * from Electrodomesticos where Electrodomesticos.Marca="&Request.Form ("Marca")& " and TipoELectro=" & Request.Form ("TIpoELectro")&" and Modelo="&Request.Form ("Modelo")
rs4.Open SQL4,cnn,2,2
Response.Write ( "La marca de rs4 es " & rs4("Marca"))
rs.AddNew
rs.Fields ("PresupuestoID")= Request.Form ("IDPresupuesto")
rs.Fields ("OportunidadID") = Request.Form ("IDoportunidad")
Response.Write (Request.Form ("TipoElectro"))
if Request.Form ("TipoElectro")<>"" then
Response.Write ("ha entrado "&Request.Form ("TipoElectro"))
rs.Fields ("TipoElectro") = rs4("TipoElectro")
end if
if Request.Form ("Marca")<>"" then
rs.Fields ("Marca") = rs4 ("Marca")
end if
if Request.Form ("modelo")<>"" then
rs.Fields ("Modelo") =rs4("Modelo")
end if
rs.Fields ("PrecioEuros")= rs4("PrecioEuros")
rs.Fields ("PrecioPtas")= rs4("PrecioPtas")
rs.Update
rs.close
rs4.Close

y me genera el siguiente error

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 3.
/araika/OperacionesPresupuestoElectro.asp, line 32
la linea 32 es la linea

rs4.Open SQL4,cnn,2,2

Alguien me puede ayudar a ver donde esta el error? por favor es urgente, si necesitais mas información por favor pedirmela.

muchas gracias
silvia

huanan
26 de Septiembre del 2003
Es curioso que rs no te de error y rs4 si.
Creo que es por la cadena de cunsulta SQL4.
Las variables string en sql deben estar entre comillas simples, asi que deberia ser:
SQL4="select * from Electrodomesticos where Electrodomesticos.Marca='"&Request.Form ("Marca")& "' and TipoELectro='" & Request.Form ("TIpoELectro")&'" and Modelo='"&Request.Form ("Modelo") & "'"

En definitiva, tienen que quedar, por ejemplo:
Electrodomesticos.Marca='Zanussi'

Espero que te sea util.
Huanan

jartalo
26 de Septiembre del 2003
La sintaxis es la siguiente:

rs4.Open sql4, cnn, 3

En efecto se esperan 3 parámetros.
1.- La consulta en sí
2.- la conexion
3.- El tipo de acceso: 3= acceso estático.

Espero haberte ayudado