Office中国论坛/Access中国论坛

标题: 请教临时表的问题 [打印本页]

作者: rtmx01    时间: 2006-6-8 19:01
标题: 请教临时表的问题
在做adp+sqlserver中,常需用临时表,但这方面的资料及少,有谁能为在下指教.

1、临时表的生命期:

如下程序:

模块一:

sub aa

docmd.runsql "creat table #tt (a c,b c)

end sub

sub bb

.................................

end sub

请问以上aa代码段建的#tt表是否随aa的结序而自动消失,还是在bb内仍可调用,要等到退出整个adp后才消失。

如果模块一是个窗体模块又将如何?

有没有办法在vba中建不同的临时表,表一的生存期为当前sub进程,随sub进程结束面消失,

表二的生存期使得其可被模块中的不同进程所调用,随模块的结束而结束

表三能在模块退出(如窗体模块)后能能使用,仅随adp的结束而消失。

可能的话,请给出示例代码,越详细越好

不用感激
作者: zxy    时间: 2006-6-10 04:48
  用VBA方式创建的临时表,只在ADP中有效,如果你不删除它,把这个ADP关了这个表就没了,即它随这个ADP的关闭而结束。具体来说吧.你在一个ADP中的一个模块建了一个临时表,在另一个模块中建立同样的表时,就可会提示表已存在.但只要你建立了这个表,在ADP的任何地方都可以调用."表二的生存期使得其可被模块中的不同进程所调用,随模块的结束而结束"这是不可能的。
作者: rtmx01    时间: 2006-6-13 01:10
谢谢楼上的,但如果在adp中建了临时表后,adp非正常退出呢?比如程序出错,中止,那建的临时表在下一次adp进入时或其他adp进入时还在不在?
作者: zhuyiwen    时间: 2006-6-15 19:07
“#”开头的临时表称为临时表,它的生命周期为一个T-SQL批处理,当批处理结束时,它会被自动删除。

“##”开头的临时表称为永久临时表,它的生命周期为SQL Server实例的生命周期,当SQL Server实例服务停止或手工显式用“Drop”命令删除时,它才会被删除。

[此贴子已经被作者于2006-6-15 11:08:22编辑过]


作者: tz-chf    时间: 2006-6-15 19:25
楼上说得对
作者: zhangxiyou    时间: 2006-6-19 21:21
在mdb中,我这样生成临时表:

On error resume next

CurrentDb.QueryDefs.Delete "TempAcc"

DoCmd.OpenQuery CurrentProject.Connection.CreateQueryDef("TempAcc", strDataSource).name

strTmp = ImportExportData("Excel", "TempAcc", 1)                                 '输出到Excel 中

' strDataSource是一条查询语句

请问,在ADP中,该怎样改写?

谢谢!

[此贴子已经被作者于2006-6-19 13:28:47编辑过]


作者: wuaza    时间: 2006-6-20 21:01
CurrentProject.Connection.execute "create table #(字段1,varchar(10))"
作者: HAPPY缘泉    时间: 2006-6-21 23:54
好的谢谢了
作者: Sooloom    时间: 2007-5-13 11:38
学习学习学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3