如何从另一个子表单

时间:2016-10-26 15:48:02

标签: vba ms-access combobox

在搜索并尝试了几件事之后,是时候看看是否有人可以让我走上正确的道路。

背景

在我的应用程序中,要求管理员将CSV文件导入特定表。该工具'创建以下是为了使其尽可能灵活。虽然不是最优的,但某些CSV的列名称是非标准的,因此让管理员将CSV字段与表字段匹配是最灵活的。 "无"只是意味着不会将数据导入相应的表字段。

主窗体未绑定,包含3个未绑定的子窗体 - 所选的db表各一个,CSV临时表(CSV字段)以及所选表或CSV临时表的数据列表。它看起来像这样:

Map import form

所有下拉列值都在VBA代码中设置。

当用户从顶部组合框中选择数据库表时,左子表单填充表的列,右子表单显示相应数量的下拉列表,其中填充了CSV临时表的列和选项"无"。

底部"数据" display允许用户通过单击" Table"来选择查看所选表的数据或CSV临时表数据。或" CSV"。

在底部子窗体中,右侧有一个按钮,允许用户更改导入到临时CSV表中的CSV。基本上用户浏览到新的CSV文件,原始临时CSV表将被删除,新CSV将导入新的临时CSV表( new,因为新CSV中可能有不同的列

问题

除了在将新CSV导入临时表后刷新CSV字段组合框时,一切正常

我尝试过多次迭代,但所有迭代都是相同的 - CSV字段下拉列表(右上角子窗体中的 )显示#Deleted所有条目都不会使用新临时CSV表中的新列名刷新。

已经尝试

  • 在底部数据子表单按钮单击事件中调用CSV字段子表单的RefreshColumn公共子例程,该事件调用填充原始下拉列表的CSV字段子表单中的原始子字段。它运行代码,但CSV字段下拉列表的显示不变。

    Call Form_CSVfields.RefreshColumn
    
  • 在调用原始填充子例程后,使用上面的.Requery表示CSV字段子表单和/或CSV字段下拉列表。它再次运行代码,但CSV字段下拉列表保持不变。

  • 在底部子表单的CSV导入按钮单击事件中为CSV字段子表单和/或CSV字段下拉列表添加.Requery。与之前的结果相同,代码运行但CSV字段下拉列表不会使用新列名称重新填充。 (CSVfields是主窗体MapImportFields

    上的子窗体控件
    Forms!MapImportFields!CSVfields.Form.Requery
    

任何人对更新临时CSV表时如何刷新CSV组合框有什么想法?

0 个答案:

没有答案