VB使用DAO控制ACCESS链接表!

原创 2006年05月31日 11:03:00

在一家使用Access开始程序的公司做项目,改进原系统成为支持Barcode的物流系统.

他们使用程序和数据分离的方法,Access的程序使用链接表指向原始表,就可以在程序中直接操作链接表就像操作本地表一样.由于将数据部署在服务器上做为生产数据库,则调试时将使用本地数据进行调试,在程序中就要频繁更改链接表的指向.以前他们都是手动进行修改很是忙烦,我看了下DAO的资料就写个小程序控制链接表.程序如下:

新增项目,引用DAO3.51,窗体上放三个TextBox,两个CommandButton,一个CommonDialog,和一个ProgressBar.编写代码如下:

Option Explicit

Private Sub cmdBrowse_Click(Index As Integer)
    Me.CommonDialog1.ShowOpen
    If Me.CommonDialog1.FileName <> "" Then
        Me.txtPath(0).Text = Me.CommonDialog1.FileName
    End If
End Sub

Private Sub cmdExit_Click()
    Unload Me
End Sub

Private Sub cmdProcess_Click()
    Dim i As Long, ok As Long, linkcount As Long
    For i = 0 To 2
        If Me.txtPath(i).Text = "" Then
            MsgBox "请填写所有路径!", vbOKOnly + vbInformation, "提示"
            Exit Sub
        End If
    Next
   
    Dim db As Database
    Set db = DBEngine.OpenDatabase(Me.txtPath(0).Text)
    Dim t As TableDef, s1 As String, s2 As String, s3 As String
    Me.ProgressBar1.Max = db.TableDefs.Count
    Me.ProgressBar1.Value = 0
    For Each t In db.TableDefs
        Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
        If t.Connect <> "" Then
            linkcount = linkcount + 1
            t.Connect = Replace(t.Connect, Me.txtPath(1).Text, Me.txtPath(2).Text)
            Dim find As Long
            find = InStr(1, t.Connect, Me.txtPath(2).Text)
            On Error Resume Next
            t.RefreshLink
            If DAO.Errors.Count <> 0 Then
                For i = 0 To DAO.Errors.Count - 1
                    If DAO.Errors(i).Number = "3011" Then                           '在目标表中未找到此表
                        If vbNo = MsgBox("更改链接表时发生目标表链接错误:" & vbCrLf & _
                                            DAO.Errors(i).Description, vbYesNo + vbInformation + vbDefaultButton2, "提示") Then
                            On Error GoTo errHandle:
                            Err.Raise vbObjectError, Me.Name, "用户中断操作!"
                        End If
                    Else
                        Debug.Print DAO.Errors(i).Description
                    End If
                Next
                DAO.Errors.Refresh
            Else
                If find <> 0 Then
                    ok = ok + 1
                End If
            End If
        End If
    Next
    MsgBox "链接表刷新完毕,数据库中总计有:" & _
                Me.ProgressBar1.Max & "个数据表,其中链接表为:" & linkcount & _
                "个,成功匹配操作:" & ok & "个数据表.", vbOKOnly + vbInformation, "提示"
    Exit Sub
errHandle:
    MsgBox Err.Number & "," & Err.Source & "," & Err.Description, vbCritical + vbOKOnly, "错误"
    Me.ProgressBar1.Value = 0
End Sub

access链接表操作示例

  • 2010年06月01日 15:45
  • 153KB
  • 下载

程序实现刷新ACCESS链接表

  • 2005年12月02日 10:36
  • 1024B
  • 下载

【Hibernate框架】使用链接表的关联映射(一对多/多对一、单/双向映射)

马上就进入hibernate关联映射总结的最后阶段了,关于使用链接表的关联映射。 回顾我们的上篇文章【Hibernate框架】关联映射(多对多关联映射),我们总结了有关多对多关联映射的一些知识,细心的...

链接表操作0.5 vb6 Linyee 辅助工具

  • 2008年12月09日 02:19
  • 52KB
  • 下载

链接表操作VB6.0源码v0.4

  • 2008年10月06日 20:25
  • 41KB
  • 下载

VB6.0 对ACCESS的控制总结——无需控件版(建库,删库,建表,删表,增加行,删除行)

'前言: VB6.0对数据库的操作方法很多,对于初学者来说也比较乱.用控件操作数据库是很简洁的,但相对的局限性也变大了.总结了相对简介而使用的几个功能希望大家喜欢. '引用"Microsof...

链接表操作VB6.0源码v0.2

  • 2008年09月20日 17:35
  • 20KB
  • 下载

链接表代码

  • 2014年12月22日 21:03
  • 2KB
  • 下载

该 ISAM 不支持在链接表中删除数据。

使用OleDB方式操作Excel,删除表中的数据时提示该错误相关代码:连接字符串://定义OleDB连接字符串 string strConn = "Provider=Micro...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB使用DAO控制ACCESS链接表!
举报原因:
原因补充:

(最多只允许输入30个字)