首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用VBA更新access数据表中仅当前行上的控件

如何使用VBA更新access数据表中仅当前行上的控件
EN

Stack Overflow用户
提问于 2016-03-07 15:36:58
回答 1查看 2.2K关注 0票数 2

下面的数据表子表单在每个单元格中都有一个组合框。如果在左边的一个单元格中选择一个新值,则右边的单元格需要请求并设置为null (因为右边的组合框被左边的单元格过滤)。如果数据表中只有一行,则我的代码运行良好。但是,如果有多个,那么我的代码会将所有的组合框重置为右边的所有行(这很糟糕)。我需要更改我的代码(在下面列出),以只重置与选择的组合框相同行上的字段?

下面是第一个组合框上的VBA:

代码语言:javascript
运行
复制
Private Sub cbo_LOA_Segment1_AfterUpdate()
' requery all subsequent LOA combo boxes to
' show only LOAs matching the selected Agency AND that match the earlier LOA entries
    With Me
        !cbo_LOA_Segment2 = Null
        !cbo_LOA_Segment2.Requery
        !cbo_LOA_Segment3 = Null
        !cbo_LOA_Segment3.Requery
        !cbo_LOA_Segment4 = Null
        !cbo_LOA_Segment4.Requery
        !cbo_LOA_Segment5 = Null
        !cbo_LOA_Segment5.Requery
        !cbo_LOA_Segment6 = Null
        !cbo_LOA_Segment6.Requery
        !cbo_LOA_Segment7 = Null
        !cbo_LOA_Segment7.Requery
        !cbo_LOA_Segment8 = Null
        !cbo_LOA_Segment8.Requery
        !cbo_LOA_Segment9 = Null
        !cbo_LOA_Segment9.Requery
        !cbo_LOA_Segment10 = Null
    End With


End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-07 18:24:37

数据表视图类似于连续窗体,因为控件实际上只存在一次。因此,正如您已经注意到的,使用多个记录,一旦组合框的内容被更改,这将影响到每一条记录。

唯一的解决办法是一次只有一个记录显示。这对您的应用程序可能不实用,这取决于您有多少记录和编辑过程是什么。同样,如果您只编辑使用唯一键可以找到的特定记录,因为您可以快速过滤数据,这可能是非常实用的。

您可以使用Nathan上面的建议,尽管这需要转换数据(这是一种主要的危害),或者需要大量代码才能首先将表读入数组,将数组写入屏幕,然后(向后工作)用每个记录一个调用更新表。效率不高,但可行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35847745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档