1

问题:

用户应该能够在 Access 2010 中使用 Textfieldcontroll 编辑 RTF 格式的文本,RTF 应该更新为带有 varbinary(max) 列的表,(Sql Server 2008 R2

到目前为止我的解决方案:

第一:用户点击“编辑条目”按钮,触发如下代码:

...
DoCmd.OpenForm "theRtfEditForm", , , stLinkCriteria, , , args
...

第二:表单被启动,执行如下代码(onload-event):

Private Sub Form_Load()
Dim TheRowiWantToEdit As String

If (Me.OpenArgs <> "" And Not IsNull(Me.OpenArgs)) Then
TheRowiWantToEdit = OpenArgs
End If

Dim query As String
query = "select top 1  theColumnIWantToEdit from TableFoo where id = " & TheRowiWantToEdit
Me.recordsource = query
Me.Requery


End Sub

现在我可以输入文本,甚至可以格式化它,虽然我不能设置文本对齐方式(但那是另一回事)。它也会更新到我的 sql 数据库,一切正常,

但有一个问题:

在表单的左下角有记录选择器,说:1 of 1,当我在编辑我的 rtf 时按 Enter 键时,它会跳转到记录 2 of 2。现在,当我输入一些内容然后按 Enter 键时,它会说:

无法将值 NULL 插入列“AColumnINeverselectedInMyQuery”、表“TableFoo”;colmn 不允许空值。插入失败。

现在我在 Stackoverflow 上做了一些研究,并发现了这个线程: VBA-manipulate field with subform

我也考虑过 microsoft.com 上的这个网站。

但我的问题是:我希望我的用户能够编辑现有记录,而不是添加新记录。而且我还仔细地预选了一条记录,因此在我的情况下,记录选择器完全没用,是的,我尝试将 Formproperties-> Recordselectors 设置为“否”,但它不起作用。

除此之外,编辑工作,如果用户不按回车,但是当你不能制作段落时,拥有一个文本字段有什么意义呢?

我的本质问题:

如何仅显示/编辑这一记录?

4

1 回答 1

1

尝试添加语句

Me.AllowAdditions = False

Form_Load()代码。这应该可以防止用户无意中移动到“新记录”。

于 2013-06-21T16:09:28.063 回答