1
Sub di金蝶7()
'导入金蝶7.0原始数据
'必须添加对ADO的引用。
'本例中引用的是"Microsfot ActiveX
Data Objects 2.6 Library"
delsheet
Dim x, n As
Integer 'x用于保存行号,n用于保存凭证表编号
Dim stname As
String '用于保存新增凭证表的名称
x = 2
n = 1
'显示提示窗口
MsgBox
"您正准备导入金蝶7.0的原始数据,请定位到数据库所在的文件夹!" _
& vbCrLf & vbCrLf
& "金蝶7.0的数据库文件在安装目录下,金蝶7.0不支持备份导入。", vbInformation,
"提示信息!"
Dim filepath As String
'声明变量保存路径
Dim sql As
String
'声明变量保存查询命令
'金蝶7.0是通过工作组管理文件进行保护的,相应的权限保存在这个文件中
'构建连接字符串的时候,应当指定工作组管理文件所在的路径
'本例中工作组管理文件保存在当前目录下,该文件不可缺少!
'引用filesystemobject对象
Dim fs As New
FileSystemObject
filepath = ThisWorkbook.path
& "\System.mda"
If fs.FileExists(filepath)
Then
Else
MsgBox
"缺少金蝶7.0的工作组管理文件System.mda,无法执行下一步操作!", vbExclamation,
"请检查!"
Exit
Sub
End If
'声明记录集
Dim rs As New
ADODB.Recordset
'声明ADO连接
Dim Conn As New
ADODB.Connection
'弹出文件选择对话框
FileToOpen_N =
Application.GetOpenFilename("AIS文件,*.ais", _
Title:="请指定金蝶7.0数据库文件所在的位置:",
MultiSelect:=False)
'如果选择“打开”选定文件
If FileToOpen_N <>
False Then
'关闭屏幕更新
Application.ScreenUpdating
= False
'在状态指示栏进行显示
Application.StatusBar
= "正在连接数据库,请稍候..."
'连接字符串
Conn.Open
("Driver={Microsoft Access Driver (*.mdb)};DBQ=" & FileToOpen_N
& ";UID=morningstar;PWD=ypbwkfyjhyhgzj;SystemDB=" &
filepath & ";")
'打开记录集,读取凭证库
rs.Open
"select FDate as
日期,FGroup&FNum,FAcctID,FExp,iif(FDebit=0,'贷','借') as
fx,FQty,'','',FDebit+FCredit,'','',FDeptID,FEmplID,FCustID from
GLVch", Conn, 1, 1
'以65000条记录为单位,循环读取记录集,因为EXCEL2003以前的版本,
'单表记录不超过65536,在EXCEL2007中可以修改为100万
While Not
rs.EOF
'增加一个新表,并将其名称命名为凭证n
stname =
"凭证" & n
ThisWorkbook.Sheets.Add
After:=ThisWorkbook.Sheets(Sheets.Count)
'设置凭证表的样式,并导入记录
With
ActiveSheet
.Name =
stname
.Range("A1").Value = "日期"
.Range("B1").Value = "凭证号数"
.Range("C1").Value = "科目编码"
|