access数据库拆分的用途_Access中利用拆分后端数据库保存不同数据

本文介绍了如何在Access中通过数据库拆分来管理不同年份的数据。首先,将常用表名前缀统一,然后进行数据库拆分,创建前端和后端数据库。在启动窗体中设置一个文本框输入所属年份,并通过查找文件和链接过程,动态连接到相应年份的后端数据库,确保数据的正确读取和更新。关闭窗体时,会自动调整回当前年份的数据库连接。
摘要由CSDN通过智能技术生成

知识点:

1.数据库拆分。

2.文件查找技术。

3.文件复制。

4.链接表的刷新。

步骤:

1.将一些每年都要使用(修改,添加等)的表的名称前两个字母改为共同的(如:Or_业务人员名单,Or_收货人名单等),注意不要是“MS”,“SW”,“US”等系统要使用的字母。

2.将数据库拆分(假如前端名称为:出口业务记录.mdb,后端名称为:出口业务记录_dataOrigin.mdb。

3.在启动窗体(假如名称为:窗体1)中建立一文本框(假如名称为:所属年份)。

4.在窗体1的Open事件和所属年份的AfterUpdate事件中调用下面的“查找文件”过程。

Public Sub 链接()

On Error GoTo LJ_error

Dim TABNAME As String

Dim Tab1 As TableDef

Dim MyPath As String

MyPath = Application.CurrentProject.Path

CurrentDb.TableDefs.Refresh’刷新当前数据库中的表对象

If CurrentDb.TableDefs(15).Connect = ";

DATABASE=" %26amp; MyPath %26amp; "\出口业务记录_data" %26amp;

FORMs!窗体1!所属年份 %26amp; ".mdb" Then

Exit Sub

Else

For Each Tab1 In CurrentDb.TableDefs

TABNAME = Tab1.Name

If Left(TABNAME, 2) ;; "MS" And Left(TABNAME, 2)

;; "SW" And Left(TABNAME, 2) ;; "Us" Then

If Left(TABNAME, 2) = "Or" Then

Tab1.Connect = ";DATABASE=" %26amp; MyPath %26amp;

"\出口业务记录_dataOrigin.mdb"

Else

Tab1.Connect = ";DATABASE=" %26amp; MyPath %26amp;

"\出口业务记录_data" %26amp; FORMs!窗体1!所属年份 %26amp; ".mdb"

End If

Tab1.RefreshLink

End If

Next Tab1

MsgBox FORMs!窗体1!所属年份 %26amp; "年的基础数据库连接成功!"

End If

Exit_LJ_error:

Exit Sub

LJ_error:

MsgBox FORMs!窗体1!所属年份 %26amp; "年的后端数据库文件不存在!"

Resume Exit_LJ_error

End Sub

Public Sub 查找文件()

Dim MyPath As String

Dim fs As Variant

Dim TABNAME As String

Dim Tab1 As TableDef

MyPath = Application.CurrentProject.Path

Set fs = Application.FileSearch

With fs

.LookIn = MyPath

.SearchSubFolders = True

.Filename = "出口业务记录_data" %26amp; FORMs!窗体1!所属年份 %26amp; ".mdb"

If .Execute() ;= 0 Then

If MsgBox("没有" %26amp; FORMs!窗体1!所属年份 %26amp;

"年的数据库,是否要创建一个?", vbYesNo) = vbYes Then

FORMs!窗体1.FORM!版本.FORM.RecordSource = ""

FileCopy MyPath %26amp; "\出口业务记录_dataOrigin.mdb",

MyPath %26amp; "\出口业务记录_data" %26amp; FORMs!窗体1!所属年份 %26amp; ".mdb"

Else

FORMs!窗体1!所属年份 = Year(Now())

MsgBox "没有" %26amp; FORMs!窗体1!所属年份 %26amp; "年的数据库!"

Exit Sub

End If

End If

End With

链接

End Sub

5.在窗体1的Close事件中写:

Private Sub FORM_Close()

Dim TABNAME As String

Dim Tab1 As TableDef

Dim MyPath As String

MyPath = Application.CurrentProject.Path

CurrentDb.TableDefs.Refresh’刷新当前数据库中的表对象

If CurrentDb.TableDefs(15).Connect = ";

DATABASE=" %26amp; MyPath %26amp; "\出口业务记录_data" %26amp; Year(Now()) %26amp; ".mdb" Then

Exit Sub

Else

For Each Tab1 In CurrentDb.TableDefs

TABNAME = Tab1.Name

If Left(TABNAME, 2) ;; "MS" And Left(TABNAME, 2)

;; "SW" And Left(TABNAME, 2) ;; "Us" Then

If Left(TABNAME, 2) = "Or" Then

Tab1.Connect = ";DATABASE=" %26amp; MyPath %26amp;

"\出口业务记录_dataOrigin.mdb"

Else

Tab1.Connect = ";DATABASE=" %26amp; MyPath %26amp;

"\出口业务记录_data" %26amp; Year(Now()) %26amp; ".mdb"

End If

Tab1.RefreshLink

End If

Next Tab1

End If

End Sub

注意:窗体一最好是没有任何绑定控件的切换面板,如果有这样的控件,在更改链接表connect属性和FileCopy之前要设置这些控件的所有***Source(如RcordSource,RowSource等)=“”,完成相关语句后再设置成原来的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值