1

我被招募来制作追踪标本的表格。每个样本都与一个主题相关联;每个标本在 9 x 9 的存储盒中也有一个特定的插槽。为了便于数据输入,我认为 Access 表单最好反映盒子本身(以及将用于将数据输入 Access 的纸质表单):九列九行,每个元素基本上由一个文本组成标本 ID 框。这基本上是我希望它看起来的样子:

替代文字

因此,数据输入人员基本上会输入盒子编号和样本 ID,然后单击“创建记录”以弹出所有这些记录(您可以在此处看到一些其他内容,但现在这并不重要)。但是,我不确定最好的编码方式。现在,我能想到的最好的过程是:1)运行插入查询来创建框,如果它不存在,2)运行插入查询来创建主题(人),如果它不存在, 和 3) 对每个样本运行插入查询,在其行和列中进行硬编码(例如 box_col = 'A', box_row = '1')。

注意:主题 ID 和标本 ID 都会从 ID 字段中解析出来——这很愚蠢,不是我的想法,但这就是它的设置方式。不过,我可以处理。

这当然是一个难题,但我不确定还能做什么,而且我搜索到的大部分内容都与从单一表单创建多条记录无关。有一个更好的方法吗?我应该放弃这个想法并采用更传统的绑定子表单方法吗?

4

3 回答 3

2

弗里格。我刚刚失去了十分钟的打字时间。这就是为什么我不关心基于 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) 
....
于 2010-09-13T19:42:05.447 回答
2

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

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

我看不出你有什么问题。

于 2010-09-13T17:36:41.863 回答
0

这可以用作某种本机访问控制唯一的网格。

如果有人会发布一个示例,说明如何为每个未绑定记录创建带有行的自定义未绑定子表单以及循环并将其保存到表中的代码,那就太好了。

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

于 2010-09-14T05:21:37.407 回答