ado - MS Access Form 绑定到 ADO 记录集刷新和过滤错误
问题描述
我使用 Access 作为 SQL Server 的前端,并尝试使用 ADO 记录集作为 Access Form 的源。我能够在数据表视图中查看记录,我可以在该表单上添加和编辑记录。
现在,当我尝试将文本或数字过滤器应用于数据表视图中的 ADO 记录集绑定表单或尝试刷新表单时,我遇到了 2 个错误。
- 如果我在数据表视图中使用字段过滤器,则会收到错误消息:“输入有效值”
- 如果我尝试使用 F5 键刷新表单,则会收到错误消息:“无法初始化数据提供程序”
如果我使用 SQL Server 的链接表并将这些表用作表单的记录源,则不会出现所描述的问题。
这是我用来设置表单记录集的代码:
Private Sub Form_Load()
Dim ConnString As String
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
ConnString= "Provider=sqloledb;Server=xxx; Database=yyyyy; user Id=zzzz; password=uuuu;"
Set cnn = New ADODB.Connection
cnn.ConnectionString = ConnString
cnn.Open
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "select Field1, Field2, Field3 from dbo.TableA", cnn, adOpenStatic, adLockPessimistic
Set Me.Recordset = rs
End sub
同样有趣的是,无论我使用什么 cursorType(本例中为 adOpenStatic),我总是能够在表单中编辑和添加记录。
是否可以将 Access 功能(过滤器、刷新)与 ADO 记录集一起使用?
解决方案
广告。1 看到这个https://codekabinett.com/rdumps.php?Lang=2&targetDoc=sort-filter-access-form-bound-adodb-recordset
广告。2 在 Form_Error 上使用这个:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Const NO_DATA_SUPPLIER As Integer = 31
If DataErr = NO_DATA_SUPPLIER Then
Response = acDataErrContinue
'in this line you have to reasign your datasource for form
End If
End Sub
推荐阅读
- entity-framework - 我如何在迁移中获取连接字符串
- javascript - 无法使用 JQuery 提交确认表单
- react-native - 我想使用蓝牙将字符串从一个 react-native 应用程序发送到另一个 react-native 应用程序
- r - 是否有针对我的具体情况的聚类算法?
- flutter - 如何从颤振应用程序中投射屏幕?
- python - 如何使用线程更新 tkinter gui 标签?
- html - 如何使一端有滚动的模态框的角变圆
- flutter-provider - 在颤动中使用数据库提供者模式
- r - R 控制台和笔记本中的奇怪字符
- python - 如何使用 ReportLab 在 PDF 中绘制电子签名