cspa:您好!我的前台库有20-30个表是链接表,为了方便我设计成只有一个后台库。一般情况下如果后台库地址无误,就直接点击进入系统。如果因故要更换地址,这样才要更新链接,更新链接时采用系统的进度条提示,一旦完成就可以进入系统。我的问题是不需要更新链接,后台又在局域网中,进入系统需要10-20秒,有时还要慢,有什么好办法既能链接上,又能提示操作员。所以想搞一个类似进度条的提示,一旦系统链接上,提示消失,菜单就打开啦。我试了试,与后台表的链接与提示不能同步进行,在提示完成后才开始链接。所以求助有什么好的建议或实例。
顺便请教一下,1.有后台库的是否每次打开需要重新链接?2.有后台库的程序,它打开数据库时工作机理是什么,是不是有几个链接表都要去链接?
cspa:
折腾一上午,最后搞成下面的方案
Private Sub 进入系统_Click()
Dim strCtlNm, strEgNm As String
strCtlNm = Me.Form.Name '这是启动窗口名称
strEgNm = CurrentDb.Properties("Apptitle") '这是工程库的名称,也就是工具栏-启动-应用程序标题
Me.LabStart.Visible = True '这是警示标签,告知正在链接需要耐心等待
DoCmd.OpenForm strEgNm
If IsLoaded(strEgNm) Then DoCmd.Close acForm, strCtlNm
End Sub
结果是,如果后台在局域网,那么按[进入系统]钮后,需要几十秒时间不等,此时系统自动出现沙漏,一直到菜单打开时,
这个沙漏消失,启动窗口也关闭。
但是我总感觉不太理想,因为这个警示比较死板,您说把进度条嵌入内循环什么的,能给个例子吗?请指教。
上传你的实例吧,这样说都不知你在干啥?
4楼:请您帮我看看我的实例,谢谢!
点击下载此附件
1、给你改了下,你试试吧,未经调试,不知是否有错误。
�������ش˸���
2、按你原来的思路也可以,就是每次更新完进度条的值后,窗体都应重画。
capa网友:谢谢您的修改,我还没有试验,因为我没有吃透,尤其如
Me.ocxPrgBar0.ControlTipText = "正在删除旧链接表,请稍候...",我不知道这个ControlTipText在什么地方,怎么设置,
初步拜读你得修改,我感觉我没有把问题说清楚,我把我的思路再归纳如下:
我对后台库链接的思路:
1、我不知道可以允许有多少个后台库,但为了简单我规定只用一个;
2、后台库有许多表可供前台链接,但由于工程不同,每个前台所需要链接的表数量不同;
3、我不知道每次打开前是否必须进行重新链接?我理解的是因为环境变化,如因为局域网问题需要重新链接;
4、重新链接目的(只是我的理解)是保证使用数据来自正确的(即来自正式的后台库),另外删除无效的链接表;
5、前台所需链接表名称存在于电脑中,即最后一次关机前保存于MSysObjects中Type=6 And Flags=2097152的表;
6、后台库可供资源(即可供链接表的清单)通过从后台将表导入一个"LsTem"临时表中,(实在很业余)
目的是各种操作均在前台(本地库)进行,速度较快,导入命令
DoCmd.TransferDatabase acImport, "Microsoft Access", 后台路径, acTable, "MSysObjects", "LsTem", False
然后将Type=1 And Flags=0的保留,作为后台表清单,其余删除。
7、重新链接方法:对MSysObjects系统表中Type=6 And Flags=2097152进行循环,获得表名 sNew, 并将其删除
For Each tdf In dbs.TableDefs
If tdf.Name = sNew Then DoCmd.RunSQL "DROP TABLE " & sNew & ";"
Next tdf
再从临时表中查找这个sNew是否还存在,如存在则链接,否则就等于清除了无效的链接表
If Not IsNull(DLookup("Name", "LsTem", "Name='" & sNew & "'")) Then
DoCmd.TransferDatabase acLink, "Microsoft Access", 后台路径, acTable, sNew, sNew
End If
详细请看上面实例。
目前需要解决的几个问题:
1、除非更换路径每次打开前台不一定需要重新链接可以吗?
2、每次打开前台,按检查后台(即检查后台路径是否存在)需要很多时间,而且与电脑的性能以及使用连接方法(无线、有线)有关,
因此很想在检查链接等待时间中搞个动态的警示,类似于进度条,可惜我不会。希望大家帮忙,赐教。
3、我想不用上面这个临时表办法,实在太业余了,想搞一个在本地库检查外部库的表是否存在这么一个简单的函数,请指教。
4、把每次链接的一些信息,如路径、库名、链接表清单保存在地址表与链接表中,是否有必要?听听高见。
谢谢指教!
总记录:7篇 页次:1/1 9 1 :