• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:access 自動反映(?)について)

「access 自動反映(?)について」

piroin654の回答

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

一応、こちらで設定した方法を説明してみます。 (1) 新しいクエリをSQLビューにして以下のSQL文を 貼り付け保存します。 SELECT テーブルB.Bname, テーブルB.Bcode FROM テーブルA RIGHT JOIN テーブルB ON テーブルA.name = テーブルB.Bname WHERE (((テーブルA.name) Is Null)); 名前を Q差分 とします。 (2) 新しいクエリをSQLビューにして以下のSQL文を 貼り付け保存します。 INSERT INTO テーブルA ( name, code ) SELECT テーブルB.Bname, テーブルB.Bcode FROM テーブルA RIGHT JOIN テーブルB ON テーブルA.name = テーブルB.Bname WHERE (((Exists (SELECT * FROM テーブルB WHERE テーブルB.Bname = テーブルA.code)) =False)); 名前を Q追加 とします。 (3) フォームの新規作成から、「基になるテーブルまたはクエリの選択」 でテーブルBを指定します。「オートフォーム 表形式」を選んで 「OK」とします。 (4) 出来たフォームを適当な名前で保存し、フォームをデザインビューで 開きます。マウスを詳細の上部に当て、マウスの矢印が十字になったら、 クリックして2~3cm下に下げます。残りのラベルもすべて選択して 下に下げます。 (5) フォームの空いたスペースにボタンを一つ設定します。 そのボタンのクリック時のイベントに以下を設定 します。 ここでは、DAOを使っているのでコード表の 「ツール」から「参照設定」を選択し、 Mcrosoft DAO xx Object Library にチェックを入れ、「OK」としてください。 xxは3.6のような数字です。 もし、もう一度参照設定を開いて、 Microsoft ActiveX Data Objects xx Library よりも下になっていたらそれよりも上に↑ボタンで 引き上げて、「OK」としてください。 この場合のxxは2.1のような数字です。 Private Sub コマンド0_Click() Dim db As Database Dim rs As Recordset Set db = CurrentDb Set rs = db.OpenRecordset("Q差分") If rs.RecordCount > 0 Then DoCmd.OpenQuery ("Q追加") End If rs.Close: Set rs = Nothing db.Close: Set db = Nothing End Sub コマンド0 はボタンの名前ですが、 実際に設定した場合は違う名前に なっているかもしれません。 以上です。

