Error al actualizar tabla en Visual Basic

marcelo23
24 de Febrero del 2006
Tengo un problema al intentar actualizar datos en una tabla de una BD Access 2003 mediante una consulta correlacionada. El codigo es el siguiente:

Dim ssql As String
On Error GoTo salir
Set cn = New ADODB.Connection
cn.Open "DSN=facturacion;pwd="
ssql = "update productos e set " & _
"id_rubro=(select id_rubro from rubros a where e.rubro=a.codrubro ) "
cn.Execute ssql

Al ejecutarlo me da el error -2147467259 cuya descripción es "[Microsoft] [Controlador ODBC Microsoft Access] La operación debe usar una consulta actualizable "

Si realizo una consulta de actualización simple como esta:

ssql = "update productos e set " & _
"id_rubro=1 where rubro='JUG' "
cn.Execute ssql

No da el error, el problema aqui es que hay 1000 rubros y de esta forma deberia realizar mil consultas. Espero puedan ayudarme. Gracias.

mvallejos
24 de Febrero del 2006
Creo que la sql correcta sería

UPDATE Productos INNER JOIN Rubros ON (Productos.rubro=Rubros.codrubro )
SET Productos.Id_Rubro = Rubros.Id_Rubro

Saludos