• ベストアンサー

ACCESS:2つのフォームから1つのテーブルに

OS:Windows2000 ソフト:ACCESS2000  表題のとおり、2つのフォームを用意しておいて、どちらのフォームからもあるテーブルに書込みを行うことは可能なのでしょうか?  具体的には、単票形式のフォームと表形式のフォームから一つのテーブルに対してデータ入力を行いたいのです。今現在、表形式からはテーブル内容を参照でき、書込みも行える状況にあり、単票形式のフォームからは入力が出来ない状況にあります。  どのようにすれば可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • skikichi
  • ベストアンサー率65% (45/69)
回答No.4

ひとつひとつの項目の意味、関係までは分らないので、ここまでの推測で思ったことを言いますと・・・ テーブルの正規化はできていますか? 社員No.だけでリレーションを取れませんか? それから、業務年度、工種コード、細目コードはどちらかのテーブルにだけあればいいのではないですか? どの項目がユニークで、どの項目が構造的に変化する可能性があるのかが明確になっているでしょうか? 日報の情報として毎回新たに作成されるデータと、 社員の基本情報(社員No.、氏名、住所など)は別のテーブルになっていますよね!? たとえば、「業務年度」とは「ある社員がある業務を行った年」と言う意味ですか? だとすると社員の基本情報のあるテーブルには必要なく、日報のテーブルに必要な項目になりますよね!? いまひとつ見えないので、思ったことをざっくばらんに書きましたので分りにくかったり、的を思いっきりはずしているかもしれませんが、絡んだ糸をほぐす一つの手段としてお許しください。

Panotty777
質問者

お礼

こちらの説明が不十分なため、回答も難しかったでしょうが、何度もご回答いただきありがとうございます。 まだ、解決には至りませんが、このアドバイスを元にさらに進めて見たいと思います。 ありがとうございました。

その他の回答 (3)

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.3

「日報テーブル」とリレーションを組んでいるテーブルとは何をキーにしていますか? また、そのキーはお互いのテーブルに存在しますか? 「日報テーブル」に存在するキーがもう一つのテーブルには無い、またはその逆。 リレーションの結合の種類は何になっていますか? ちまみに、表形式のフォームのレコードソースであるクエリーは「日報テーブル」からのみ抽出していますか? エラーメッセージの「'***'」を明示してください。

Panotty777
質問者

補足

リレーションに関してですが、社員No、業務年度、工種コード、細目コードをキーとしており、お互いのテーブルに存在しています。 結合の種類は、[社員No]のみ「参照整合性」有りで、他は「参照整合性」無し(「主テーブルで参照されているフィールド用の固有インデックスが見つかりません。」エラーが出てしまい「有り」に出来ない)となっています。 ***のメッセージに関してですが、「フィールド'社員No'とキーが一致しているレコードをテーブル'社員名簿'で探すことが出来ません。」というエラー文です。

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.2

単に、単票形式のフォームの表示でエラーになってしまうということですね。 そのフォームの作り方、設定、クエリーやVBA、テーブルのキーの内容、nullのレコードがあるか否か、他のテーブルとの結合方法(リレーション)、などの詳細の情報をください。

Panotty777
質問者

補足

フォーム自体は、ウィザードにてテーブルを元に作成しました。 基本的には、日報を取り扱えるようにしたいので、「日報テーブル」として[社員No][年][月][受託番号コード][工種コード][細目コード][勤怠時間]と用意してあり、「社員名簿」「受託業務」「工種」「細目」といったテーブルとリレーションを組んでいます。 VBAに関してはイベントプロシージャで、コードを入力すると業務名等が自動で入力されるようにしてあります。 その他の事に関しては、理解出来ていないため回答出来ません。 初心者なので、なにとぞよろしくお願いします。

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.1

可能です。 何もしなくても、 Accessが勝手に資源管理をしてくれますので、もし同時に書き込みをしようとすると片方でメッセージが出て怒られます。 具体的には、「どちらの更新内容を採用しますか?」といった感じのメッセージが出ます。 やってみれば一目瞭然ですので、試してみてください。 積極的に資源管理をしたい場合には、排他制御のためのプログラムコマンドがあります。 レコードロック等ですね。

