Access ODBC 子表单字段太小而无法编辑

Posted

技术标签:

【中文标题】Access ODBC 子表单字段太小而无法编辑【英文标题】:Access ODBC Subform field size too small to edit 【发布时间】:2014-12-12 14:09:48 【问题描述】:

我有一个带有组合框的表单,它允许用户使用

过滤子表单中的数据

DoCmd.SearchForRecord , "", acFirst, "[Division] = " & "'" & Screen.ActiveControl & "'"

然后用户应该将数据添加到下面的子表单中。

我有两个问题:

    当用户尝试编辑此数据时,他们得到“该字段太 小以接受您尝试添加的数据量。尝试 插入或粘贴更少的数据”。无论哪个 用户尝试输入数据的字段,他们都遭受了这个 问题。

    已过滤的“部门”字段显示为#Error for 新的记录线。我为此设置了一个临时变量(见下文),所以它应该 显示用于过滤器的值,但无论是否使用默认设置。

    TempVars.add "Div", [Combo5].Value

我查看了我的 ODBC 表单,所有数据类型/大小等看起来都相同。

这个表格里已经有数据了,可以编辑,虽然大小一样,但是不能保存新的记录。除此之外,我还可以编辑支持表中的数据。

【问题讨论】:

表中是否有任何列定义为“备忘录”?您的列定义为什么大小?在用户从组合框中选择一个值之前,子表单上是否有任何过滤器? SearchForRecord 不过滤,它搜索。您尝试搜索子表单而不提供前两个参数的事实可能会使 Access 感到困惑。我建议在子表单的记录克隆对象上使用 Find 方法,然后设置书签。还要 debug.print 您的“查找”标准,以确保它包含您期望的内容。 @AVG 我想编辑数据时可以使用recordsetclone吗?我以为它是只读的? 是的,它是可编辑的。一个简单的 bingoogle 搜索将为您提供丰富的信息。这是一个包含您想要实现的目标的示例。 msdn.microsoft.com/en-us/library/office/… @AVG 感谢您的提示。你是对的 - 经过进一步研究,搜索功能导致了错误。但是,我在记录克隆/书签方面遇到了严重的问题。我认为这是因为我的子表单实际上是一个数据表,所以虽然书签设置为第一个所需的记录,但它仍然显示列表中的所有记录,并且不限于此过滤器。无论如何要过滤子表单中的数据表吗? 【参考方案1】:

回答

感谢@AVG 和@WayneG.Dunn 的帮助。我最终使用了以下代码并按照建议使用了过滤器。我无法让它在子表单上很好地工作,所以我隐藏了该字段并将其用作子表单的主字段。仍然在新记录标签中收到错误消息“字段太小”和“#ERROR”,但表单有效,所以我将按原样使用它。参考代码:

DoCmd.SetFilter "Division", "Division = " & "'" & [Combo5].Value & "'"

【讨论】:

以上是关于Access ODBC 子表单字段太小而无法编辑的主要内容,如果未能解决你的问题,请参考以下文章

插入Access数据库时发生错误,请联系开发人员.字段太小而不能接受所要添加的数据

如何在Access中使用子表单时编辑现有记录而不创建新记录?

Microsoft Access 2013 - 无法通过子表单添加新记录

MS Access - 基于同一张表但不同记录的表单和子表单

获取最后插入记录的 ID - Access DAO、ODBC、SQL Server 2008 身份字段

Access VBA:在连续子窗体中编辑 RecordSet