Access 2010尝试编辑RTF字段

时间:2013-06-21 15:52:58

标签: ms-access access-vba ms-access-2010

问题:

用户应该能够在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的记录。现在,当我输入内容然后点击时输入,它会说:

无法将值NULL插入列&#39; AColumnINeverselectedInMyQuery&#39;,table&#39; TableFoo&#39 ;; colmn不允许空值。 INSERT失败。

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

我也在microsoft.com上考虑了this网站。

但我的问题是:我希望我的用户能够编辑现有记录,而不是添加新记录。而且我也仔细预选了一个记录,所以记录选择器在我的情况下是完全无用的,是的,我试图设置Formproperties-&gt;记录选择到&#34; no&#34;,但它不起作用。

除此之外,编辑工作,如果用户没有按回车,但是当你不能制作段落时,有什么意思吗?

我的本质问题:

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

1 个答案:

答案 0 :(得分:1)

尝试添加声明

Me.AllowAdditions = False

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