所以我基本上试图通过DAO链接一个表,通过密码加密到我正在使用的数据库中的ACCDB。我所做的前提是数据是“用户敏感“,所以我不想让每个用户都可以在我的前端访问此表(具有前端/后端拆分),只有特定的用户才能访问此表。我想这样做是为了检查计算机的用户名,然后允许用户名是否正确前端链接到该数据:通过DAO的链接表
Select Case Environ("username") 'select case user environment name
Case "jsmith" 'if username is jsmith then
Set db = DAO.OpenDatabase("Audit.accdb", False, False, _
";pwd=adaudit12") 'create connection to my other db
Set tbl = db.TableDefs(14) 'selects the table via index
CurrentDb.TableDefs.Append tbl 'create a link to my current DB with this table (throws ex here)
Case Else
End Select
这将返回运行时错误“3367”无法追加。具有该名称的对象已存在于集合中。
所以我想这样做:
For Each tbl In CurrentDb.TableDefs
Msgbox tbl
Next tbl
但犯规存在于我的数据库中的表,所以我应该怎么办?
查看mwolfe02关于查询名称冲突和Environ(“username”)''不安全性的警告。 – HansUp
有关OP如何尝试复制TableDef对象本身的好处。我掩盖了代码,只真正解决了错误信息。 – mwolfe02
@HansUp在阅读一些文章后,我想出了这个代码;他们说这是连接桌子,但它看起来不像是这样,所以我有点怀疑。有没有更好的方式来链接这些数据?而不是将**附加到表中 –