• 締切済み

Microsoft Access 2000

2つのフォームで一方の値をもう一方のフォームに代入したいのです。 方法はコマンドボタンを押すことによって、AフォームからBフォームに2項目同時に同じレコードに代入したい。コマンドボタンに“値の代入マクロ”を設定します。 Aフォーム 代入したい項目のデータ型=2つともオートナンバー型(AN項目,AG項目)   レイアウト=2つともリストBOX(1列目がAN項目,AG項目) Bフォーム 代入されたい項目のデータ型=2つとも長整数型(BN項目,BG項目)   レイアウト=2つともテキストBOX 現状はAフォームの2つの項目のどちらか1つしか代入できません。 Aフォームの代入したい項目は新レコードではなく、既にデータが入力されているレコードのIDをBフォームの新レコードに代入したいのです。 コマンドボタンを押すとエラーは表示されず、フォームは正常に閉じます。しかし、テーブルを見るとどちらか一方のレコードにはデータが入力されていないのです。 代入されたいBフォームは、常に新レコードで主キーは設定していません。Bフォームに代入されるAN項目・AG項目の値は、その他のレコードの値と重複しています。 いきずまって困っているので、みなさんの力をお借りできたらと思って書き込みました。イメージが湧きにくいとは思いますが、よろしくお願いします。

みんなの回答

  • hamha
  • ベストアンサー率61% (83/135)
回答No.1

Aフォーム、Bフォーム共開いた状態で Aフォームのリストボックスの名前が「リスト0」とした場合 “値の代入マクロ” ------------------------------------------------- アクション 値の代入 アクションの引数 アイテム:[Forms]![Bフォーム]![BN] 式   :[Forms]![Aフォーム]![リスト0].[Column](0) ------------------------------------------------- アクション 値の代入 アクションの引数 アイテム:[Forms]![Bフォーム]![BG] 式   :[Forms]![Aフォーム]![リスト0].[Column](1) ------------------------------------------------- これでOKです。

atsusi
質問者

お礼

お答え頂いてありがとうございます。試してみましたが駄目でした。 原因が何なのか不明です。解決できなかったので点数は付けませんでした。 ご了承願います。また機会がありましたら回答の方、よろしくお願いします

