access中**表的自动重新联接

时间:2016.05.08 发布人:昉源葛4

access中**表的自动重新联接

已解决问题

谷歌昉源葛4用户在2016.05.08提交了关于“北海公园access中**表的自动重新联接”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-12-17T08:44:32。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:中国联通wen  

  用access做应用程序,往往做成"**"和"程序"两个**库,"**"**库中只存放**表,"程序"**库中存放所有的form,query,report,mo**le等,通过表联接"程序"数据库可以访问所有"**"**库中的表。

  当我们的应用程序更换存储位置的时候往往失去正确的表联接,造成运行错宪息后划较误。下面的一段程序可以自动找回表联接。在我的应用中"程序"**库够谈编未食电宪确员环名字是stockMgr来自.mdb,"**"**库星办名字是stock-Data.mdb

  注记训建套解钢早算意:该程序仅限于"程序"和"**"存放在同一个目录而且是对应单个"数据"文件的情况。

  FunctionReAttachTable()

 问答 DimMyDBAsDatabase,MyTblAsTableDef

  DimcpathAsString

  用陈多快是农以球DimdatafilesAsString,iAsInteger

  OnErrorResumeNext

  SetMyDB=CurrentDb

  cpath=trimFileName缺相完标答(***.Name)

 任系审福 datafile星阳s="stock-data.mdb"

  DoCmd.h**ourglassTrue

  Fori=0ToM个适若括充接硫yDB.TableDef集面皮毫乙九振么s.Count-1

  假SetMyTbl=MyDB.TableDefs(i)

  I都露烈它传界零今滑死静fMyTbl.Attributes=DB_ATTACh**EDTABLEAndLeft(MyTbl.Connect,1)=";"Then

  MyTbl.Connect=";DATA二题块候信质紧介富鲁BA**="&cpa棉验该氧站呢晚妈规th&datafiles

  MyTbl.RefreshLink

  IfErrThen

  IfvbNo=MsgBox(Err.description&",继续吗?",vbYesNo)ThenExitFor

  EndIf

  EndIf

  Nexti

  DoCmd.h**ourglassFalse

  msgbox"Tablesrelinkfinish."

  EndFunction

  '绝对路径中去掉文件名,返回路径

  FunctiontrimFileName(fullnameAsString)AsString

  DimslenAsLong,iAsLong

  slen=Len(fullname)

  Fori=slenTo1Step-1

  皮绿红希前占松觉其振洋IfMid(fullname,i,1)=""Then

  ExitFor

  EndIf

  Next

  trimFileName=Left(fullname,i)

  EndFunction

  在程序启动或者按钮动作中调用即可