• ベストアンサー

accessの自動更新処理をできないようにするにはどうすれば良いですか?

Niiの回答

  • ベストアンサー
  • Nii
  • ベストアンサー率48% (79/162)
回答No.2

Access2000迄しかさわってないので、ヴァージョンによっては違ってくるかもしれませんが・・・ フォームでレコードソース・コントロールソースを指定している場合は、テーブルが直接編集可能です。なので、リンクしなければいいだけなのですが、その場合は、レコードの移動時に自力でフォームへ値を設定する必要があったり、テーブルとフォームに設定されている入力規則が同期が取れていない場合は、テーブルへ追加時にエラーが出たり(逆に2重にチェックが掛かったり)します。 また、非リンク時は入力途中でフォームやアクセス事態を閉じてしまった場合に、履歴が残っておらず、再度入力しなければならない状態になったりしますので、ダミーテーブルに入力し、コマンドボタンクリックで入力内容を反映さすような作りが無難かと思います。 この場合ですと、入力済みのデータ編集は、別フォームが必要になりますが^^; 1.「顧客リスト」テーブルを「顧客入力」テーブルという名前でコピーする。 2.「顧客入力」テーブルへ追加済みというフィールドを作成 3.「顧客リスト」フォームのレコードソースを「顧客リスト」テーブルから「顧客入力」テーブルへ変更 4.「顧客入力」テーブルから「顧客リスト」テーブルへデータを反映させる為のコマンドボタンを作成し、追加クエリ(入力からリストへ)・更新クエリ(追加済みフィールドを更新)を実行するように記述。入力履歴が必要ない場合は、削除クエリでも可(この場合は2.は必要なし) 他には、フォーム上で編集しても他のレコードに移動したり、閉じたりしない間はテーブルに移動されていませんので、レコード移動時や閉じる時のイベントで、編集をキャンセルする処理を書いてもいいかも・・・

370739
質問者

お礼

どうもありがとうございます! 教えてくださったとおりに「顧客入力」テーブルを作成し、「顧客入力」テーブルから「顧客リスト」テーブルへデータを追加する追加クエリを作成しました。そして、「顧客入力」テーブルから「顧客リスト」テーブルへデータを反映させる為のコマンドボタンを作成しました。新規の顧客を登録する際には、これで大丈夫なのですが、既存のデータに修正をかける時にはどうしたら良いのでしょうか?既存データ修正用のフォームを別に作成したのですが、「顧客リスト」テーブルと非連結のフォームにすると既存のデータを抽出することができませんし、「顧客リスト」テーブルと非連結にしないと、閉じた時に自動的にデータが保存されてしまいます。VBAの知識がないのですが、VBAを使わない方法はありますか?また、もしVBAでなければできないのなら、どのようなコードをどこに書けば良いのでしょう?

