首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在试图读取记录集字段时,access vba抛出子函数或函数没有定义?

为什么在试图读取记录集字段时,access vba抛出子函数或函数没有定义?
EN

Stack Overflow用户
提问于 2020-07-14 18:49:42
回答 2查看 292关注 0票数 1

正如标题所述,当代码试图编译时,我会得到一个错误"Sub或函数未定义“。它会在RS_Logistics上崩溃。该字段确实存在于记录集中,该记录集通过查看表IM_Logistics、检查我在对象上设置的手表和确认字段项“接收”存在而得到验证。这是一个布尔字段。

代码语言:javascript
复制
Option Compare Database
Option Explicit

Private ROID As Long
Private RS As Recordset
Private RS_PartDetail As Recordset
Private RS_Logistics As Recordset

Public Sub Load_ID(RepOrderID As Long)
Dim strSQL As String

strSQL = "SELECT TOP 1 * FROM IM_ReplenishmentOrders WHERE ReplenishmentOrderID = " & RepOrderID
Set RS = CurrentDb.OpenRecordset(strSQL)
If RS.RecordCount > 0 Then
ROID = RepOrderID

strSQL = "SELECT TOP 1 * FROM MT_PartDetail Where MT_PartDetail_ID = " & RS!MT_PartDetail_ID
Set RS_PartDetail = CurrentDb.OpenRecordset(strSQL)

strSQL = "SELECT * FROM IM_Logistics Where ReplenishmentOrderID = " & ROID
Set RS_Logistics = CurrentDb.OpenRecordset(strSQL)

Else
ROID = 0
End If
End Sub

Public Property Get ETA() As Date 'Derived from Logistics Records
On Error GoTo fail
RS_Logistics.MoveFirst
While Not RS_Logistics.EOF
If ((RS_Logistics![Received] = False) And Nz(ETA, DateAdd("Y", 10, today())) > RS_Logistics![Expected Date]) Then
ETA = RS_Logistics![Expected Date]
End If
RS_Logistics.MoveNext
Wend
fail:
End Property

我在这个数据库中使用记录集已经有一年多了。不知道为什么现在会出现这种情况。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-14 19:03:41

错误消息与记录集或其字段无关。“子函数或未定义函数”是因为今天()不是访问VBA函数。使用日期()

而且,访问VBA DateAdd需要"yyyy“作为年间隔。

票数 2
EN

Stack Overflow用户

发布于 2020-07-15 12:04:22

有2条建议可以更容易地捕捉到这样的东西:

  • 在您的所有模块上设置“选项显式”(并且在首选项中设置/ir以保存您手动完成的操作)。这会告诉您,今天()是一个未定义的变量,而不是寻找一个名为
  • 的子/函数,而是学习如何查找今天()是否与今天()一样,而不是被更正为“今天”(),如果“今天”()是有效的“子”/“函数”,则编辑器就会这样做。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62902049

复制
相关文章

相似问题

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