首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行时错误“3164”:“无法更新字段”-访问VBA问题

运行时错误“3164”:“无法更新字段”-访问VBA问题
EN

Stack Overflow用户
提问于 2016-10-28 13:15:24
回答 2查看 3.1K关注 0票数 1

我对我为访问而写的一段VBA有一个问题。我有一个表,它有一个级联字段'Concat‘(字符串字段)和一个名为'Age’的字段(带有数值的整数字段)。

还有另外61个字段(分别命名为'0‘、'1’、‘2’……‘60’),但是代码需要工作:我希望代码循环通过,并在每个记录条目中使用Concat + age字段查找另一个表(称为: tbl_Final_Probabilities),并提取一个概率并用正确的概率填充这61个字段。这些字段设置在一个数值字段中,数据类型为单个。

代码提取正确的概率,但是当我试图在代码行更新该字段的记录时:"rs.Fields(a) = b“(在代码中也突出显示),我得到错误消息:”运行时错误'3164':‘字段不能更新’“。

所有的帮助欢迎我需要如何纠正这一点请,使用的代码如下。

潘趣酒和派。

代码:

代码语言:javascript
复制
Dim rs As DAO.Recordset
Dim a As Integer
Dim b As Single
Dim lookup As String

Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_Circuit_plus_prob")

For a = 0 To 60

    If Not (rs.EOF And rs.BOF) Then
        rs.MoveFirst

            Do Until rs.EOF = True

            rs.Edit

            lookup = rs!Concat & (rs!age + a)

            b = DLookup("Prob_Date", "tbl_Final_Probabilities", "Concat2 = '" & lookup & "'")

            rs.Fields(a) = b  '- CODE BREAKS DOWN HERE

            rs.Update

            rs.MoveNext

            Loop

    End If

Next a

rs.Close
Set rs = Nothing

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-28 14:41:10

你的回路翻了个底朝外:

代码语言:javascript
复制
Dim rs As DAO.Recordset
Dim a As Integer
Dim b As Single
Dim lookup As String

Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_Circuit_plus_prob")

If Not (rs.EOF And rs.BOF) Then
    rs.MoveFirst
    Do Until rs.EOF = True
        rs.Edit
        For a = 0 To 60
            lookup = rs!Concat & (rs!age + a)
            b = DLookup("Prob_Date", "tbl_Final_Probabilities", "Concat2 = '" & lookup & "'")
            rs.Fields(a).Value = b
        Next
        rs.Update
        rs.MoveNext
    Loop
End If
rs.Close

Set rs = Nothing
票数 1
EN

Stack Overflow用户

发布于 2016-10-28 14:05:13

您的代码: rs.Fields(a) =b使用索引'a‘(在第一个循环中为0)寻址该字段,在您的表中,这可能是一个自动增量字段,因此不能更新。如果要在字段中使用“0”、“1”、.使用以下语法: rs.Fields(x + a) = b,其中x是字段'0‘之前存在的表中fields+1的数量(因为循环以0开头)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40305919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档