访问20003访问2016年无法使用的代码 [英] access 20003 code not working in access 2016

查看:58
本文介绍了访问20003访问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

Dim rs As DAO.Recordset

设置db = DBEngine.Workspaces(0).OpenDatabase(" External_DB")

将RS = db.OpenRecordset(QUOT;
SM_TBL_LBL " ;, dbOpenTable)

Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = DBEngine.Workspaces(0).OpenDatabase("External_DB")
Set rs = db.OpenRecordset("
SM_TBL_LBL", dbOpenTable)


这篇关于访问20003访问2016年无法使用的代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