【发布时间】:2014-02-10 16:16:34
【问题描述】:
我正在尝试在数据表视图的 access07 子窗体中显示 ADO 记录集。只是快照,只读。连接成功,记录集包含数据,但是,当我设置子表单记录集时,没有显示任何字段。子窗体显示一个垂直滚动条,当滚动到底部时它指示正确的记录数,但它什么也不显示,没有字段,没有列。
这必须是我所缺少的非常简单的东西。有什么想法吗?
编辑: 以下是建立记录集的代码摘要。
Set cn = New ADODB.Connection
Set rsADO = New ADODB.Recordset
dbBackend = "C:\Users\Me\Desktop\TEST_Db_Backend.accdb"
sqlStr = "SELECT * FROM tblMaster;"
strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbBackend & ";User Id=;Password=;"
cn.CursorLocation = adUseClient
cn.ConnectionString = strConnect
cn.Open
If cn.State = adStateOpen Then
rsADO.Open sqlStr, cn, adOpenStatic, adLockReadOnly
End If
Set Me.PreviewPane.Form.Recordset = rsADO
rsADO.Close
cn.Close
Set rsADO = Nothing
Set cn = Nothing
【问题讨论】:
-
我用记录集代码更新了我的原始帖子。所以你最初的想法是记录集是原因吗?
-
此代码是否在
Private Sub Form_Load()事件过程中?如果没有,请尝试将其移到那里并将Set Me.PreviewPane.Form.Recordset = rsADO更改为Set Me.Recordset = rsADO。我在这里使用了答案:stackoverflow.com/questions/5641760/… -
感谢您的建议。不,在表单加载事件中创建记录集后,我仍然收到相同的结果。
-
哎呀!这让我想起了几年前我们遇到过类似的问题,虽然我们从未找到原因,但我们确实找到了解决方法。不幸的是,时间的迷雾掩盖了确切的解决方案,但我认为我们做了以下事情之一:(a) ...subform.Refresh 或 Repaint 或 Requery; (b) subform.recordset MoveLast 然后 MoveFirst;希望我能记得.... :(
-
谢谢韦恩。我还在摆弄,会发布我能找到的任何解决方案。
标签: vba ms-access ado recordset subform