Access 2010 - 无法编辑由记录集填充的未绑定表单中的文本框

时间:2013-01-18 14:58:35

标签: forms textbox edit recordset

我正在使用Access 2010和SQL Server 2008中的链接表。我有一个表单,我使用记录集填充,并且此表单中文本框的控件源设置为记录集中的字段。我发现尽管我可以浏览表单上的所有16条记录,并且表单正确加载,但我无法编辑Notes文本框。它需要是可编辑的。文本框的Enabled = True,Locked = False。窗体的AllowEdits属性设置为true。查询中的所有表都有主键。那么,这是我的查询 - 因为它有正确的连接和内连接吗?所以问题是我无法输入文本框。

只是一点背景,我尝试使用查询作为此表单的记录源,但发现Access'AutoSave功能将不完整的记录插入到我的Result表中,此外还有我的Save按钮事件所做的更新和插入。如果绕过这个问题的唯一方法是询问用户他/她是否愿意在每次导航时保存更改,那么这对最终用户来说太令人沮丧了。因此,我必须使用未绑定的表单,我使用VBA使用ADO记录集填充它。

顺便说一下,我可以编辑DocID和DocumentType列,它是查询中无法更改的字段(QCNote)

以下是我的Form_Open事件中的代码。我还有一个Form_Current事件,它禁用了不适用类别的“提交”按钮。

Private Sub Form_Open(Cancel As Integer)

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset 

Set cn = CurrentProject.AccessConnection
Set rs = New ADODB.Recordset
With rs
Set .ActiveConnection = cn

DocID = [Forms]![QCDocAttributes]![DocID]

DocumentType = [Forms]![QCDocAttributes]![Document Type]

strSQL = "SELECT " & DocID & " AS DocID,'" & DocumentType & "' AS DocumentType,     QC_QCDecisionPoint.Description, QC_QCDecisionPoint.QCDecisionPointID , QC_QCResultDecisionPoint.QCNote FROM QC_QCResultDecisionPoint RIGHT JOIN ((QC_QCAttribute INNER JOIN QC_QCAttributeDecisionPointAsc ON QC_QCAttribute.QCAttributeID = QC_QCAttributeDecisionPointAsc.QCAttributeID) INNER JOIN QC_QCDecisionPoint ON QC_QCAttributeDecisionPointAsc.QCDecisionPointID = QC_QCDecisionPoint.QCDecisionPointID) ON QC_QCResultDecisionPoint.QCDecisionPointID = QC_QCDecisionPoint.QCDecisionPointID WHERE (((QC_QCAttribute.Description)= '" & [Forms]![QCDocAttributes]![AttributesDropdown] & "' ));"

.Source = strSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
Set Me.Recordset = rs

Set rs = Nothing
Set cn = Nothing

End Sub

0 个答案:

没有答案