表/查询

时间:2017-12-18 16:33:27

标签: vba ms-access combobox access-vba

我有一些ComboBoxtable/query模式配置,这意味着他们从Access数据库中的表中获取项目列表。
通常,这个ComboBox - 被称为Editar_CodigoEditar_Nombre - 只使用列表中的项目,但有时我想写出表中不存在的新项目(因为那时候)我将按“添加记录到表格”按钮) 但是我遇到了问题,Access产生了一个PopUp,表示ComboBox中的值不存在于表中,并且在我删除{{1}中的写入值之前我无法关闭该PopUp }。

我发现存在一个表达式,当ComboBox获取一个不存在的值时会激活该表达式。

ComboBox

但即使使用它,也发生了这种情况:

  1. 首先,我写了“错误”的价值。
  2. 其次,执行Private Sub ComboBox_NotInList(NewData As String, Response As Integer) End Sub (在我的情况下为ComboBox_NotInListEditar_Codigo_NotInList)。 (我检查一下Editar_Nombre_NotInList)。
  3. 最后,Access PopUp已打开。
  4. 我想删除上述“连锁事件”的第三项。我怎么能这样做?

    修改

    enter image description here

    我们的想法是在MsgBox ComboBox中编写产品代码,Editar_Codigo中的名称以及下两个TextBox中的价格和库存。最后,按下名为“Añadir”的按钮,将记录添加到名为“Lista de Stock”的表中。
    但问题是我不能在ComboBoxes中写出“不存在的值”(表中不存在的值)。所以我希望能够“忽略”PopUp,如何让Access不要提升PopUp?

2 个答案:

答案 0 :(得分:1)

将数据标签下的组合框的列表属性限制为no。limit to list property of combo box under data tab

答案 1 :(得分:0)

确定。我想你能做的是。首先让这个组合只看到一列Alpha,beta,Gamma。现在,只要用户选择Beta而不是组合框的set属性,即after update,并编写代码以从表中获取相应的值。 例。假设组合框的名称是combo1。

colomnInvisibleValue = dlookup("colomnName","TableName","VisibleColomnName= '"  & me.combo1.value & "' ")

变量colomnInvisibleValue将根据您的上一条评论包含值(2)。