问题:
用户应该能够在 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 设置为“否”,但它不起作用。
除此之外,编辑工作,如果用户不按回车,但是当你不能制作段落时,拥有一个文本字段有什么意义呢?
我的本质问题:
如何仅显示/编辑这一记录?