主頁 > 知識庫 > access中鏈接表的問題

access中鏈接表的問題

熱門標簽:科大訊飛語音識別系統(tǒng) 銀行業(yè)務 服務器配置 電子圍欄 Linux服務器 團購網站 Mysql連接數(shù)設置 阿里云
一個使用asp和mdb的站點,某個mdb中使用了鏈接表,鏈接到當前目錄的另一個mdb中的表,這樣可以達到數(shù)據(jù)共享。  
faq-it.org/delphi_win_sdk/問題來了,當將網站發(fā)布到網站的時候,因為網上空間路徑和我本機不同,所以鏈接表失敗,網頁當然也不能打開。  
我覺得解決辦法有:  
一種,在本機上創(chuàng)建與網上空間完全相同的目錄結構。但這很麻煩,特別是經常要換網站的話。  
一種,如何讓鏈接表使用相對路徑,就是鏈接到當前目錄下的那個mdb文件?(對了,access很弱智,鏈接表記錄的是絕對路徑)。  
還一種,如何通過編程(asp  或者本地vba)來實現(xiàn)對鏈接表的鏈接的修改?(又對了,access還是弱智,更新鏈接表我只能使用手工更新,一定要找到那個路徑下的mdb才行!可本地路徑和網上不一樣呀)  

誰能告訴我如何實現(xiàn)上面的后兩種方法?  

---------------------------------------------------------------  

以下是我自己在用的adox代碼,只為了證明我說的access有此功能(說句不好聽的:這關access  p事啊?這是ado模型該解決的問題。而且你也提錯地方了,提到asp那一塊更合適),做access編程的都應該看得懂,如果你看不懂我也只能說遺憾了。  

Public  Function  NewLinkedExternalTableMdb()  
       Dim  strTargetDB()  As  String  
       Dim  strProviderString()  As  String  
       Dim  strSourceTbl()  As  String  
       Dim  strLinkTblName()  As  String  
       Dim  catDB  As  ADOX.Catalog  
       Dim  tblLink  As  ADOX.Table  
       Dim  tmpLink  As  ADOX.Table  
       Dim  i  As  Integer  
       Dim  j  As  Integer  
       Set  catDB  =  New  ADOX.Catalog  
       catDB.ActiveConnection  =  CurrentProject.Connection  
       i  =  catDB.Tables.Count  
       ReDim  strTargetDB(i)  
       ReDim  strProviderString(i)  
       ReDim  strSourceTbl(i)  
       ReDim  strLinkTblName(i)  
       i  =  1  
       For  Each  tmpLink  In  catDB.Tables  
               If  tmpLink.Properties("Jet  OLEDB:Create  Link")  Then  
                       If  Trim(tmpLink.Properties("Jet  OLEDB:Remote  Table  Name"))  >  ""  Then  
                               strLinkTblName(i)  =  tmpLink.Name  
                               strTargetDB(i)  =  tmpLink.Properties("Jet  OLEDB:Link  Datasource")  
                               strProviderString(i)  =  tmpLink.Properties("Jet  OLEDB:Link  Provider  String")  
                               strSourceTbl(i)  =  tmpLink.Properties("Jet  OLEDB:Remote  Table  Name")  
                               Do  While  InStr(1,  strTargetDB(i),  "/")  >  0  
                                       strTargetDB(i)  =  Mid(strTargetDB(i),  InStr(1,  strTargetDB(i),  "/")  +  1,  Len(strTargetDB(i)))  
                               Loop  
                               strTargetDB(i)  =  CurrentProject.Path    "/"    strTargetDB(i)  
                               i  =  i  +  1  
                       End  If  
               End  If  

       Next  
       j  =  i  -  1  
       For  i  =  1  To  j  
               catDB.Tables.Delete  strLinkTblName(i)  
               Set  tblLink  =  New  ADOX.Table  
               With  tblLink  
                       .Name  =  strLinkTblName(i)  
                       Set  .ParentCatalog  =  catDB  
                       .Properties("Jet  OLEDB:Create  Link")  =  True  
                       .Properties("Jet  OLEDB:Link  Datasource")  =  strTargetDB(i)  
                       .Properties("Jet  OLEDB:Link  Provider  String")  =  strProviderString(i)  
                       .Properties("Jet  OLEDB:Remote  Table  Name")  =  strSourceTbl(i)  
               End  With  
               catDB.Tables.Append  tblLink  
               Set  tblLink  =  Nothing  
       Next  
       Set  catDB  =  Nothing  
End  Function   
 

標簽:衡水 蚌埠 江蘇 廣元 衢州 萍鄉(xiāng) 大理 棗莊

巨人網絡通訊聲明:本文標題《access中鏈接表的問題》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266