根据从组合框中选择的条目在 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 的组合框中选择“其他”时,如何显示输入表单?
整个表搜索表单 - Microsoft Access 2010