Panotty777
質問者

お礼

回答、ありがとうございます。 もっと具体的に説明いたしますと、会社で利用するための勤怠管理のツールを作成したいと思い、ACCESSを利用して行っています。 社員番号・写真名や業務名等の不変テーブルを用意しており、社員全員の日報内容を保存するテーブルに対して、単票形式と表形式から入力を行いたいのですが、クエリをかまして作成した表形式からは入力が可能で、後から作成した単票形式からは「フィールド'***'とキーが一致しているレコードを'***'から探すことができません」とのエラーが出てしまいます。 どのようにすれば良いのでしょうか?

関連するQ&A

  • ACCESSのフォームで入力したデータをテーブルに追加したい

    初歩的な質問だとは思いますが、自分の思うようにならず困っています。 テーブルのデータを元に日付のみメインフォームで単票形式で表示し、日付以外の項目はサブフォームで表形式で入力するフォームを作成したのですが、サブフォームの表形式の最後の行がいつも空白になり、そのデータが日付のみ入力され、テーブルのフィールドに追加されています。 説明がうまくできずわかりにくいとは思いますが、分かる方よろしくおねがいします。

  • Accessのフォームについて

    Access2002のフォームについて質問します。単票形式、表形式、データシート形式、帳票形式とありますが、単票形式、表形式は、だいたいどんなものかイメージができるのですが、データシート形式、帳票形式とはどんなものですか?またどんな時にこの形式にするのでしょうか?単票形式、表形式との違いはなんでしょうか? 教えてください。お願いします。

  • ACCESS2003フォーム入力

    ACCESS32003のフォームウィザードで作成した単票形式フォームで、データを表示することはできるのですが、データを変更(入力)することができません。 XP(SP3)でSqlserver2005のテーブルをODBC接続している環境です。 テーブルリンクは問題ありません。 フォームプロパティのデータ入力用を『はい』にしましたができませんでした。 入力可能にする方法を教えてください。宜しくお願いします。

  • Access:フォームのデータの並び順

    Access2000を使用しています。 あるテーブルから表示用のフォーム(単票形式)を作成しました。 そのフォームを開いた時に、常に日付の新しい順(降順)に表示するようにしたいのですが、設定の仕方がわかりません。出来るのかどうかもわかりません。 ご存知の方がいらしたら教えてくださいm(_ _)m

  • ACCESS32003フォーム入力

    OFFICE系はこちらから質問するのでしょうか。先ほど技術者向けのほうに同じ質問をしてしまったのですが、、、、 ACCESS32003のフォームウィザードで作成した単票形式フォームで、データを表示することはできるのですが、データを変更(入力)することができません。 XP(SP3)でSqlserver2005のテーブルをODBC接続している環境です。 テーブルリンクは問題ありません。 フォームプロパティのデータ入力用を『はい』にしましたができませんでした。 入力可能にする方法を教えてください。 宜しくお願いします。

  • Accessのフォームとテーブルについて教えてください。

    Access2003を使用しています。 既存のフォームAにフィールド3個を増やしました。 フォームAはテーブル(1)と連動していました。 追加したフィールドはテーブル(6)のものです。 ところがフォーム上で追加フィールドに入力が出来なくなりました。3フィールドのうち、ひとつはコンボボックスです。表示はされますが確定ができません。 フォームAのSQLステートメントではテーブル(1)・(6)以外にテーブル(2)・(3)・(4)・(5)が結合されています。 フォームAからするとテーブル(2)・(3)・(4)・(5)のデータはIDの名称を見るための参照用です。 テーブル(6)は、追加フィールドのコンボボックスが参照用で、他の2追加フィールドは、フォームから入力してテーブル(6)に反映させたいものです。 テーブル(6)の画面では入力できます。 フォーム上からは入力できません。 設定が何か欠けているからでしょうか? 他の質問では2つのテーブルをひとつのフォームにする場合は、クエリを別に設けた方がいいとなっています。フォームが出来上がっているので、できればクエリを設けずに行いたいのですが、よくない方法でしょうか? 手順なども踏まえて教えていただけると助かります。 よろしくお願いいたします。

  • アクセス検索フォームからの検索方法と結果の一覧表示

    アクセスで単票形式のフォームにて条件を入力し検索を実行し、対象一覧を表形式のフォームで表示したいです。 「対象者データ」というテーブルに対し複数条件を入力 ■テーブル構成 (名前)(年齢)  山田  20  佐藤  25  鈴木  35  田中  35    小川  40 --------------------例その1 ■検索※単票形式 (名前)(年齢) 「田 」「  」 ■結果※表形式 (名前)(年齢)  山田  20  田中  35 --------------------例その2 ■検索※単票形式 (名前)(年齢) 「田 」「35 」 ■結果※表形式 (名前)(年齢)  田中  35 上記の様な結果を表示するにはどのように行えばよいのでしょうか。 アクセス初心者で、現在VBAを駆使し登録画面が完成した状態です。 よろしくお願い致します。

  • Accessのフォームのデータシート形式について

    Accessのフォームには、単票形式や表形式などがありますが、 そのうちの一つの「データシート形式」とはテーブルと何が 違うのでしょうか。 データが保存されないことはわかるのですが、見た目は全く一緒だし レイアウトをコントロールで変えるわけでもないし。 また、各形式には「データシートビュー」で一応データシート形式で フォームを見ることができるのになぜわざわざ「データシート形式」で作成する 必要があるのでしょうか ご存知の方教えて頂けますか。

  • アクセスのサブフォームが編集可能な状態で表示されない

    ■バージョン:Access2003 ■使用経験:Accessはつい最近使い始めたばかりで、初心者レベルです。    (ヘルプ及びいくつかのサイトを参考にしながら使っています) ■質問内容:   データをテーブルに登録するためのフォームを作ろうとしています。   登録するテーブルは、商品テーブルと商品明細テーブル(1対多)のヘッダ明細型です。   まず始めに商品テーブルへデータを登録するフォームを   クエリを使用してウィザードで単票形式で作成しました。   次に、商品明細テーブルへデータを登録するフォームを   クエリを使用してウィザードでデータシート形式で作成しました。   次に、始めに作った単票形式のフォームに、2番目に作ったデータシート形式のフォームをサブフォームとして組み込みました。        その後、デザインビューからフォームビューに切り替えたところ、   単票形式にした1つめのフォームは入力できる状態になっているのですが、   サブフォームとして組み込んだデータシートビューのほうが   列のヘッダ(「商品名」等の列タイトル)しか表示されておらず、   入力できるような白いセルが表示されません。   (列タイトルの下は一面グレーとなっています。    デザインビュー上では登録したい項目が全て表示されています。)   関係あるのか不確かですが、サブフォームのプロパティで   「フォームビューの許可、更新の許可、追加の許可、データ入力用」などは「はい」にしてあります。   サブフォームのデータシートにデータを入力できるようにするには   どうしたらよいのでしょうか。   入力できなくなってしまう原因がテーブル構造等にあるのでしたら、   テーブルの構造をもう少し詳しく書かせて頂こうと思います。   何卒よろしくお願い申し上げます。

  • Access:テーブルの情報を参照して、フォームに反映させる方法

    Access : テーブルの情報を参照して、フォームに反映させる方法 はじめまして。Access初心者です。 データベースの参照の仕方について質問いたします。 現在、商品情報のデータベーステーブルがあり その中には「商品ID」「メーカー名」「商品名」、3つのフィールドがあります。 ここから、入庫テーブルを作るために 入庫フォームに「商品ID」を入力すると 自動で「メーカー名」「商品名」が表示され 最後に「入庫数」を入力すれば、入庫テーブルが完成するようにしたいです。 例) データベーステーブル 商品ID  メーカー名  商品名 1      A社      AAA 2      B社      BBB 3      C社      CCC 4      D社      DDD 上記のデータベースがあり 商品名「CCC」が100個入庫した際 入庫フォームに「3」を入力すると 「3」   「C社」   「CCC」が表示され 最後に、入庫数「100」を入力して、入庫テーブルの完了としたいです。 そこで、入庫フォームにデータベースの内容を反映させる仕方が分かりません。 どなたかご教授願えないでしょうか?

専門家に質問してみよう