访问计算下一个值(查找值}?

时间:2015-09-03 19:14:45

标签: vba ms-access report

我需要从报告详细信息部分的文本框中获取值,这将为我提供多个值。我需要将每个值都放到VB中进行一些计算......我可以从带有ChildID = Forms的表单中提取一个值!FRM_Child!ChildID.Value,但是当我把它放入

Private Sub Report_Open(Cancel As Integer)
Dim ChildID as Integer
ChildID = Reports!RPT_Due_Date!ChildID.Value
End Sub

它崩溃并说“运行时错误'2424':您输入的表达式具有Microsoft Access无法找到的字段,控件或属性名称。” 我检查并仔细检查了名字。我想的是,不知何故,因为它在具有多个值的详细信息部分中崩溃了。有什么想法吗?

ChildID  Last_Asmt_Type Last_Asmt_Date  Next_Asmt_Type      Next_Asmt_Date
1        Initial Evaluation 1/5/15      Periodic Review         5/5/15
2        Periodic Review    2/5/15      Annual Review           6/1/15
3        Annual Review      3/5/15      Periodic Review         7/1/15

我想要做的是获取Last_Asmt_Type,然后使用if / then规则选择Next_Asmt_Type,即如果Last_Asmt_Type是Periodic,那么Next_Asmt_Type是年度....

如何使用查找值执行此操作?

1 个答案:

答案 0 :(得分:0)

Report_Open()中,文本框作为控件存在,但它还没有值 您的代码可以在Report_Load()中使用,但正如您所知,这将毫无意义,因为您只能得到第一个值。

如果要读取所有值,请不要尝试从报告文本框中读取它们,在报告的数据源上打开记录集。像这样:

Dim RS As Recordset
Set RS = CurrentDb.OpenRecordset(Me.RecordSource)
Do While Not RS.EOF
    Debug.Print RS!MMI
    RS.MoveNext
Loop
RS.Close

但:
最有可能的是,有一种完全不同的,更好的方式来做你想要的。你在做什么样的计算?