我有我的前端在 excel 和后端作为访问。我每天将这些文件发送给客户。我不希望其他人看到数据库。有没有办法在excel中集成访问,如果我只传输excel文件,访问文件也会自动传输,其他人不知道我的数据库?
数据库应仅保留访问权限。
2 回答
0
您可以将 Access 数据库作为对象嵌入您的 Excel 文件 ( Insert->Object->Create from file, 选择Display as icon) 并要求用户提取和删除它。但是,如果您手动进行,这对双方来说都有些麻烦。
如果要自动化该过程,请使用以下代码:
Private Const cStrSheetName As String = "Sheet1"
Private Const cStrObjName As String = "EmbeddedFile"
子嵌入文件()
暗淡 strFile 作为字符串
暗淡为工作表
设置 ws = Sheets(cStrSheetName)
strFile = Application.GetOpenFilename("任何文件 (*.*), *.*", 1, _
“请选择要嵌入的文件”)
如果 strFile = "False" 然后退出 Sub
出错时继续下一步
ws.Shapes(cStrObjName).Delete
On Error GoTo ErrorHandler
ws.OLEObjects.Add(文件名:=strFile, 链接:=False, _
DisplayAsIcon:=True, IconFileName:="", _
IconIndex:=0, IconLabel:=strFile).Select
Selection.Name = cStrObjName
MsgBox "文件嵌入成功!"
退出子
错误处理程序:
MsgBox "无法嵌入文件。错误:" & _
Err.Number & " - " & Err.Description
结束子
子 ExtractEmbeddedFile()
暗淡为工作表
设置 ws = Sheets(cStrSheetName)
出错时继续下一步
ws.OLEObjects(cStrObjName).Copy
If Err.Number Then
MsgBox "没有嵌入文件!"
退出子
万一
On Error GoTo ErrorHandler
CreateObject("Shell.Application").Namespace(ActiveWorkbook.Path) _
.Self.InvokeVerb “粘贴”
If MsgBox("文件成功解压到" & ActiveWorkbook.Path _
& vbCrLf & vbCrLf & "你要删除嵌入的" & _
“从此工作簿中的文件以减小其大小?”,vbYesNo) _
= vb是 那么
ws.Shapes(cStrObjName).Delete
万一
退出子
错误处理程序:
MsgBox "提取文件时出错:" & _
Err.Number & " - " & Err.Description
结束子
这将为您提供两个宏 (EmbedFile和ExtractEmbeddedFile),您可以将它们分配给工作表中的按钮。
请注意,您需要"Sheet1"在第一行修改为要存储嵌入文件的工作表的名称。
于 2013-01-09T20:52:58.280 回答
0
您不能通过电子邮件或 FTP 不可见地发送 Access 文件,但可以将数据移动到可从 Internet 访问的 SQL Server(或其他)数据库。
然而,这带来了几个问题:
1) 安全
2) odbc DSN
3) 客户端计算机上 odbc 驱动程序的可用性
于 2013-01-09T15:11:22.140 回答