したがって、基本的に、パスワードで暗号化されたACCDBからDAOを介して、作業中のDBにテーブルをリンクしようとしています。私がやっていることの前提は、データが一種の「ユーザー機密」であるため、したくないすべてのユーザーがフロントエンド (フロントエンドとバックエンドを分割) でこのテーブルにアクセスできるようにするには、特定のユーザーのみを許可します。私がしたいのは、コンピューターのユーザー名を確認し、ユーザー名が正しい場合はフロントエンドがデータにリンクできるようにすることです。
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
しかし、テーブルがデータベースに存在しないので、どうすればよいですか?