• 締切済み

ACCESSをリンクで接続しフォームをコピー移行

今までユーザー一人でフォームを利用しデータを管理・閲覧していました。 これをユーザー5人に増やすことを検討しています。 その際に今利用しているaccdbファイルをサーバーに設置し、クライアントからはリンクサーバにて接続するように設定します(ネットワーク経由によるデータ破損の可能性を最小限にするため)。 質問なのですが、もともとのaccdbファイルにあったフォームをクライアント側にコピペ・エクスポートできないでしょうか?手作業で作り直すにも、ユーザー分繰り返すのは苦痛です。 よろしくお願いいたします。

みんなの回答

  • tamu1129
  • ベストアンサー率58% (1301/2234)
回答No.6

>ダイアログ表示が可能ならばちょっと簡単になりますができますでしょうか? 規定値としてフォルダーのパスまでは最初から入力済みにする事は出来るでしょう ファイル名は他の画像と重複しないようにしなければなりませんから、社内でルール作りは必要でしょう 私はユーザーに話しても無駄になる事が多い事は私が行います データベース作るのは私ですし、管理者にさせられますから「画像は俺の所に送っておいてね俺が登録しておくから」とか、画像必要かなと思われる場合はたいていPHPやCGI動作するWebデータベースで運用させて、Accessには行わせていませんでした

piyo-maru7
質問者

お礼

ご回答ありがとうございます。 画像のアップロードは運用方法でカバーするんですね。いろいろ考えてみます。管理者がアップロードするのも手ですね。ただ二直のユーザーがいるのですぐに対応できないことから話し合いが必要です。 ありがとうございました。

  • tamu1129
  • ベストアンサー率58% (1301/2234)
回答No.5

>それらの画像データは抽出しましたが、それをまたSQL Server上で格納させるのが面倒そう それをやるとAccessのファイルが肥大化するのと、ファイルが破損する事が多くなるんです よってファイル格納場所はサーバーとなるPCの特定のフォルダーを指定し、Accessのデータベースのフィールドにはその画像の格納場所になるパスの情報を格納 フォームで開く時に、パス先の画像をフォーム内に表示させるって事をしないといけないでしょう(これはデータベース部をSQLServerにしても同じです) Accessのデータベース部+Accessフロントエンドで複数ユーザーで使わせた事もありますが、どうもデータベースファイルが壊れるんですよ 私はそれ以降は、データベース部はSQLServer+フロントエンドとして端末側でAccess使うような仕組みにしています(これにしてからは一度もトラブルにあった事はありません)

piyo-maru7
質問者

お礼

ご回答ありがとうございました。 画像の埋め込みをパスで処理するとなると、ユーザーがそのパスを手入力することになりませんか?タイプミスもあるだろうし。 ダイアログ表示が可能ならばちょっと簡単になりますができますでしょうか?

  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.4

>質問なのですが、もともとのaccdbファイルにあったフォームを >クライアント側にコピペ・エクスポートできないでしょうか? >手作業で作り直すにも、ユーザー分繰り返すのは苦痛です。 他の方が回答されてますが、新規にaccdbを作成し、既存のaccdbから 各フォームインポートするだけです。 テーブルについては、既存のaccdbとリンクしたものを作成(インポート ではない)。 で、それを各ユーザーのPCにコピーするかと思いますが、各ユーザーの PCにAccessはインストールされているのでしょうか。 もし、インストールされておらずAccess Runtimeを使うのなら事前に 動作確認した方がよいかと思います。

piyo-maru7
質問者

お礼

Access Runtimeの存在を初めて知りました。これでかなり節約できます。本当に感謝です! 動作確認を本当に軽くしてみましたが、動いているようです。ちなみにAccess本体はサーバ上にも必要なく余計なライセンスがいらないので万々歳です。 ありがとうございました。

  • panacon
  • ベストアンサー率31% (214/679)
回答No.3

piyo-maru7 さんへ サーバーにあるaccdbファイルのフォームをクライアント側にコピーしたいということですが、それは、データベースはサーバーにあって、フロント操作系はクライアントにあることを望まれたと思います。それですと、ネットワーク経由によるデータ破損の可能性を最小限にするための考えとぶつかってしまうと思います。 それはそうとしての話ですが、Accessをデータベース側とクライアント側に分離したいとして、元のaccdbファイルをクライアントにコピーして、そのファイルのテーブルをサーバーの元のaccdbファイルのテーブルのリンクと置き換える手があります。やり方は、クライアント側で外部データのAccessを選択して、リンクオプションを選びます。エクスプローラーが立ち上がるので、サーバにある元のaccdbファイルを選んでOKします。リンクできるテーブルが表示されるので、全部反転させてOKします。すると、クライアント側のテーブル名に、○○1という名前でリンクテーブルができます。この時点で、ローカルテーブルを削除して、その後に、○○1の名前の1を削除して元の名前に戻せば使えます。 ただ、その前に考えるべきは、ユーザー5人が、すべて更新可能なユーザーなのか、閲覧のみのユーザーがいるのであれば、利用したい都度、サーバーからファイルごとコピーすればデータ破損のリスクが減りますので、そういうユーザーには、バッチコマンドのコピーを用意しておけば良いと思います。

  • tamu1129
  • ベストアンサー率58% (1301/2234)
回答No.2

フォームうんぬんと言わず、今利用しているaccdbファイルそのものをそのままクライアント端末にコピーして使えば良いだけ(クライアント端末にAccsessがインストされている事が前提) ただ、複数ユーザーで使う場合accdbファイルでの運用は勧めない データベース部分にはSQLServerを使用してフロントエンドとしてAccessを使う事を考えた方が良い SQLSeverは無料で使える、Microsoft SQL Server Expressバージョンもあるのだから導入はたやすいですしね

piyo-maru7
質問者

お礼

コメントありがとうございます。 SQL Server無料版の利用も考えましたが、accdbにアタッチメントとして画像がテーブルに格納されていることから、すんなり移行できないので苦肉の策なんです。 それらの画像データは抽出しましたが、それをまたSQL Server上で格納させるのが面倒そう(やり方もよく知りません)なのと、Accessのフォームから各ユーザーが新規に画像をSQL Serverにアップロードできるかも未知なので、方向転換を考えています。

  • fmxBeem
  • ベストアンサー率54% (325/599)
回答No.1

1.ユーザ側ののデータベース(accdbファイル)を開く 2.外部データ→Access(外部データの取り込み) 3.サーバのaccdbファイルを選択し、「現在のデータベースに・・・インポートする」を選択してOK 4.コピーしたいフォームを選択してOK でインポートできます(^^)

piyo-maru7
質問者

お礼

なるほど。 フォームをこれでコピーした後、リンク元をそれぞれ書き換えれば出来そうですね。 ありがとうございました!

関連するQ&A

専門家に質問してみよう