関連するQ&A

  • Access97で自動入力と反映が違うテーブルの場合

    こんにちは、前の質問などでフォームへの自動入力は何とかできるようになったのですが、今度はその入力したデータを他のテーブルBに反映させたいのですが、どうしたら良いのでしょうか? テーブルA 店舗コード 店舗名 ※テーブルAの管理者は私ではなく、ネットワークで私のPCと「テーブルのリンク」でつながっています。 テーブルB 店舗コード 店舗名 商品番号 他に店の情報フィールドをいくつか作成 フォームC 店舗コード 店舗名 商品番号 他に店の情報テキストボックスをいくつか作成 フォームCで、店舗コードを入力したら店舗名が自動的に入力される方法は、フォームCのレコードソースをテーブルAにして、店舗コードの更新後処理をイベントプロシージャにして、下記イベントコードを設定しました。 Private Sub 店舗コード_AfterUpdate() Me![店舗名]=DLookup("店舗名","テーブルA","店舗コード=" & Me![店舗コード] & " ") End Sub そして、フォームの残りのテキストボックスに、店と商品に関するデータを入力し、入力した全てのデータをテーブルBに反映させたいのですが、どうしたら良いのでしょうか? 自動入力の方法でDLookupを使用したのがいけなかったのでしょうか? また、できればテーブルBは商品番号順に並びかえられているのですが、入力したら商品番号のリストの一番下に挿入されるという形にしたいのです。 どうかよろしくお願いします。

  • アクセスでフォームのデータ(計算結果)がテーブルに反映されない

    アクセス初心者です、教えて下さい。 うまく説明できないのですが、エクセルで作成した売上表をアクセスで作り直そうと試みているのですが…。 簡単に説明すると、フィールドA,B,Cと3つあって、フォーム上でCはAとBの合計(C=[A]+[B])としました。フォーム上ではA,Bに値を入力するだけでCに結果が表示されるのですが、それがテーブルのCに反映されません。テーブルに計算結果を表示させるにはどうしたらいいのでしょうか?

  • Accessで計算式を挿入

    テーブルで、A・B・Cのフィールドがあります。 C=A/(B/100)^2 という式があります。 この場合、更新クエリを使ってCのフィールドに値を入れるしかないのでしょうか。 もともとあるテーブルを元にフォームを作成しました。 このフォームを使って、AとBを入力すれば自動的にCに値が入る、という事をイメージしていたのですが行き詰っています。 式ビルダは使用してみたのですが、データが反映されません。 元のテーブルCフィールドには式はなく、ただ数値があるだけです…。 どんな作業が足りないのでしょうか。 もしくは別な方法がよいのでしょうか。 よろしくお願いします。

  • Accessのふりがな自動入力

    お世話になります。 Accessの振り仮名自動入力機能について質問致します。 ウィザードで振り仮名自動入力を設定したのですが、 テーブルから入力すれば設定が反映されるのに、作成 した入力フォームでは自動入力機能が反映されません。 これは何故なのでしょうか? 以前試したときは、ちゃんと入力フォームでも自動入力されたのですが・・・・。

  • AccessのColumnがうまく出来ずに困っています。

    AccessのColumnがうまく出来ずに困っています。 状況 テーブルA(参照用) テーブルB(データベース) フォーム(データベース入力用) テーブルAにはX,Y,Zの情報が入力されています。 目的 フォームの入力箇所1はXの値をドロップダウンリストから選択するようになっているため、 選択したXの値に対応したY,Zの値を入力箇所2、3に自動入力させる 症状 入力箇所1の値集合ソースはX,Y,Z 入力箇所1の更新後処理に入力箇所2用と、入寮箇所3用の2つのColumn文があります。 Column(0)にするとXと同じ値が反映し、Column(1)にするとYの値が反映する。 これにより入力箇所2,3どちらにもXまたはYの値を自動反映することが出来ています。 このことからColumn自体は正常に機能していると思うのですが・・・ Column(2)にすると何故か何の値も帰らず空白となります。 どこに原因があるのかさっぱりわからないのでどなたか助けて下さい。

  • Access2007 フォームでの計算結果をテーブルに反映させるには?

    ビスタでAccess2007を使っています あるテーブルにA~Dまでのフィールドが設定されています。 フォームでフィールドA.Bは手入力して C.Dには計算式を設定して計算結果を表示させていますがテーブルに反映されません。 (フォームにはきちんど式通りの答えが表示されますがテーブルのフィールドC.Dは空っぽです。) 例 A・・・10,000 B・・・0.1 C・・・1,000(計算式 A*B) D・・・9,000(計算式 A-C) フォーム上で行った計算結果をテーブルに入力反映させるにはどうすればよいでしょうか? テーブルやフォームの作り方が悪いのか? 計算式の設定が悪いのか? なぜテーブルに反映しないのか理由がわかりません。 そもそもフォーム上での計算はテーブルには反映しないのか? だとすれば反映させるにはどうすればよいのでしょうか? テーブルのフィールドに計算式を設定することは出来るのでしょうか? 出来るとすればその方法は? 疑問だらけでどうすれば求める結果が得られるのかさっぱり解りません。 当方Access2007は初心者も同然ですのでわかりやすく解説して戴ければ幸いです。 よろしくご教授ください。

  • Accessのエラー (いくつかあります・・・)

    アクセスでデータを入力したのですが、なぜか下記のエラーがでます… *作成したアクセスデータ* テーブル 項目AのCDと項目A、項目BのCDと項目B、項目CのCDと項目C、項目A~CのCDとその他繰り返し入力しないデータ の合計4つのテーブル それらすべてをリレーションでつないでます クエリ 全項目入りのテーブルを元に作ったもののみ フォーム クエリを元にウィザードを使って作成 *エラー* (1)クエリを作った時に、1つでもCDが入力されてないフィールドがあるとその行全体が表示されなくなる  (CDを入力したら表示されますし、テーブルではCDが入ってなくても全て表示されてます) (2)フォームで新たにデータを入力しようとしても一切入力できないし、変更もできない時がある (使用可能等の項目は一切触っていません) (3)フォームでCDが入ってる箇所を未入力にしたままでは保存できずに、「CDと値が一致しません」?のようなエラーメッセージがでる (すみません、エラーメッセージはうろ覚えです…) (4)なぜか昇順で番号を並べ替えていたのに、フォームでデータを追加したら、昇順が反映されずに「1,11,2…」のようにフォームのみ表示される (テーブル・クエリは反映されています) このエラーの原因がわかる方ぜひ教えてください!! よろしくお願いします。

  • Access ルックアップが反映されない

    超初心者です、よろしくお願いします。 テーブル作成時に、データ型をテキスト型で作成したのですが。 フォームを使って、データを入力した際に気づき。 データ型をルックアップに変更したのですが、反映されないみたいで。 フォームでデータを入力するのですが、コンボボックスが表示されません。 どうすればよろしいのでしょうか? ご教示願います。

  • アクセスVBA テキストボックス入力値からの参照

    マイクロソフトアクセス初心者です。 現在、アクセスでデータベースを作成しています。 2つのフォーム(フォーム(1)、フォーム(2))、2つのテーブル(入力情報、マスタ)、2つのテーブルをもとにした1つのレポートを作成しています。 『フォーム(1)』のテキストボックスAに入力された値を、Dlookup関数で『フォーム(2)』のテキストボックスBに数値を参照しています。 『フォーム(2)』のテキストボックスに表示された値を、『フォーム(2)』に設置されたコマンドボタンをクリックすると、VBAで『テーブル入力情報』のフィールドAに入力されるようにしています。フィールドAについてのマスタとなるテーブルが『テーブルマスタ』です。 リレーションシップを設定せず、ただ単に値を入力することは出来るのですが、レポートを作成するにあたって、『テーブル入力情報』と『テーブルマスタ』のフィールドAに1(テーブルマスタ)対多(テーブル入力情報)のリレーションシップを設定したいと思っています。 リレーションシップを設定し、テキストボックスBに表示された数値を『テーブル入力情報』に入力する際、『テーブルマスタ』から該当するデータを選択して『テーブル入力情報』に入力されるようにしたいと思うのですが、現状では、リレーションシップを設定すると、入力値が真っ白になってしまい、レポートにも入力したデータが反映されません。 ちなみに、入力する際はフィールドA=Me.テキストボックスBのようにしています。 何か良い解決策がありましたら、是非教えていただけませんでしょうか? 分かり難い文章かと思いますが、どうぞ宜しくお願い申し上げます。

  • EXCELのセルや文字色の反映

    例えばA1のセルに入力した値をB1に自動的に反映したい場合はB1に=A1と入力すれば反映されますが、A1のセルの色や文字色を変更したらB1に自動的に反映される方法がありましたら教えてください。