利用拆分后的后端数据库保存不同年份的数据
2024-07-21 02:12:27
供稿:网友
面向:初学者
目的:如果一年的数据较多,希望在分年的数据库中保存数据
知识点: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=" & mypath & "/出口业务记录_data" & forms!窗体1!所属年份 & ".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=" & mypath & "/出口业务记录_dataorigin.mdb"
else
tab1.connect = ";database=" & mypath & "/出口业务记录_data" & forms!窗体1!所属年份 & ".mdb"
end if
tab1.refreshlink
end if
next tab1
msgbox forms!窗体1!所属年份 & "年的基础数据库连接成功!"
end if
exit_lj_error:
exit sub
lj_error:
msgbox forms!窗体1!所属年份 & "年的后端数据库文件不存在!"
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" & forms!窗体1!所属年份 & ".mdb"
if .execute() <= 0 then
if msgbox("没有" & forms!窗体1!所属年份 & "年的数据库,是否要创建一个?", vbyesno) = vbyes then
forms!窗体1.form!版本.form.recordsource = ""
filecopy mypath & "/出口业务记录_dataorigin.mdb", mypath & "/出口业务记录_data" & forms!窗体1!所属年份 & ".mdb"
else
forms!窗体1!所属年份 = year(now())
msgbox "没有" & forms!窗体1!所属年份 & "年的数据库!"
exit sub
end if
end if
end with
链接
end sub
4.在窗体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=" & mypath & "/出口业务记录_data" & year(now()) & ".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=" & mypath & "/出口业务记录_dataorigin.mdb"
else
tab1.connect = ";database=" & mypath & "/出口业务记录_data" & year(now()) & ".mdb"
end if
tab1.refreshlink
end if
next tab1
end if
end sub
注意窗体一最好是没有任何绑定控件的切换面板,如果有这样的控件,在更改链接表connect属性和filecopy之前要设置这些控件的所有***source(如rcordsource,rowsource等)="",完成相关语句后再设置成原来的值.
希望指正!!!