访问VBA脚本未成功将变量传递到报告中的文本框字段

问题描述:

我试图通过VBA将简单变量传递给报告上的文本框。访问VBA脚本未成功将变量传递到报告中的文本框字段

我已经完成了研究,并看到使用Me.fieldName = value的东西,但我得到关键字错误试图做到这一点。因此,我尝试使用OpenReport的Where部分,但似乎也没有飞。

会发生什么情况是代码按预期请求输入,然后打开报告,然后请求参数,即使它应该从字符串中接收它。

我知道我错过了一些东西,但我的眼睛没有看到它。请帮我解开我的白痴。

现行的有关代码:

Dim Message, Title, Default, MyValue 
Message = "Please enter test variation (A, B, C, etc)" 
Title = "Test Variation" 
Default = "" 
MyValue = InputBox(Message, Title, Default) 
DoCmd.OpenReport "Random_Test", acViewPreview, , "TestNum=" & MyValue 

编辑:为清楚: Random_Test是我填充报告。在该报告中,单个Text Box类型的字段名为TestNum
MyValue InputBox应该接受用户输入,使MyValue意味着什么,(据我所知)应该通过OpenReport调用的Where部分来传递。

我可以手动输入参数的数据,但我不想这样做,特别是如果我需要快速生成多个文件。

+0

我甚至试过设置了调用该变量的函数,和文本框设置到功能,并没有奏效。 – jhaiisiin

+2

TestNum是一个文本类型字段吗?如果是,请尝试:'TestNum ='“&MyValue&”'“'。Access无法找到TestNum - 您确定它是报告中的字段RecordSource?报告打开时是否正确过滤?是否有动态参数在ReportSource? – June7

+0

可回答“为什么不是这个代码工作?”的问题**需要** a [mcve]。 –

您可以在.OpenArgs属性中传递参数,并在加载报告时捕获它。

通行证.OpenArgs:

DoCmd.OpenReport "Random_Test", acViewPreview, , , acWindowNormal, "TestNum=" & MyValue 

捕获对报告的Load事件:

Private Sub Report_Load() 
    With Me 
     If Not IsNull(.OpenArgs) Then 
      .TestNum.Value = .OpenArgs 
     End If 
    End With 
End Sub 
+0

这个报告加载事件正是我所错过的。我确实必须将OpenArg细分改为“MyValue”,但现在它完美运行。 非常感谢。 – jhaiisiin