Forms 一个(可能未绑定)Access 2003表单以创建多个记录

Forms 一个(可能未绑定)Access 2003表单以创建多个记录,forms,ms-access,ms-access-2003,data-entry,Forms,Ms Access,Ms Access 2003,Data Entry,我被招募来做一份追踪标本的表格。每个样本与一个受试者相关;每个样本在9 x 9存储箱中也有一个特定的槽。为了便于数据输入,我认为最好是Access表单镜像框本身(以及用于将数据输入Access的纸质表单):九列九行,每个元素基本上由一个样本ID文本框组成。这基本上就是我希望它的外观: 因此,数据输入人员基本上会输入框号和样本ID,然后单击“创建记录”将所有这些记录都弹出(您可以在这里看到一些其他内容,但现在这并不重要)。然而,我并不确定编写此代码的最佳方法。现在,我能想到的最好的过程是:1)运

我被招募来做一份追踪标本的表格。每个样本与一个受试者相关;每个样本在9 x 9存储箱中也有一个特定的槽。为了便于数据输入,我认为最好是Access表单镜像框本身(以及用于将数据输入Access的纸质表单):九列九行,每个元素基本上由一个样本ID文本框组成。这基本上就是我希望它的外观:

因此,数据输入人员基本上会输入框号和样本ID,然后单击“创建记录”将所有这些记录都弹出(您可以在这里看到一些其他内容,但现在这并不重要)。然而,我并不确定编写此代码的最佳方法。现在,我能想到的最好的过程是:1)运行一个插入查询来创建一个不存在的框;2)运行一个插入查询来创建一个不存在的主题(person);3)对每个样本运行一个插入查询,对其行和列进行硬编码(例如,box\u col='A',box\u row='1')

注意:主题ID和样本ID都将从ID字段中解析出来——这很愚蠢,不是我的想法,但这就是它的设置方式。不过我能应付


这当然是一个难题,但我不确定还能做些什么,我在谷歌上搜索到的大部分内容都与从一个表单创建多个记录无关。有更好的方法吗?我是否应该放弃这个想法,采用更传统的绑定子表单方法?我非常感谢您的见解和建议。非常感谢。

这一切都可以在子表单中完成-但是,为了简单起见(点击次数少、用户体验更轻松、直观),我假设您设计了它,以便最终用户能够看到他/她需要输入的所有内容。这样做没有错。数据输入完毕后,只需在表单上设置一个按钮,即可同时执行多个插入操作。 从1开始,每次发出新的
INSERT
语句时包含9次迭代

一旦语句完成,我会亲自在每一行旁边打一个小复选标记,这样如果插入成功,它就会检查它是否为真。你可以漂亮地使用绿色图像/红色图像。完成流程后,应清除所有字段,以允许额外输入


我看不出你有什么问题。

这可以在子表单中完成-但是,为了简单(点击次数少、用户体验更轻松、直观),我假设你设计了它,以便最终用户看到他/她需要输入的所有内容。这样做没有错。数据输入完毕后,只需在表单上设置一个按钮,即可同时执行多个插入操作。 从1开始,每次发出新的
INSERT
语句时包含9次迭代

一旦语句完成,我会亲自在每一行旁边打一个小复选标记,这样如果插入成功,它就会检查它是否为真。你可以漂亮地使用绿色图像/红色图像。完成流程后,应清除所有字段,以允许额外输入


我看不出你有什么问题。

弗里格。我刚打了十分钟。这就是为什么我不喜欢基于web的表单。虽然公平地说,这是StackOverflow上第一次发生这种情况

您真的需要以后以输入的格式查看数据吗。如果他们可以只查看常规的子表单,这至少是工作的一半,因为您不再需要更新此表单

还要注意的是,如果我没记错的话,每个表单的最大生存期为768个控件。9 x 9 x 2是162,所以你在那里会没事的。然而,如果您决定删除并重新创建许多控制项,您可能会遇到麻烦。如果你达到了这个极限,我认为用一个单独的名字保存表单应该会重置计数器

注意:您可以使用以下构造来引用控件,从而使操作更轻松

Me.Controls("abc" & Row & column) 
例如,在更新类型控件之后,可以使用

call InsertRecords(3, "B")

sub InsertRecords(row as integer, Column as string)
....
cboTypeValue = Me.Controls("cboTypeID" & Row & Column) 
....

弗里格。我刚打了十分钟。这就是为什么我不喜欢基于web的表单。虽然公平地说,这是StackOverflow上第一次发生这种情况

您真的需要以后以输入的格式查看数据吗。如果他们可以只查看常规的子表单,这至少是工作的一半,因为您不再需要更新此表单

还要注意的是,如果我没记错的话,每个表单的最大生存期为768个控件。9 x 9 x 2是162,所以你在那里会没事的。然而,如果您决定删除并重新创建许多控制项,您可能会遇到麻烦。如果你达到了这个极限,我认为用一个单独的名字保存表单应该会重置计数器

注意:您可以使用以下构造来引用控件,从而使操作更轻松

Me.Controls("abc" & Row & column) 
例如,在更新类型控件之后,可以使用

call InsertRecords(3, "B")

sub InsertRecords(row as integer, Column as string)
....
cboTypeValue = Me.Controls("cboTypeID" & Row & Column) 
....

这可以用作某种仅限于网格的本机访问控制

如果有人发布一个示例,说明如何为每个未绑定记录创建自定义的未绑定子窗体,并提供一个代码来循环并将其保存到表中,那将非常棒


这样就不会有那么多控件,也不会受到表单上字段数量的限制。

这可以用作某种本机访问控件专用网格

如果有人发布一个示例,说明如何为每个未绑定记录创建自定义的未绑定子窗体,并提供一个代码来循环并将其保存到表中,那将非常棒


这样就不会有那么多控件,表单上的字段数量也不会有任何限制。

谢谢-听到这一点也很有帮助。无论出于什么原因,我从来没有感觉到我在VB中做的事情是正确的——它和我通常使用的东西太不一样了。还有,谢谢你的帮助