【问题标题】:Running SAS in Access using VBA使用 VBA 在 Access 中运行 SAS
【发布时间】:2015-04-17 17:10:34
【问题描述】:

阅读后:http://www2.sas.com/proceedings/sugi30/044-30.pdf

我决定尝试使用 Access 运行 SAS 程序,但我在使用 VBA 时遇到了一些问题。

这是我的代码:

Private Sub Command_Click()
Dim olesas as Object
Dim Data_ID as String 'note this is the name of a txtbox in my form
dd_id=Data_ID.Value 'here is where my error is
Set olesas=CreateObject("SAS.Application")
olesas.Submit (" %let DD_ID=" & dd_id & "; %inc 'SASMACRO'") 'didn't feel like typing whole inc statement here
olesas.Visable=True
olesas.Quit
Set olesas=Nothing
End Sub

当我尝试将表单中的参数设置为 VBA 中的变量时出现错误,该变量随后将转换为 SAS 中的宏变量。有什么想法吗?

【问题讨论】:

  • dd_id = Data_ID.Value 没有变暗 - 您是否设置了 Options Explicit? (这是一条 VBA 行,因此它与 SAS 无关。)您也没有正确引用您的 txtbox - 我认为您需要将 dd_id 调暗为字符串,而不是 Data_ID,因为您希望这样做成为你的文本框。您应该查看如何引用文本框 - 我不记得确切的访问对象模型,但它会类似于 Application.Textboxes.Textbox("Data_ID") 或类似的东西。
  • 现在我读了这篇论文,他们就是这样做的......我是一个擅长 VBA 的人,但对我来说,这将是非常......奇怪......变暗一个字符串并神奇地从中获取一个文本框值。
  • 谢谢@Joe。我会进一步调查。

标签: ms-access vba sas


【解决方案1】:
Dim Data_ID as String 'note this is the name of a txtbox in my form
dd_id=Data_ID.Value 'here is where my error is

通过将 data_ID 调暗为字符串,它不会引用表单上的 txtbox。您在这里所做的创建了一个名为 data_ID 的变量(没有为其分配任何值)并尝试使用一个名为 dd_ID 的未声明变量。你会想这样做;

dim dd_id as String
dd_id = me.Data_ID.Value ' assuming data_id is the name of your txtbox

如果您的 txtbox 与您的按钮在同一个表单上,那么您可以使用 Me。引用该表单的控件。如果 txtbox 在另一个表单上,则需要通过 Forms!yourFormName!Data_ID.Value 显式引用

另外,适当地命名您的控件总是一个好习惯,因此对于您的 txtbox 名称,控件 txtDataID 和您的按钮 btnNameHere 等 - 从长远来看会使事情变得更容易。

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    相关资源
    最近更新 更多