我有我的前端在 excel 和后端作为访问。我每天将这些文件发送给客户。我不希望其他人看到数据库。有没有办法在excel中集成访问,如果我只传输excel文件,访问文件也会自动传输,其他人不知道我的数据库?
数据库应仅保留访问权限。
问问题
112 次
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 回答