Access - ERROR 438

 
Vista:
sin imagen de perfil

ERROR 438

Publicado por Jose (40 intervenciones) el 04/01/2022 06:48:40
Evitar el error 438 en un proceso de una rutina de calculo
Utilizo este proceso para calcular el PVP en un formulario continuo:
'*-----------------------------------------------------------------------------------------------------------------------------------------------------
DoEvents
Me.UNIDADESTOTALES = Me.UNIDADESGENERALES * Me.UnidadesLineas
On Error GoTo Sol_Err
Dim bucle As Integer
Dim i As Integer
DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
'*
'Set Rst = Nothing
DoCmd.OpenForm "INTERMEDIOCALCULOPVPDIRECTO", , , , , acHidden
Forms!INTERMEDIOCALCULOPVPDIRECTO!IdProducto = Me.IdProducto
Forms!INTERMEDIOCALCULOPVPDIRECTO!Nombre = Me.Nombre
Me.AreaProducto = ((Me.AnchoProducto / 1000) + (Me.AnchoSangrado / 1000)) * ((Me.AltoProducto / 1000) + (Me.AltoSangrado / 1000))
Forms!INTERMEDIOCALCULOPVPDIRECTO!AreaProducto = AreaProducto + AreaSangrado
'*
Forms!INTERMEDIOCALCULOPVPDIRECTO!AreaMinima = Me.AreaMinima
Forms!INTERMEDIOCALCULOPVPDIRECTO!AreaMaterial = Me.AreaMaterial
Forms!INTERMEDIOCALCULOPVPDIRECTO!GranFormato = Me.GranFormato
Forms!INTERMEDIOCALCULOPVPDIRECTO!IdModeloImpresion = Me.IdModeloImpresion
Forms!INTERMEDIOCALCULOPVPDIRECTO!UNIDADESTOTALES = Me.UNIDADESTOTALES
Forms!INTERMEDIOCALCULOPVPDIRECTO!Desde = "SENCILLO"
Forms!INTERMEDIOCALCULOPVPDIRECTO!CALCULAR = "COMPUESTO"
Forms!INTERMEDIOCALCULOPVPDIRECTO!Donde = "DIRECTO"
Forms!INTERMEDIOCALCULOPVPDIRECTO.Requery
'*
'DoCmd.Close acForm, "INTERMEDIOCALCULOPVPDIRECTO"
DoCmd.GoToRecord , , acNext
Next
'* Fin Lectura Lineas
DoCmd.SetWarnings True
Exit Sub
'*
Sol_Err:
If Err.Number = 2105 Then
Resume Next
Else
MsgBox "Se ha producido el Error: " & Err.Number & ": " & Err.Descripcion
DoCmd.SetWarnings True
End If
DoCmd.SetWarnings True
End Sub
'-----------------------------------------------------------------------------------------------------------------------------------------------------
En el momento que elimino la instrucción de cerrar el form: INTERMEDIOCALCULO dentro del: for .. Next me da el error 438.

Lo intento cerrar porque me relentiza un poco el proceso del calculo.

Tambien tengo el problema que la imagen de forndo que tengo en escritorio me la apaga cuando ejecuto este proceso

Lo que intento es realizar esta rutina de calculo de otra manera para poder realizar la operatoria de forma más rápida.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ERROR 438

Publicado por Anonimo (3316 intervenciones) el 04/01/2022 13:10:45
Desde afuera (mi posición) no le veo sentido a abrir de forma oculta un formulario, asignarle valores a sus objetos y cerrarlo.

Es muy probable que con los datos aportados, mi visión de la globalidad de lo que se intenta no sea la correcta.

Si se desea 'velocidad' calculando, se suele lograr con recordset y variables o SQLs o ... los formularios tiene otras aplicaciones en las que su utilización es la adecuada (esta ... no lo parece porque ni siquiera se visualiza ni interactúa con el).

Me plantearía alternativas o enfoques mas eficientes en detrimento del formulario oculto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Eduardo

ERROR 438

Publicado por Eduardo (317 intervenciones) el 04/01/2022 17:39:32
Lo mismo se le ha respondido por TodoExpertos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar