如何通过VB把excel的表添加为access的表,不是通过access的external data 菜单添加
时间:2011-07-29
来源:互联网
- 不是通过access的external data 菜单添加
- 这样我就可以动态设置链接表的位置。
- 这样我就可以动态设置链接表的位置。
作者: allcap 发布时间: 2011-07-29
我个人以为应该先做好单机版的,再分离数据库。然后可以备份一份无保护的文件到本地,以链接表管理器的方式重定位链接表。
那么需要修改部分功能时,只需处理这个本地数据库即可。处理完毕后把前台复制到服务器,更新链接,保护好之后即可让用户端下载使用了。写代码始终不是一件愉快的事情。
不过我还是先写上来吧,给比较膜拜代码的网友用用。
里面有大部分注释,部分属性我就不写了。
Private Sub Cmd_LnkTbl_Click()
Dim dbs As Database
Dim Tdf As TableDef
'Dim Lianjie As String
Dim MyPath As String
Dim MyFile As String
Dim MyPwd As String
'错误处理
On Error GoTo err1
LnkTbl = False
'删除已有链接
Set dbs = CurrentDb
For Each Tdf In CurrentDb.TableDefs
If Len(Tdf.Connect) > 0 Then
DoCmd.DeleteObject acTable, Tdf.Name
End If
Next Tdf
dbs.Close
'显示打开对话框(需要引用Office库才能执行)。
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Filters.Add "Access数据库(*.mdb)", "*.mdb"
.Title = "请浏览文件"
.ButtonName = "打开"
.InitialView = msoFileDialogViewDetails
If .Show = -1 Then
'获取链接表地址和密码。txt_Path为窗体的一个文本控件。
Me.Txt_Path.Value = CStr(fd.SelectedItems.Item(1))
MyPwd = "后台数据库密码"
Set dbs = OpenDatabase(Me.Txt_Path.Value, False, False, ";PWD=" & MyPwd)
For Each Tdf In dbs.TableDefs
'如果是本地表才连接
If Len(Tdf.Connect) = 0 And Tdf.Attributes = 0 Then
DoCmd.TransferDatabase acLink, "Microsoft Access", Me.Txt_Path.Value, acTable, Tdf.Name, Tdf.Name, False
End If
Next Tdf
dbs.Close
Set dbs = Nothing
LnkTbl = True
Exit Sub
Else
Debug.Print "用户取消"
End If
End With
err1:
LnkTbl = False
MsgBox Err.Description, vbExclamation, "错误!"
End Sub
那么需要修改部分功能时,只需处理这个本地数据库即可。处理完毕后把前台复制到服务器,更新链接,保护好之后即可让用户端下载使用了。写代码始终不是一件愉快的事情。
不过我还是先写上来吧,给比较膜拜代码的网友用用。
里面有大部分注释,部分属性我就不写了。
Private Sub Cmd_LnkTbl_Click()
Dim dbs As Database
Dim Tdf As TableDef
'Dim Lianjie As String
Dim MyPath As String
Dim MyFile As String
Dim MyPwd As String
'错误处理
On Error GoTo err1
LnkTbl = False
'删除已有链接
Set dbs = CurrentDb
For Each Tdf In CurrentDb.TableDefs
If Len(Tdf.Connect) > 0 Then
DoCmd.DeleteObject acTable, Tdf.Name
End If
Next Tdf
dbs.Close
'显示打开对话框(需要引用Office库才能执行)。
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Filters.Add "Access数据库(*.mdb)", "*.mdb"
.Title = "请浏览文件"
.ButtonName = "打开"
.InitialView = msoFileDialogViewDetails
If .Show = -1 Then
'获取链接表地址和密码。txt_Path为窗体的一个文本控件。
Me.Txt_Path.Value = CStr(fd.SelectedItems.Item(1))
MyPwd = "后台数据库密码"
Set dbs = OpenDatabase(Me.Txt_Path.Value, False, False, ";PWD=" & MyPwd)
For Each Tdf In dbs.TableDefs
'如果是本地表才连接
If Len(Tdf.Connect) = 0 And Tdf.Attributes = 0 Then
DoCmd.TransferDatabase acLink, "Microsoft Access", Me.Txt_Path.Value, acTable, Tdf.Name, Tdf.Name, False
End If
Next Tdf
dbs.Close
Set dbs = Nothing
LnkTbl = True
Exit Sub
Else
Debug.Print "用户取消"
End If
End With
err1:
LnkTbl = False
MsgBox Err.Description, vbExclamation, "错误!"
End Sub
作者: roych 发布时间: 2011-07-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28