Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 将Access连接到SAS_Ms Access_Vba_Sas - Fatal编程技术网

Ms access 将Access连接到SAS

Ms access 将Access连接到SAS,ms-access,vba,sas,Ms Access,Vba,Sas,我对SAS和Access有相当丰富的经验,我知道如何从VBA调用Access,但我遇到了表锁问题,需要帮助 基本上,我所做的是在SAS中运行proc freq,将其传递到Access中的表中,以便可以在子窗体中读取它 我有一个带有一些组合框的表单,用户可以在其中选择关于他们想要的变量频率的信息。然后他们单击一个按钮,VBA将这些参数传递给SAS,子窗体将填充SAS的频率数据 除了最后一部分,一切都正常 我已成功地从Access获取参数,将其传递给SAS,并以正确的频率运行。但在SAS将proc导

我对SAS和Access有相当丰富的经验,我知道如何从VBA调用Access,但我遇到了表锁问题,需要帮助

基本上,我所做的是在SAS中运行proc freq,将其传递到Access中的表中,以便可以在子窗体中读取它

我有一个带有一些组合框的表单,用户可以在其中选择关于他们想要的变量频率的信息。然后他们单击一个按钮,VBA将这些参数传递给SAS,子窗体将填充SAS的频率数据

除了最后一部分,一切都正常

我已成功地从Access获取参数,将其传递给SAS,并以正确的频率运行。但在SAS将proc导出回Access的过程中,我收到一个错误,说明:Exectute:数据库引擎无法锁定表FREQ,因为它已被其他人或进程使用

问题是SAS导出到的表在Access中被打开SAS的表单使用

由于在SAS处理过程中我显然没有使用表单,是否有方法使表单解锁或断开与表的连接,以便SAS可以访问表单,然后在SAS完成处理后将表重新连接到表单


我尝试拆分数据库,但遇到了相同的问题。

问题可能是因为SAS正在连接ACCESS。首先清除连接,如:libname libname\u name clear,然后使用Access连接。

能否关闭表单,更新表,然后重新打开表单?我仍然会遇到同样的问题。我可以告诉它关闭并重新打开,但Access不知道如何等待SAS重新打开,因此它只会在SAS运行时关闭并重新打开,并产生相同的问题。您是否有针对Microsoft Office的SAS加载项许可证?您的SAS更新是否在临时表中更新了一个特定值,作为其最后一次操作。在开始更新之前,请关闭窗体并打开一个带有on timer事件的隐藏窗体,以定期检查临时表中的特定值。一旦on timer事件找到值,关闭隐藏表单,打开主表单备份。让SAS将结果写入CSV。然后在access中导入CSV。有点难看,但应该避免锁定问题。