質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

3回答

3825閲覧

Access2010 インポートさせない方法を教えてください

waraunekon

総合スコア8

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

1クリップ

投稿2017/08/02 13:44

編集2017/08/03 14:20

Access2010で作成したデータベースのテーブルをインポートすることが出来ないようにする方法を教えてください。

DB1.accdb にテーブルを作りデータを入力し、アプリを作成した後、第三者に渡す場合にテーブルの内容を見られないようにしたいです。
パスワード設定やShiftキーを使用できない方法はわかりますが、DB2.accdbを作成してDB1.accdbからテーブルインポート操作を行うと、無条件でデータを抜き取られてしまいます。
このようなインポートを防ぐ方法がありましたらお教え下さい。
よろしくお願い致します。

イメージ説明

![イメイメージ説明74ef820eb981eb1ef847ab5daa496839.jpeg)

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

SQL serverへのリンクテーブルならそれをパススルークエリーに変更することができれば、フロントエンドのみで対処できそうですね。

リンクテーブルよりパススルークエリーの方が高速でもあるし、検討されてみてはどうでしょう。

投稿2017/08/03 14:59

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

waraunekon

2017/08/06 10:13

ありがとうございます。 パススルークエリーだけでは解決しませんでしたが、大変参考になりました。
guest

0

下記の手順で。

データベース分割で、テーブルのみのデータベースファイル(バックエンドファイル)とそれ以外のオブジェクトのデータベースファイル(フロントエンドファイル)に分割する。

バックエンドファイルにはデータベースパスワードを設定しておく。

フロントエンドファイルは、フォームやレポートのレコードソースプロパティに直接SQLを設定して、IN句でバックエンドと接続する。SQL生成してレコードソースに設定するのは、フォームやレポートの開く時のイベントでVBAで設定するようにする。渡す相手によって、接続さきのパスが変わってくるため。

フロントエンドファイルをACCDEファイルに変換する。

バックエンドファイルとフロントエンドファイル(ACCDE)を第三者に渡す。

詳細は下記を参考に。

テーブルデータを保護する - hatena chips

投稿2017/08/02 15:04

hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

waraunekon

2017/08/03 01:42

さっそくのご回答ありがとうございます。 いまから試してみたいと思いますので、うまく出来ましたら改めて報告させて頂きます。
waraunekon

2017/08/03 14:15

早速教えていただきました通りに試しましたところ、2つのaccdb(Y.accdbとZ.accdb)間ではデータの利用とセキュリティは有効になりました。 ありがとうございます。 そこで上記を応用して、実際の運用に合わせたSQLサーバーのデータをODBC接続で利用したのですがセキュリティでトラブルが発生しました。(添付資料1~3.jpgご参照下さい) 1.SQLServerのデータベースをY.accdbにODBC接続して利用するところはOKです。 2.そのYaccdbをZ.accdbのフォーム等を利用したアプリを作成したいのですが、Z.accdbからY.accdbのデータがパスワードエラーで利用できません。 この現象は何が原因でしょうか? ご指導のほどよろしくお願いいたします。
hatena19

2017/08/03 16:06

回答はAccessデータベースを前提の回答ですので、SQLサーバーなら話は違ってきます。 SQLサーバーにODBC接続しているなら、Accdb を分割する必用はないです。 Z.accdbのフォーム等のレコードソースにIN句で接続するSQLを直接記述します。 select * from テーブル名 in "" [ODBC;Driver={SQL Server};SERVER=localhost;Database=lbox;UID=sa;PWD=] あとは、回答通りです。
waraunekon

2017/08/06 10:12

ありがとうございます。 これをやってみましたがうまくいかずに毎回パスワードを求められることになりました。
guest

0

自己解決

いろいろご指導ありがとうございました。

かなり悪戦苦闘しましたが、結局2つのAccessシステムとパススルークエリを組み合わせて下記のような組み合わせでうまくいきました。

SQLServer(ODBC接続)

Y.accdb パススルークエリ設置+パスワードセキュリティ

Z.accde フォーム/レポート関係設置

第三者にシステムを提供する場合はODBC設定の詳細と、y.accdb、Z.accdeを提供することでオリジナルのdbmの内容を見られることがなくなりました。

投稿2017/08/06 10:14

waraunekon

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問