Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
Access VBA:设置RecordSource时如何更改查询超时_Vba_Ms Access_Timeout_Ms Access 2010 - Fatal编程技术网

Access VBA:设置RecordSource时如何更改查询超时

Access VBA:设置RecordSource时如何更改查询超时,vba,ms-access,timeout,ms-access-2010,Vba,Ms Access,Timeout,Ms Access 2010,在Access 2010中,我有一个带有子窗体的窗体。我通过VBA创建SQL查询,并设置子窗体的RecordSource以运行查询并显示结果: Forms("<main form>")("<subform>").Form.RecordSource = my_sql_sentence 设置窗体的RecordSource属性时,如何更改运行的SQL查询的超时 更新:已解决:有一种方法可以设置ODBC连接查询的超时时间(我使用ODBC连接到Oracle)。我分配给Recor

在Access 2010中,我有一个带有子窗体的窗体。我通过VBA创建SQL查询,并设置子窗体的RecordSource以运行查询并显示结果:

Forms("<main form>")("<subform>").Form.RecordSource = my_sql_sentence
设置窗体的RecordSource属性时,如何更改运行的SQL查询的超时


更新:已解决:有一种方法可以设置ODBC连接查询的超时时间(我使用ODBC连接到Oracle)。我分配给RecordSource的SQL sencentes不使用链接表,而是使用Access查询对象。我的意思是SQL语句不像“从我的链接的oracle表中选择*”,它们更像是“从我的访问查询对象中选择*”。因此,我可以通过以下方式设置与Access query对象对应的QueryDef的超时:

CurrentDb.QueryDefs("<my_access_query_object>").ODBCTimeout = 120
CurrentDb.QueryDefs("<my_access_query_object>").ODBCTimeout = 120
CurrentDb.QueryDefs(“”).ODBCTimeout=120
这将我的SQL查询使用的Access查询对象的超时时间设置为2分钟

现在我设置超时,然后更改子窗体的RecordSource属性:

CurrentDb.QueryDefs("<my_access_query_object>").ODBCTimeout = 120
Forms("<main form>")("<subform>").Form.RecordSource = my_sql_sentence
CurrentDb.QueryDefs("<my_access_query_object>").ODBCTimeout = 120
Forms("<main form>")("<subform>").Form.RecordSource = my_sql_sentence
CurrentDb.QueryDefs(“”).ODBCTimeout=120
Forms(“”(“”)。Form.RecordSource=我的sql语句

看看这个,可能有一些有用的东西:


有一种方法可以设置ODBC连接查询的超时时间(我使用ODBC连接到Oracle)。我分配给RecordSource的SQL sencentes不使用链接表,而是使用Access查询对象。我的意思是SQL语句不像“从我的链接的oracle表中选择*”,它们更像是“从我的访问查询对象中选择*”。因此,我可以通过以下方式设置与Access query对象对应的QueryDef的超时:

CurrentDb.QueryDefs("<my_access_query_object>").ODBCTimeout = 120
CurrentDb.QueryDefs("<my_access_query_object>").ODBCTimeout = 120
CurrentDb.QueryDefs(“”).ODBCTimeout=120
这将我的SQL查询使用的Access查询对象的超时时间设置为2分钟

现在我设置超时,然后更改子窗体的RecordSource属性:

CurrentDb.QueryDefs("<my_access_query_object>").ODBCTimeout = 120
Forms("<main form>")("<subform>").Form.RecordSource = my_sql_sentence
CurrentDb.QueryDefs("<my_access_query_object>").ODBCTimeout = 120
Forms("<main form>")("<subform>").Form.RecordSource = my_sql_sentence
CurrentDb.QueryDefs(“”).ODBCTimeout=120
Forms(“”(“”)。Form.RecordSource=我的sql语句

我用QueryDef的ODBCTimeout属性解决了这个问题(请参阅问题的“更新”部分)。+1更新是一个有用的解决方案。添加为社区Wiki,因为此用户在SO中显然不活动。