2

したがって、基本的に、パスワードで暗号化された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

しかし、テーブルがデータベースに存在しないので、どうすればよいですか?

4

2 に答える 2