関連するQ&A

  • access追加クエリーでform入力項目値をセットする方法

    Access2002で、システムを構築中です。 いろいろ調べたのですが、初歩的過ぎるのは、意味が理解できてないのか、まったく判らなかったので、教えてください。 FORMから、年4桁をコンボボックスで選択させ、 Aテーブルの項目に、この年項目を追加したレイアウトで、 Bテーブルにデータを追加しようとしています。 Aよりレコードを読み込み、新しい項目にこの画面入力値をセットして全レコード同じ値として追加し、Bテーブルに書き込む処理を、ACCESSのクエリーでやりたいと考えています。 この画面の値のセットの仕方がわからず苦労しています。 動作イメージは、 フォームAのコンボボックスで値1を選択 コマンドボタンを押すと、クリックイベントでVBAへ。 VBA内では、 1 テーブルAから、テーブルBのデータを上記のように編集し、   追加する追加クエリを起動。 2 テーブルAのデータをクリア 以上です。 よろしくお願いします。

  • Access フォームの入力について

    アクセス初心者です。 フォームA(メインとなる画面)でコマンドボタンをクリックすると フォームBが開くように設定しました。 フォームAでレコード1を入力時にコマンドボタンをクリックすると フォームBのレコード1に フォームAのレコード5を入力時にコマンドボタンをクリックすると フォームBのレコード5に移動してデータを入力できるようにすることは可能でしょうか?可能であればどのようにしたらよいでしょうか? 具体的には テーブル 社員NO、氏名・・・、希望地域(yes/no型)があります。 フォームA ・社員NO ・氏名など フォームB ・希望地域(チェックボックスでチェックする。複数選択可) フォームAを入力時にフォームBを開いて希望地域にチェックできる というようにしたいのですが、 フォームAからフォームBに移動するといつもレコード1が表示されてしまいます。 自分なりに試行錯誤しているのですがどうしてもできません。 よろしくお願いします。

  • (アクセス)全てのイベントプロシージャが無反応に

    何らかの原因でプロシージャやコマンドボタンに設定したマクロ等が無反応になる現象に苦慮しています。 多くのフォームの中で、この現象に関連するフォームは2画面あり、それぞれをフォームA、フォームBということで説明いたします。((1)~(4)) (1)フォームAのコマンドボタン押下でフォームBを開きクエリーのデータ(フォームAで指定した条件)  を表示しています。  フォームBで他のフォームと異なっているプロパティは次の通りです。  ・ポップアップ ----はい  ・作業ウィンド固定 --はい (2)フォームBにはレコードソース(クエリ)の値を表示する幾つかのテキストボックスとコンボボックス  が2つあり、それぞれをコンボA、コンボBとするとフォームBを開いた時はそれぞれにクエリーの   データを表示し、変更する場合はコンボAで選定した条件でクエリによりコンボBにデータを表示す  るようにしています。 (3)なお、コンボAの列数は2で、コンボボックスには列1のデータ(商品名)を表示するようしていて列 2の値(商品コード)を一旦テキストボックスに取り出し、そのコードでクエリによりコンボBのデータ  を表示しています。テキストボックスのプロパティのコントロールソースには次のように記述していま す。   =コンボ186.column(1)   ※=コンボ186がコンボAのことです (4)あと、フォームBにはデータをチェックするためのイベントプロシージャが幾つかとフォームAへ戻る ためのコマンドボタンがありますが他のフォームと比べても特に問題は無いように思えます。 以上のような環境でフォームAからフォームBを開いた時に、フォームBにはレコードソースであるクエリの値は全て表示するものの全てのイベントプロシージャ及び(3)で説明しました  =コンボ186.column(1) の処理が一切動作しなくなります。 しかし、次の操作により回復し、その後はACCESSを終了し再起動しても正常に動作します。  ・フォームBをデザインビューで開く  ・フォームBを開く時に設定しているイベントプロシージャを表示  ・イベントプロシージャをいじって閉じる。(内容は変更しない)  ・フォームBをホームビューで開く   だらだらと長くなり説明も不十分かと思いますが、原因がどうしてもわからなく困っております。 何か手がかりを教えて頂けたらと思い投稿しました。 よろしくお願いいたします。

  • Access2013 vbaサブフォームのレコード

    [Access2013 vba] ■したいこと サブフォームのレコードの中から、一レコードだけをチェックボックスなどで選択したいのですが、どのようにしたら出来ますでしょうか。 複数行選択は出来ないようにしたいです。 選択したのち、メインフォームの選択ボタンを押すと、そのレコードのID番号を取得して、呼出元のフォームのIDフィールドに代入したいです。 ■画面の流れ・・・ Aフォーム → 帳票型Bフォームで、レコードを選び「開く」ボタンを押す→ B 'メインフォームとCサブフォーム)が開く Cサブフォームのレコードをチェックボックスにチェックを入れて選択する B ' メインフォームの「選択」ボタンを押すと B ' メインフォームと、その前のBフォームが閉じて Aフォームに戻り、AフォームのIDフィールドに選択したIDが格納される。 よろしくお願いします。

  • MS Access2000のフォームについて

    たとえば、Aという表形式のフォームがあります。 項目名は、氏名、生年月日、年齢です。 そのフォームのレコードごとの右端にはコマンドボタンがあります。 そのコマンドボタンをクリックすると、Bというフォームが開きAで選択したデータの詳細(氏名、生年月日、年齢、住所、電話番号等々)が表示されるようにしたいのですが、そのやり方をどなたか教えていただけないでしょうか。 VBA初心者ですが、簡単なものならわかるのでVBAを使用したものでもOKです。 どうぞよろしくお願いいたします。

  • access フォーム上で複数行のレコードを追加したい。

    宜しくお願いします。 仕様環境:WinXP access2002 フォーム上にコマンドボタンで空白のレコードを 追加したいのですが、一行だけなら「値の代入」マクロで 追加できるのですが、複数行だとやり方がわかりません。 「追加クエリ」を作ってコマンドボタンにマクロで乗せてみたのですが、 テーブル上では複数の空白レコードが追加されてますが、 フォーム上には反映してくれません。 「値の代入」マクロを使って、複数行のレコードをフォーム上に追加するか、 「追加クエリ」を使って、複数行のレコードをフォーム上に反映させるか したいのですが教えてください。 ※ ちなみにこのフォームはサブフォームです。   また5行追加しようとしています。   この方法では無理でしたらご指導お願いします。 宜しくお願いします。

  • access2000でカレンダーコントロールをいろいろな場面で

    access2000で1つのカレンダーコントロールをいろいろな(複数の)場面で利用したいと思います。 カレンダーコントロールを置いたフォームは作成しました。→「カレンダーフォーム」 カレンダーフォームで取得した値をテキストボックスに戻すプロシージャも作成し、うまくいっています。 しかし、特定のテキストボックスに対してしか機能しません。 1つのカレンダーフォームで、複数のテキストボックスに入力させるプロシージャを教えてください。 カレンダーフォームの起動は、sample1_frm上のコマンドボタン1、コマンドボタン2やsample2_frm上のコマンドボタン1、コマンドボタン2を押すと起動するようにしたいと思います。 sample1_frm上のテキストボックス1(横にコマンドボタン1)やテキストボックス2(横にコマンドボタン2)があるので、それに対応したテキストボックスにカレンダーコントロールで取得した値を代入する方式です。 どのように1つのカレンダーフォームで各フォーム、テキストボックスに対応したコードを書けばよいでしょうか?

  • ACCESS2000 抽出されたレコードのテキストボックスに値を一括で

    ACCESS2000 抽出されたレコードのテキストボックスに値を一括で代入したい 宜しくお願い致します。 テーブルには、商品名、金額、数量、出荷予定日、出荷確認の5つのフィールドが あり、当日に出荷する予定の商品をクエリで抽出し、該当するレコードをフォームに 表形式で表示させています。 出荷後、出荷確認のテキストボックスに”済み”と入れたいので、現在、フォーム の隅に、既定値を”済み”としたテキストボックスを作り、フォーム内のコマンド ボタンを1回押すごとに、マクロ(値の代入)を実行させ、出荷確認に”済み”を代入 させています。 しかし、この方法だと、抽出されたレコードが100件あると、100回押さないといけ ません。一括で代入させる方法を探しているのですが、見つかりません。素人故、 複雑な事は出来ませんので、簡単な方法がありましたら、ご教授ください。 また、一度代入したものを、一括で消す方法も合わせてご教授いただければ幸い です。 宜しくお願い致します。

  • Accessのサブフォーム

    教えてください。 フォームの中にサブフォームを作っているのですが(入力用の)、 サブフォーム内のテキストボックスは、1件目のデータと新規レコード が表示されています。 この新規レコードのテキストボックスを表示しない方法はありますか? 2件目以降のデータ(新規レコード)を入力する際は「追加」の コマンドボタンを使用して、その都度、新規レコードを表示させたい のです。 よろしくお願いします。

  • アクセス2003について質問です。フォーム(1)、(2)、(3)があり

    アクセス2003について質問です。フォーム(1)、(2)、(3)があり、フォーム(3)上にはAボタンとBボタンがあります。フォーム(1)からフォーム(3)を開いた時はAボタンを使用可能(表示)し、Bボタンを使用不可(非表示)にしたいと考えています。反対にフォーム(2)からフォーム(3)を開いた時は、Aボタンを使用不可(非表示)、Bボタンを使用可能(表示)にしたいです。理由はフォーム(1)や(2)の値をフォーム(3)の中に値代入しているのですが、フォーム(3)を共有しているのでマクロで別々のボタンAとBを作っているためす。どなたかよろしくお願いいたします。