错误调用子VBA访问广告设计

时间:2015-03-01 13:45:30

标签: forms vba call

首先,我为我的英语道歉。它不是我的第一语言。

其次,我正在尝试使用类似参数输入ME或Forms![REGIMEN]从Form_load调用sub(ConfiguracionFormulario),表单的名称是REGIMEN。

我尝试使用“Forms![REGIMEN]”和docmd并且代码运行正常,但是如果我使用像“Forms![FormInput.Name]”之类的变量那么它就不会运行。

我虽然在ConfiguracioFormulario上使用字符串参数而不是表单,但也使用Form_REGIMEN。

我确信我在概念上有任何问题,但我是vba的noob。

Private Sub Form_Load()
    ConfiguracionFormulario Me
End Sub

Private Sub ConfiguracionFormulario(ByRef FormInput As Form)

    Dim strFormInput As String

    strFormInput = FormInput.Name

    If FormInput.AutoCenter = False Then
    'Cerramos el formulario en vista normal, y lo abrimos en modo diseño
    DoCmd.Close acForm, strFormInput, acSaveYes
    DoCmd.OpenForm strFormInput, acDesign, , , , acHidden

    'Ajustamos las propiedades que solo pueden ser ajustadas en modo diseño
    FormatInput.AutoCenter = True

    'Cerramos el formulario en vista diseño, y lo abrimos en modo normal. Guardo configuración para no entrar en bucle
    DoCmd.Close acForm, strFormInput, acSaveYes
    DoCmd.OpenForm strFormInput, acNormal

    End If
End sub

有人可以说为什么这个启动错误消息?提前谢谢。

1 个答案:

答案 0 :(得分:0)

你的问题有很多问题(并且解决了主要问题),我试着解释每个人:
1.-代码有一点bug:FormatInput.AutoCenter = True 您必须将FORMATINPUT更正为FORMINPUT
2.-您无法在设计模式中使用Sub或Procedure进入表格。
复制始终复制到任何模块并重复使用。
3.-您无法关闭自己的表单以尝试打开然后...在acDesign中,保存,再次关闭并重新打开。
您必须从另一个始终打开并运行的表单执行此操作/> 4.-为什么这样做只是添加me.AutoCenter=True解决你需要的所有问题? 5.-为什么不在执行主应用程序之前执行检查所有表单和修改属性的任何函数?有相同的结果。
6.-如果你想要居中,为什么不在编程期间使用表格属性并保存?以前都比较容易
检查你的想法到最终的应用程序,并使用,可以更好地研究你需要什么,而不是用户可以"玩"。