根据从组合框中选择的条目在 Access 表单中创建条目(不包括来自组合框的条目)

Posted

技术标签:

【中文标题】根据从组合框中选择的条目在 Access 表单中创建条目(不包括来自组合框的条目)【英文标题】:Create entry in Access form based on entry chosen from combox box (without including the entry from the combo box) 【发布时间】:2020-02-06 22:21:52 【问题描述】:

我使用 Access 来维护我处理的案件的列表(包含详细信息)(我是一名法律专业人士)。我希望 Access 为每个案例添加一个唯一的案例标识符。我使用表格将数据输入到数据库中。

我编写了这个非常简单的代码来添加 Case ID nr:

Private Sub Command81_Click()
If Not IsNull(Me.Case_ID) Then
DoCmd.CancelEvent
Else
Command81.Enabled = True
Me.Case_ID = Me.Combo321 + Format(Me.[Date Original Event], "yymmdd") + Format(Time, "hhmmss")
End If
End Sub

我的想法是我填写表单中的不同字段,然后单击一个按钮以添加案例 ID(列在文本框(在表单中)和名为“Case_ID”的字段(在数据库中))。

当我点击按钮时,它应该检查是否已经有一个案例 ID。如果有它不会创建一个新的。如果没有,将根据案例发生的国家/地区 (Combo321) + 原始事件发生的日期 + 我创建案例 ID 的时间创建新的案例 ID。

从下拉菜单中选择案件发生的国家 (Combo321)。下拉菜单中的选项来自包含国家/地区列表的表格:

荷兰、英国、德国等

如果可能,我想在下拉菜单中保留(完整)国家/地区名称列表,但在 ID 的情况下使用 2 或 3 个字符的缩写。因此,如果我从下拉菜单中选择案件发生在荷兰,我希望案件 nr 以 NL 开头,如果案件发生在英国,我希望案件 Nr 以英国开头,等等。

是否可以在带有国家名称的表中创建带有缩写的第二列,然后在代码中以某种方式使案例 ID 以“属于”相关条目的第二列中的条目开头我从下拉菜单中选择的第一列(国家全名)?

或者也许还有其他方法可以做到这一点?

【问题讨论】:

【参考方案1】:

是的,在表中创建字段。然后在组合框 RowSource (多列组合框)中拥有该字段。组合框属性:

行来源:SELECT CountryCode, Country FROM Countries; 列数:2 列宽:0";1.0" BoundColumn: 1 ControlSource:保存选定组合框值的字段

如果组合框绑定到字段,两个字母的 CountryCode 将被保存到记录中。您的代码也将使用它。

保存依赖于其他数据的数据通常不是必需的,而且通常是个坏主意。该标识在需要展示时可以通过表达式构造。

另外,建议养成使用nn 几分钟而不是mm 的习惯。它实际上似乎对 Format() 函数没有影响,但我已经看到了它的用法,虽然不记得确切的情况。

【讨论】:

以上是关于根据从组合框中选择的条目在 Access 表单中创建条目(不包括来自组合框的条目)的主要内容,如果未能解决你的问题,请参考以下文章

当用户从 MS Access 的组合框中选择“其他”时,如何显示输入表单?

使用宏过滤带有组合框的表单 - MS Access

整个表搜索表单 - Microsoft Access 2010

从组合框中选择时,Access 添加新记录

根据组合框选择切换表单上其他字段的可见性 - MS Access

如何在 Access 中打开表单,自动选择组合框中的值并显示详细信息?