質問: access vba 抽出したレコードをフィールドを増やして別テーブルに追加する方法 2つのクエリーで抽出したレコードを結合し、そのレコードにid番号をつけて別のテーブルに追加することはできないでしょうか? 1枚のガラスの値段表を作りたいと考えています。 使用するテーブルは、1つ目がサイズ表でサイズ番号と2つの辺の長さの3つのフィールドからできています。2つ目はガラスの種類表で種類番号と種類名の2つのフィールドでできています。3つ目は値段表で上の2つの表の5つのフィールドにid番号と値段の2つのフィールドがあり全部で7つのフィールドです。 いま、フォームにサイズ表と種類表のサブフォームをつくり、それぞれ結合したいレコードを表示させています。そこからフォームに値段を入力し登録ボタンをクリックすると値段表に新しいレコードを追加するような登録ボタンを作りたいです。 簡単な例でも構いません。 vbaがわかる方、教えてください。
回答: ウーン!チクッと無駄で複雑な仕組みを作り上げようとしています。 例えば、 id data1 1 a 2 b id table1_id table3_id data1 1 1 1 xx 2 1 1 yy id price 1 \1,000 2 \2,000 という設計であれば、ノープログラミングで目的を達成できます。 <クエリ1> id table1.data1 table2.data1 price 1 a xx \1,000 2 a yy \1,000 select table2.id, table1.data1, table2.data1, table3.price from table1 right join (table2 left join table3 on table2.table3_id = table3.id) on table1.id = table2.table1_id; 正に、この<クエリ1>が「1枚のガラスの値段表」です。 **************************************************************** なお、質問に即答すれば、 private sub コマンド0_click() dim strinsertsql as string strinsertsql = "insert into table3 (id,price) values (3,3000)" cnnexecute(strinsertsql) end sub と、sqlのinsert文を作成し実行すれば可能です。 cnnexecute()については、要求があれば示します。