是否有一种编程方式来处理 MS Access 中的子窗体/滚动条情况?

Is there a programatic way to deal with subform / scrollbar situations in MS Access?

简短说明:我需要查看数据表子表单中的所有列。具体来说 - 12 列月份。为此,我需要一个水平滚动条。到达那个滚动条是一个挑战。我正在 MS Access 2007 中开发。

详尽描述: 我有一个子表单 'frm_SP',它在数据表视图中显示为 22" 宽​​,这是表单的宽度限制 - 它嵌套在另一个名为 'frm_stage'.

的子表单中

我终于发现,无论我将最上面的“父表单”设置得多么宽 - 'frm_Entry' 我似乎都无法使第 3 个嵌套子表单 'frm_SP' 可见。单杠底部似乎只是通过按比例增长来补偿以保持限制不变 - 这令人沮丧。

如下图所示,我必须向下滚动才能看到水平滚动条。为什么会跌这么远?我在某处指定了吗?无论数据表中存在多少条记录,它都会保持该距离。所以如果它只有 4 条记录,我仍然必须一直向下滚动才能看到滚动条。 同样,我有一组超出水平滚动条的记录,我无法使 window 足够大以查看这些记录。因此,如果他们需要编辑这些记录,我不得不告诉客户打开实际的 table。

我曾犹豫 post 像这样的任何事情,因为它需要图像,但现在我已经完成了这项工作,希望这可以为其他用户解决很多问题。也许这就是我在网上找不到太多答案的原因。

欢迎任何提示,替代方法的建议。

我为箭头键添加了 "SendKeys" 代码,以便 12 个框的功能更像电子表格。 但是我不明白为什么一月被跳过然后它继续每2个框跳过

代码如下:

Private Sub txtDEC_NC_KeyDown(KeyCode As Integer, Shift As Integer)
 Select Case KeyCode
        Case 40 'down
            SendKeys "{TAB}", False

        Case 38 'up
            SendKeys "+{TAB}", False

    End Select
End Sub

如果您还没有这样做,请尝试增加您的二级表单(以及包含底层表单的二级表单的子表单控件)的大小。

您的底层表单(最大宽度为 22")似乎需要一个水平滚动条才能显示在您的二级表单中。这会导致滚动条出现在您的二级表单中(您必须在顶部表单中向下滚动才能看到它)。

相反,您可能更希望滚动条出现在您的顶级表单上,我相信如果您的二级表单(以及您的底层表单的子表单控件)也已设置,您将会得到最大宽度为 22"。

然后底部表单将显示在中间表单内而不需要中间表单滚动条,一个(也是唯一的)滚动条将呈现在顶部表单上,在那里它总是很容易访问无需先向下滚动。

我对导致第二种形式的额外垂直白色 space 的原因有一些想法,但我想知道以上是否可能无法解决您的问题。

只是一个想法。 (而且我意识到这是一个非常古老的问题,所以也许您在这里不再需要任何建议——在这种情况下,我只会将此评论留给将来可能遇到类似问题的其他人)。