设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1061|回复: 1
打印 上一主题 下一主题

[Access本身] 在您的MDB里瞬间断开或链接后台表(防止病毒扩散哦)

[复制链接]
跳转到指定楼层
1#
发表于 2005-8-18 21:32:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
'将此代码粘贴在点击事件里

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'2005-08-18   中俄双雄演义日

'By 狠狠活

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''



Private Sub cmbDelete_Click()

LinksDelete

End Sub

'此断开链接'''''''''''''''''''''''''''''''''''''''''''''''''



'开启链接

Private Sub cmbLink_Network_Click()



Dim sNewLink As String

  ' ReLink the data files to network locations

  ' Need to set up the strings

sNewLink = "ath of tables you are linking"

Call LinksCreateToSource(sNewLink)

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''







'将下面代码粘贴在模块里



Public Sub LinksCreateToSource(strLinkSourceDB As String, Optional prpProgressBar As Object)

On Error GoTo Err_LinksCreateToSource

    Dim dbs As Database

    Dim tdf As TableDef

    Dim TdfCount As Long

    Dim i As Long

   

    '打开 DB 源

    Set dbs = DBEngine.Workspaces(0).OpenDatabase(strLinkSourceDB)

    '计算链接表数目

        For Each tdf In dbs.TableDefs

        If Left(tdf.name, 4) <> "MSys" Then 'Do not link to the System tables

            TdfCount = TdfCount + 1

        End If

    Next tdf

      If Not prpProgressBar Is Nothing Then

        prpProgressBar.Max = TdfCount

        prpProgressBar.Visible = True

    End If

    '检测所有链接表

    For Each tdf In dbs.TableDefs

        If Left(tdf.name, 4) <> "MSys" Then  'Do not link to the System tables

            

            i = i + 1

            If Not prpProgressBar Is Nothing Then

                prpProgressBar.Value = i

            End If

            '创建链接

            DoCmd.TransferDatabase acLink, _

                "Microsoft Access", strLinkSourceDB, acTable, tdf.name, tdf.name

        End If

    Next tdf

    dbs.Close

    Set dbs = Nothing

       If Not prpProgressBar Is Nothing Then

        prpProgressBar.Visible = False

    End If

   

Exit_LinksCreateToSource:

    Exit Sub

   

Err_LinksCreateToSource:

    MsgBox "Error No " & Err.Number & vbLf & Error$, , "Sub LinksCreateToSource"

    Stop

    Resume Exit_LinksCreateToSource

   

End Sub



''''''''''''''''''''''''''''''''''''''''''''''''''

'断开链接表



Public Sub LinksDelete(Optional strConnectString As String = "")



    Dim tdf As TableDef

   

    For Each tdf In CurrentDb.TableDefs

        If tdf.Connect <> "" Then 'Check for linked tables

      

            If InStr(1, tdf.Connect, strConnectString, vbTextCompare) > 0 Then

               

                DoCmd.DeleteObject acTable, tdf.name

            End If

        End If

    Next tdf

End Sub



[此贴子已经被作者于2005-8-18 13:33:15编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-8-20 07:42:00 | 只看该作者
能改改用于链接SQL的吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-2 17:01 , Processed in 0.111699 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表