教程: access中数据表的自动重新联接

2016-02-19 20:36 0 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - 编程语言 】

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

当我们的应用程序更换存储位置的时候往往失去正确的表联接,造成运行错误。下面的一段程序可以自动找回表联接。在我的应用中"程序"数据库名字是stockMgr.mdb,"数据"数据库名字是stock-Data.mdb

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

注意: 该程序仅限于"程序"和"数据"存放在同一个目录而且是对应单个"数据"文件的情况。

Function ReAttachTable()
Dim MyDB As Database, MyTbl As TableDef
Dim cpath As String
Dim datafiles As String, i As Integer

On Error Resume Next
Set MyDB = CurrentDb
cpath = trimFileName(CurrentDb.Name)
datafiles = "stock-data.mdb"
DoCmd.Hourglass True
For i = 0 To MyDB.TableDefs.Count - 1
Set MyTbl = MyDB.TableDefs(i)
If MyTbl.Attributes = DB_ATTACHEDTABLE And Left(MyTbl.Connect, 1) = ";" Then
MyTbl.Connect = ";DATABASE=" & cpath & datafiles
MyTbl.RefreshLink
If Err Then
If vbNo = MsgBox(Err.description & ",继续吗?", vbYesNo) Then Exit For
End If
End If
Next i
DoCmd.Hourglass False
msgbox "Tables relink finish."
End Function

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

'绝对路径中去掉文件名,返回路径
Function trimFileName(fullname As String) As String
Dim slen As Long, i As Long
slen = Len(fullname)
For i = slen To 1 Step -1
If Mid(fullname, i, 1) = "" Then
Exit For
End If
Next
trimFileName = Left(fullname, i)
End Function

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

来源:https://www.tulaoshi.com/n/20160219/1624119.html

延伸阅读
通常情况下,一个我们在做一个产品的时候,一开始可能由于设计考虑不周或者程序写的不够严谨,某个字段上的值产生重复了,但是又必须去掉,这个时候就稍微麻烦了一点,直接加一个UNIQUE KEY肯定是不行了,因为会报错。 现在,我们来采用一种变通的办法,不过可能会丢失一些数据 :) 在这里,我们设定一个表,其结构如下: mysql ...
标签: 电脑入门
到了年底,单位要报送的表格非常多,有时就请一些非专业老师帮助录入,但在录入的过程中我发现不少老师录入的表格数据中存在一些空格,影响了数据的整体效果。如果一个个地修改既费时又费力,针对此现象我想出了几种有效的解决方法并且收到了良好的效果,因此写下来与广大读者一起分享。 一、提前预埋设置,做到事半功倍 1. 提醒用户输入的数...
代码如下: select user_name,count(*) as count from user_table group by user_name having count1; 这个我在很早有发过一个asp下的ACCESS 的
标签: MySQL mysql数据库
  在进行数据表检查或修补时,可以先将数据表锁定,可确保数据表的安全: mysqlLOCK TABLE tbl_name READ; mysqlFLUSH TABLES; 将数据表锁定后再进行检查或修补的工作。完成后再解除锁定: mysqlUNLOCK TABLES; //LOCK TABLE tbl_name READ表示要锁定成只读状态,在这个状态下用户只能读取数据表,不能写入。 LOCK TABLE tbl_name W...
标签: MySQL mysql数据库
  如果数据表有问题,可以利用--recover --quick参数做修补的工作: linux#myisamchk --recover --quick tbl_name linux#isamchk --recover --quick tbl_name 如果上面的方法不能解决问题,可以将--quick参数去掉: linux#myisamchk --recover tbl_name linux#isamchk --recover tbl_name 如果还是不能解决问题,可以再试着改用--sa...

经验教程

366

收藏

43
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部