Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/03/2009, 03:45
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Run-Time error '3219': La operación no está permitida en este contexto.

Hola, como te dice Valentino, debes setear el recordset al entrar en la función, pero lo que ya no tiene sentido es poner esta instrucción:

If rst_actualiza.State = adStateOpen Then rst_actualiza.Close

Porque cuando se asigna el recordset a la variable 'rst_actualiza' el objeto recordset siempre está cerrado.

Por otra parte, hay algunas cosas que me llaman la atención:

rst_actualiza!p_uni = rst_actualiza!p_uni * 1

¿Qué es lo que quieres hacer? pues le estás asignando el mismo valor (el resultado de un número multiplicado por la unidad es siempre el mismo número).

For i = 0 To Val(frm_presupuesto.MSHFlexGrid1.Rows) - 1 Step 1

La función Val sobra, ya que la propiedad Rows del control MSHFlexGrid devuelve un Long.
La instrucción Step 1 sobra ya que en un bucle For..Next siempre se salta paso a paso (de uno en uno).
Esta instrucción se suele poner si quieres realizar el bucle de dos en dos (o mas) o si se quiere hacer de atrás hacia adelante (Step -1).

Saludos