访问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
部分来传递。
我可以手动输入参数的数据,但我不想这样做,特别是如果我需要快速生成多个文件。
答
您可以在.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
我甚至试过设置了调用该变量的函数,和文本框设置到功能,并没有奏效。 – jhaiisiin
TestNum是一个文本类型字段吗?如果是,请尝试:'TestNum ='“&MyValue&”'“'。Access无法找到TestNum - 您确定它是报告中的字段RecordSource?报告打开时是否正确过滤?是否有动态参数在ReportSource? – June7
可回答“为什么不是这个代码工作?”的问题**需要** a [mcve]。 –