【问题标题】:Open Form based on ComboBox Access 2010基于 ComboBox Access 2010 的打开表单
【发布时间】:2013-03-28 16:31:07
【问题描述】:

我在表单上有一个组合框,其中有一个未绑定的列 [系统类型]。我在 Access 的 Macro Builder 中工作,试图设置一个 If 语句。我的最终目标是打开一个表单,这取决于未绑定的列。

我似乎不知道如何引用该列。我已尝试 [Forms]![My Form]![My Combo].Column(1),但我收到无法识别的函数错误。我还通过在线搜索尝试了该语句的变体。

如何在 Access 2010 中的 MacroBuilder 的组合框中为 If 语句引用未绑定的列?

谢谢。

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    如果一个组合只有一列,它是column(0),或者只是[MyCombo],我想你错过了有两种类型的组合绑定,它可以绑定到表中的一个字段并且你可以有一个绑定列,它是组合返回的值。

    Row Source : SELECT Atext FROM ATable
    Bound Column : 1
    Column Count : 1
    
    MsgBox Me.myCombo  ''Atext
    
    Row Source : SELECT ID, Atext FROM ATable
    Bound Column : 1
    Column Count : 2
    
    MsgBox Me.myCombo  ''ID
    MsgBox Me.MyCombo.Column(1) ''Atext
    
    Row Source : SELECT ID, Atext FROM ATable
    Bound Column : 2
    Column Count : 2
    
    MsgBox Me.myCombo  ''atext
    MsgBox Me.MyCombo.Column(0) ''ID
    

    所以要从这个表单打开一个表单:

    DoCmd.OpenForm "aForm",,,"ID=" & Me.MyCombo ''First example
    

    从另一种形式

    DoCmd.OpenForm "aForm",,,"ID=" & Forms!AnotherForm.MyCombo ''First example
    DoCmd.OpenForm "aForm",,,"Atext='" _
       & Forms!AnotherForm.MyCombo.Column(1) ''Second example
    

    【讨论】:

    • 我的组合框设置类似于第二个示例。看来我的语法是错误的。我正在使用 [Forms]![My Form]![School Combo].[Column](1) 正确的是 [Forms]![My Form].[School Combo].[Column](1)。区别在于! [My Form] 和 [School Combo] 之间应该是 .感谢您的帮助。
    猜你喜欢
    • 2016-11-23
    • 1970-01-01
    • 2023-03-04
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    相关资源
    最近更新 更多