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.
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
0