访问20003访问2016年无法使用的代码 [英] access 20003 code not working in access 2016
问题描述
此类对象不支持消息操作。它突出显示在WRK_REC_SET.Index =" PrimaryKey"
Message Operation is not supported for this type of object., and it highlights on WRK_REC_SET.Index = "PrimaryKey"
Sub GLOBAL_DISPLAY_FORM_LABELS(WRK_CUR_FORM As Form)
昏暗的WRK_CONTROL 作为控制
昏暗的WRK_REC_SET 作为Recordset
Dim WRK_DB 作为数据库
'
$
设置WRK_DB = CurrentDb
设置WRK_REC_SET = WRK_DB.OpenRecordset(" SM_TBL_LBL")
WRK_REC_SET.Index =" PrimaryKey"
对于J = 0到WRK_CUR_FORM.Count - 1
设置WRK_CONTROL = WRK_CUR_FORM(J)
如果Mid(WRK_CONTROL.Name,1,3)=" LAB"然后是
WRK_REC_SET.Seek" =" ;, WRK_CUR_FORM.Name,WRK_CONTROL.Name
         如果不是WRK_REC_SET.NoMatch则为
如果GLOBAL_LANGUAGE =" ARABIC"然后是
如果不ISNULL(WRK_REC_SET A_DESC!)然后
                &NBSP ;   WRK_CONTROL.Caption = TRIM(WRK_REC_SET A_DESC!)
               结束如果
否则b $ b 如果不ISNULL(WRK_REC_SET E_DESC!)然后
                &NBSP ;   WRK_CONTROL.Caption = TRIM(WRK_REC_SET E_DESC!)
               结束如果
结束如果
结束如果
结束如果是
下一步
Sub GLOBAL_DISPLAY_FORM_LABELS(WRK_CUR_FORM As Form)
Dim WRK_CONTROL As Control
Dim WRK_REC_SET As Recordset
Dim WRK_DB As Database
'
Set WRK_DB = CurrentDb
Set WRK_REC_SET = WRK_DB.OpenRecordset("SM_TBL_LBL")
WRK_REC_SET.Index = "PrimaryKey"
For J = 0 To WRK_CUR_FORM.Count - 1
Set WRK_CONTROL = WRK_CUR_FORM(J)
If Mid(WRK_CONTROL.Name, 1, 3) = "LAB" Then
WRK_REC_SET.Seek "=", WRK_CUR_FORM.Name, WRK_CONTROL.Name
If Not WRK_REC_SET.NoMatch Then
If GLOBAL_LANGUAGE = "ARABIC" Then
If Not IsNull(WRK_REC_SET!A_DESC) Then
WRK_CONTROL.Caption = Trim(WRK_REC_SET!A_DESC)
End If
Else
If Not IsNull(WRK_REC_SET!E_DESC) Then
WRK_CONTROL.Caption = Trim(WRK_REC_SET!E_DESC)
End If
End If
End If
End If
Next
推荐答案
如果您尝试使用Index(准备Seek),通常会发生这种情况)对于链接表。
usually this happens if you try to use Index (preparing Seek) for a linked table.
索引和搜索仅适用于Table类型的DAO记录集(不是动态集或快照)。在记录集的"设置"行中,未指定记录集类型。所以你得到标准类型。对于区域设置表,这是表,对于链接表,它是动态集。
Index and Seek only work with DAO recordsets of type Table (not Dynaset or Snapshot). In your Set line for the recordset you didn't specify the recordset type. So you get the standard type. For a locale table this is Table, for linked tables it is Dynaset.
有2个解决方法。您可以使用FindFirst而不是Seek,或者如果您想坚持Seek,您可以打开链接表作为其原始数据库的记录集并指定表类型记录集:
There are 2 workarounds. Either you use FindFirst instead of Seek or if you want to stick to Seek you can open the linked table as recordset of its origin database and specify a Table type recordset:
Dim db As DAO.Database
SM_TBL_LBL
Dim rs As DAO.Recordset
设置db = DBEngine.Workspaces(0).OpenDatabase(" External_DB")
将RS = db.OpenRecordset(QUOT; " ;, dbOpenTable)
Dim db As DAO.Database
SM_TBL_LBL
Dim rs As DAO.Recordset
Set db = DBEngine.Workspaces(0).OpenDatabase("External_DB")
Set rs = db.OpenRecordset("", dbOpenTable)
这篇关于访问20003访问2016年无法使用的代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!