En el siguiente código falla al llegar a lo marcado en azul cuando ya ha hecho lo mismo con otras tablas en dos lineas anteriores:
Sub ingredientes()
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete * from ResumenIngedientes;"
DoCmd.OpenQuery ("CrearIngedientesDeRecetasSeleccionadas")
DoCmd.OpenQuery ("CrearRecetasvsIngredientes")
DoCmd.SetWarnings True
' CREACION DE LA CONEXION
Call ConexionBaseLocal
'CREA la referencia al conjunto de registros y configura propiedades
'ABRE UN CONJUNTO DE REGISTROS Y VISUALIZA UNO
Set rsIngedientesDeRecetasSeleccionadas = New ADODB.Recordset
rsIngedientesDeRecetasSeleccionadas.Open "IngedientesDeRecetasSeleccionadas", conn, adOpenDynamic, adLockOptimistic, adCmdTable
Set rsResumenIngedientes = New ADODB.Recordset
rsResumenIngedientes.Open "ResumenIngedientes", conn, adOpenDynamic, adLockOptimistic, adCmdTable
Set rsRecetasvsIngredientes = New ADODB.Recordset
rsRecetasvsIngredientes.Open "RecetasVsIngredientes", conn, adOpenDynamic, adLockOptimistic, adCmdTable ' ERROR DE COMPILACION dice que no se encontro el metodo o el dato miembro
rsRecetasvsIngredientes.Delete
rsIngedientesDeRecetasSeleccionadas.MoveFirst
NºCampos = rsIngedientesDeRecetasSeleccionadas.Fields.Count
Debug.Print "NºCampos"; NºCampos ' Campo que corresponde
Do Until rsIngedientesDeRecetasSeleccionadas.EOF
varx = 2
Do Until varx >= NºCampos - 2 ' Hay 2 Campos sin ingredientes
If rsIngedientesDeRecetasSeleccionadas.Fields(varx + 1).Value > 0 Then
rsResumenIngedientes.AddNew
rsResumenIngedientes.Fields(0) = rsIngedientesDeRecetasSeleccionadas.Fields(varx).V alue
rsResumenIngedientes.Fields(1) = rsIngedientesDeRecetasSeleccionadas.Fields(varx + 1).Value
rsResumenIngedientes.Update
rsRecetasvsIngredientes.AddNew
rsRecetasvsIngredientes.Fields(0) = rsIngedientesDeRecetasSeleccionadas.Fields(1).Valu e
rsRecetasvsIngredientes.Fields(1) = rsIngedientesDeRecetasSeleccionadas.Fields(varx).V alue
rsRecetasvsIngredientes.Update
Debug.Print rsIngedientesDeRecetasSeleccionadas.Fields(varx).V alue; " "; rsIngedientesDeRecetasSeleccionadas.Fields(varx + 1).Value; " "; rsRecetasvsIngredientes.Fields(0); " "; rsIngedientesDeRecetasSeleccionadas.Fields(varx).V alue; " ";
End If
varx = varx + 2
Loop
rsIngedientesDeRecetasSeleccionadas.MoveNext
Loop
cerrar:
Debug.Print NºCampos
Debug.Print Err.Description
rsIngedientesDeRecetasSeleccionadas.Close
conn.Close
DoCmd.SetWarnings False
DoCmd.OpenQuery ("CrearListaDeLaCompra")
DoCmd.SetWarnings True
End Sub