関連するQ&A

  • フォームで 保存ボタンを押して保存する方法【MS Access2000】

    初めて質問させて頂きます。宜しくお願いいたします。 MS Access2000を使用して会社の顧客管理をしていおり、 現在フォームに表示されたデータを更新・修正等をした場合 修正をした時点で、元のテーブルの情報も変更されてしまいます。 これを、修正等が終了して、例えば【保存】というボタンを作成し、 それを押して始めてテーブルに反映させるという仕様にしたいと 思っています。 ご回答・助言をなにとぞ宜しくお願いいたします。

  • Accessについて教えて下さい。

    Access初心者です。 フォームのクリック時のイベントで開いた別のフォームを、サブフォームのリンクフィールドように、リレーションの項目を入力しなくてもテーブルに反映させるにはどうしたらいいのでしょうか? 今現在の状況は テーブルは顧客リスト、送付物、問合せがあり顧客IDでリレーションになっています。フォームはそれぞれ作りました。 メインフォームは顧客フォームで問合せのサブフォームが組み込まれています。送付物フォームはボタンでクリック時開くようマクロで作成しました。where条件は[顧客ID]=[Forms]![顧客リスト]![顧客ID]となっています。 例えば手紙を送ることになり、顧客フォームで該当者を選択→ボタンをクリックし送付物フォームを開く →顧客IDを入力→その他必要事項を入力というかんじです。 顧客IDを入力しないと『フィールド顧客IDとキーが一致しているレコードをテーブル顧客リストで探すことはできません』とエラーになります。 問合せのサブフォームは顧客IDでリンクフィールドとなっています。 ID表示が必要ないので顧客IDは消してあります。 こちらは顧客フォームで該当者を選択し、顧客IDを選択しなくても入力すると問合せテーブルに顧客IDも反映されています。 問合せのように送付物にも顧客IDを選択しなくても反映させるようにするにはどうしたらよいでしょうか? 説明がわかりづらいとは思いますが、お分かりになる方よろしくお願い致します。

  • Access、選択して印刷したい場合

     こんにちは、長い質問ですみません。どなたかご教授お願いします。  今、作成したいのはテーブルAに1000件以上の顧客データ(重複ないです)があり、その中から1件だけ選択し、フォームB上に作成したコマンドボタンのクリックで、その顧客データの情報だけをA4サイズ全てを使用して印刷出力したいのです。  レポートの詳細にテーブルAのフィールド項目を反映させると、1件だけではなく、A4サイズに許す限り次のデータが反映されてしまいます。  作業の順番を下記のように私なりに考えて進めていますが、どこがおかしいでしょうか? (1)テーブルAと連結する検索クエリCを作成し、抽出条件にLike[顧客コード]&"*" (2)フォームBのコントロールソースをクエリCに設定 →初期画面をフォームBにし、フォームBを立ち上げると同時にパラメータの入力画面が出て、そこに顧客コードを入力すると顧客情報がフォームB上に表示されます。 (3)テーブルAをコントロールソースにしたレポートを作成する。詳細にテーブルAのフィールド項目を入力。 (4)印刷マクロを作成し、マクロのアクションを「レポートを開く」にし、ビューを印刷にする。 (5)フォームBに印刷コマンドを作成し、イベントを印刷マクロにする。 (6)フォームBより印刷コマンドをクリックして、印刷開始する。

  • アクセスコマンドボタンで登録。

    アクセスのフォームで、コマンドボタンをクリックして、初めて登録ができるというのはどのようにすればいいのでしょうか?普通、登録画面といったら、テーブルを基にしてフォームを作成していいのでしょうか?それとも非連結にしてフォームからフォームへ登録という風にするものなのでしょうか?フォーム上のテキストボックスに一つでも文字を入力すると、×ボタンで消しても、データがテーブルに入っていってしまいます。これを防ぐことはできるのでしょうか?保存でもいいですし登録でもいいのですが、コマンドボタンを作成して、それをクリックして初めてテーブルにデータが入っていくという風にしたいのですが。どなたか分かる方居ましたらご教示ください。宜しくお願いします。

  • アクセスでテーブルの変更内容をフォームに反映させるには?

    アクセス超初心者です。 テーブルを作って、その後フォームを作りました。 フォームの内容が足らなかった為、テーブルに戻って編集しました。 しかし、テーブルの変更内容がフォームに反映されません。 顧客管理のデータベースを作りたかったのですが。。 例えば、テーブルで「氏名」という項目が足らなかったとして、追加したとします。それを保存します。その後、フォームの顧客管理を開けても、反映されません。編集後、どうすればフォームに反映されるのでしょうか。。(T_T) 宜しくお願いします。

  • アクセスでのデータ保存について。

    アクセスの登録画面で、ボタンをクリックしたときのみ保存したいのですが、×印を押して閉じても1つでもデータが入力されていたら、保存されてしまいます。保存というボタンをクリックして初めて、テーブルにデータが入っていくという風にはできないのでしょうか? tbl_商品・・・商品番号,商品名,更新日とあります。frm_商品・・・登録,修正,削除,参照,クリア,閉じるというコマンドボタンと商品番号,商品名,更新日のテキストボックスがあります。仕様としては、一画面で新規商品名入力やデータの修正、削除、商品一覧等が見れるようにしたいのです。frm_商品を開くときは、新規フォームだけが開けばいいのですが、入ってしまっているデータはやはり見れてしまうのでしょうか?参照をクリックすることでクエリを開かせて詳細情報が参照できるように作成したいのですが・・。

  • Accessのフォームによる、データ登録についての質問です。

    Accessのフォームによる、データ登録についての質問です。 フォームを作成して、データを入力して、フォームの画面を消すボタン(右上にある×)を押すと、テーブルに入力したデータが反映されるようですが、自分で作成したボタンを押すと反映するようにするには、どうしたらよいでしょうか? また、フォームの画面を消すボタンを押しても、反映されないようにするにはどうしたらよいでしょうか?

  • Excelを使ってフォームを自動保存したいのです!

    顧客からの売上内容(日付・顧客名・注文内容・数量・単位・価格・小計・消費税・合計)と業者からの仕入内容(業者名・仕入内容・数量・価格・小計・消費税・合計)と粗利益(金額・利益率)をA4サイズのシート1枚フォーム?で作成してます。 これに入力規則でリストをつけてます(売上内容の注文内容・数量・単位)リストは印刷されない列にOffset関数で設定済。 このフォームをマスターとして、入力し、保存の際に各顧客別に(ボタン操作等の)「自動」シート保存する事は可能でしょうか? 入力規則のリストをどの顧客に対しても同一に反映させたいのですが、マスター入力→シートコピー→名前を付けるという作業をどうも利用者がやっていないようでして・・・。人によっては「顧客ごと=1ブック」という結構危険な事をやっている人もいるようです。 ちなみにユーザーはExcel2000以上のバージョンです。マクロツールが(ボタン作成など)インストールされてないPCもあります。 この辺まで来るとデータベースのフォームの領域ではなかろうかと私は思ってしまうのですが(そのほうが作るの楽なんです、私は)ユーザーでその辺が分からない人が多い為、Excelで、かつなるべく壊されないようなフォームで作成したいという要望が出ています。 ご指導の程よろしく御願い致します。

  • Accessについて

    Access初心者です。 Accessで顧客管理をするものを作成しているのですが 顧客のデータはエクセルよりテーブルへインポートしました。 (顧客名、ふりがな、住所、TEL。FAXなど) その後、個々の顧客のデータを検索して内容を観たい場合は フォームで作成すればよいのでしょうか? テーブルよりウィザードでフォームを作成して 「顧客名」の欄でコンボボックスで顧客名を選択して 個々の顧客の内容を観たいのですが、コンボボックスで選択しても 顧客名が変わるだけで、住所やその他の内容がついてきません。 フォームの画面が見やすくて良いのですが、フォームとは入力画面で 内容を確認する画面ではないのでしょうか? それともプロパティ他で何か設定する所があるのでしょうか? よろしくお願いします。

  • アクセス初心者です。

    成果品管理簿を作成しています。主となるテーブルは基本情報、管理情報、案件情報です。リレーションシップはリスト番号です。表形式フォーム(F_案件情報詳細で、各列に詳細というコマンドボタンをつけて、それをクリックしたら、詳細内容がのっているフォーム(Frm_詳細)にリンクさせたいのですが。そのフォームは3つのテーブル内容を一つの画面で見れるようにクエリで作成したものをです。F_案件情報詳細にはそれぞれリスト番号がついているのですが、そのリスト番号と=の(Frm_詳細)を表示することは可能でしょうか?説明が分からなかったらすみません。その際は補足しますので、よろしくお願い致します。