• ベストアンサー

アクセスのクエリの特定のフィールドをテーブルにコピー

アクセスのクエリの特定のフィールドをテーブルにコピー お世話になります。<(_ _)> 仕入管理入力フォームにて「仕入管理テーブル」へデータを入力して 「仕入管理テーブル」を基にクエリにて「管理番号」を作成しています。 入力終了後に、コマンドボタンを押してそのクエリの「管理番号」フィ ールドだけを別の「商品説明テーブル」の「管理番号」フィールドにコピー したいのですが… 参考サイト・参考書等で調べたのですが、クリック時イベントにどのように コードを書けばいいのか解りません。 宜しくお願い致します。 アクセス 超~初心者の質問ですみません<(_ _)>

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

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

>「Q仕入管理」にて作成した管理番号をまだ「ID・管理番号・商品名・商 >品説明…」等が未入力の「商品説明テーブル」の「管理番号」フィー >ルドにコピーすると云う事です。 >先に「商品説明テーブル」に「管理番号」を登録しておいて後から「商品 >名・商品説明」等を入力します。 ということは、まだ何も入力されていない 「商品説明テーブル」に先に「管理番号」 だけをコピーしておく、ということで いいのでしょうか。それですと、適当な オートナンバーのフィールドを作成 しておいて追加クエリ、 INSERT INTO 商品説明テーブル ( 管理番号 ) SELECT Q仕入管理.管理番号 FROM Q仕入管理; です。オートナンバーは主キーである 必要はありませんが、クエリの実行上 必要になります。特に必要がなければ デザインビューで削除してもかまいません。 何かあれば補足してください。

yu_ji
質問者

お礼

piroin654 様 ありがとうございました。<(_ _)> 説明がうまく伝えられなくお手数をお掛けしましたが、入力フォームにて 入力後「コマンド」クリックで「商品説明テーブル」にコピーが出来る様に なりました。 参考サイト・参考書等を参考にするようにしているのですが、わからない事 だらけです。 またご質問させて戴くと思いますので宜しければまたお願い致します。<(_ _)>

その他の回答 (5)

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

投稿して気づいたのですが、同じ「仕入管理テーブル」 の「仕入管理_ID」をもつ商品が「商品説明テーブル」 に存在するならば、「仕入管理_ID」のフィールドを 主キーとしてではなく設定する必要があります。 たぶん、こういうことだと思います。

yu_ji
質問者

補足

piroin654 様 ご回答頂きありがとうございます。<(_ _)> 説明がうまく伝えられなくてすみません。 >投稿して気づいたのですが、同じ「仕入管理テーブル」 >の「仕入管理_ID」をもつ商品が「商品説明テーブル」 >に存在するならば、「仕入管理_ID」のフィールドを >主キーとしてではなく設定する必要があります。 >たぶん、こういうことだと思います。 「仕入管理テーブル」に仕入の詳細データを「入力フォーム」より 入力して居ります。 (「仕入管理テーブル」には他に「単価・取引価格…」があります) 「Q仕入管理」にて作成した管理番号をまだ「ID・管理番号・商品名・商 品説明…」等が未入力の「商品説明テーブル」の「管理番号」フィー ルドにコピーすると云う事です。 先に「商品説明テーブル」に「管理番号」を登録しておいて後から「商品 名・商品説明」等を入力します。 うまく説明できなくてすみません。<(_ _)>

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

えーっと、あまりあれこれやり過ぎると行き違いが 起こるので、「商品説明テーブル」に「仕入管理_ID」 フィールドを追加してみて、どうなるのか確認してみて ください。 >今現在「商品説明テーブル」にあるデータの件数しか >更新されません。 >どうも「Q仕入管理」のデータは更新されていない様な感じです。 このあたりが、こちらで確認できない状況です。設定した ID(主キー)が「商品説明テーブル」と「仕入管理テーブル」 の各レコードを一意に結びつける「仕入管理_ID」と同等の ものならば、意図したデータがコピーされると思いますが。 一応、「Q仕入管理」のSQL文は以下のようのものとして います。(張り付けたときにSQL文が崩れているかもしれません) SELECT 仕入管理テーブル.仕入管理_ID, 仕入管理テーブル.仕入場所_ID, 仕入管理テーブル.仕入日, 仕入管理テーブル.品名, 仕入管理テーブル.商品数, 仕入管理テーブル.管理番号1, 仕入管理テーブル.管理番号2, 仕入場所テーブル.仕入場所_MAME, 仕入場所テーブル.仕入場所_CD, Format([仕入日],"ddyy") & Chr(Month([仕入日])+64) AS 仕入日_CD, [仕入場所_CD] & [仕入日_CD] & [管理番号1] & "-" & [管理番号2] AS 管理番号 FROM 仕入管理テーブル INNER JOIN 仕入場所テーブル ON 仕入管理テーブル.仕入場所_ID = 仕入場所テーブル.仕入場所_ID;

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

追加ですが、「商品説明テーブル」の管理番号のフィールドの 型はテキスト型にする必要があります。

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

捕捉内容から、 「商品説明テーブル」に少なくとも「仕入管理テーブル」 あるいは「Q仕入管理」とを結びつけるフィールド、この場合は 「仕入管理_ID」があれば「Q仕入管理」の「管理番号」を コピーできます。 その場合は、 UPDATE 商品説明テーブル, Q仕入管理 SET 商品説明テーブル.管理番号 = [Q仕入管理]![管理番号] WHERE (((商品説明テーブル.仕入管理_ID)=[Q仕入管理]![仕入管理_ID])); のようになります。 あとは、作成したクエリをクリックするなり、 ボタンクリックを#1での方法でおこなえば いいのでは、と思います。 なお、商品説明テーブルに「仕入管理_ID」がないとなると 少し考えなければなりませんが。

yu_ji
質問者

お礼

ご回答頂きありがとうございます。<(_ _)> >「商品説明テーブル」に少なくとも「仕入管理テーブル」 >あるいは「Q仕入管理」とを結びつけるフィールド、この場合は >「仕入管理_ID」があれば「Q仕入管理」の「管理番号」を >コピーできます。 「商品説明テーブル」と「仕入管理テーブル」両方の主キーを「ID」に 変更致しました。 >追加ですが、「商品説明テーブル」の管理番号のフィールドの >型はテキスト型にする必要があります。 「管理番号」フィールドはテキスト型になっております。 そのうえでクエリのSQLビューに --------------------------------------------------------------- UPDATE 商品説明テーブル, Q仕入管理 SET 商品説明テーブル.管理番号 = [Q仕入管理]![管理番号] WHERE (((商品説明テーブル.ID)=[Q仕入管理]![ID])); --------------------------------------------------------------- と入力いたしまして実行したところ、今現在「商品説明テーブル」にあるデータの 件数しか更新されません。 どうも「Q仕入管理」のデータは更新されていない様な感じです。 「商品説明テーブル」に「仕入管理_ID」フィールドを追加した方がいいでしょうか? 宜しくお願い致します。<(_ _)>

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

勘違いならごめんなさい、ということで、たとえば、 仕入管理テーブル: 管理番号(主キー) 商品名 価格 商品説明テーブル: ID(主キー) 商品名 管理番号 説明 のようになっているとすると、以下の更新クエリ を作成します。ただし、二つのテーブルの商品名が 正確に記述されているものとします。 UPDATE 商品説明テーブル, 仕入管理テーブル SET 商品説明テーブル.管理番号 = [仕入管理テーブル].[管理番号] WHERE (((商品説明テーブル.商品名)=[仕入管理テーブル].[商品名])); このSQL文を新しいクエリのSQLビューに貼り付け「Q更新」 という名前で保存します。 ボタンクリックイベントで、 Private Sub コマンド0_Click() Docmd.Openquery("Q更新") End Sub とします。あるいは、直接このクエリをクリックしても いいです。

yu_ji
質問者

補足

ご回答頂きありがとうございます。<(_ _)> 説明不足ですみません。 -------------------------------- 仕入管理テーブル: ・仕入管理_ID(主キー) ・仕入日 ・品名 ・商品数 ・管理番号1 ・管理番号2 ・仕入場所_ID 仕入場所テーブル: ・仕入場所_ID(主キー) ・仕入場所_MAME ・仕入場所_CD -------------------------------- 上記の二つのテーブルを関連付けています。 -------------------------------- Q仕入管理: ・仕入管理_ID ・仕入日 ・仕入日_CD: Format([仕入日],"ddyy") & Chr(Month([仕入日])+64) ・品名 ・商品数 ・管理番号1 ・管理番号2 ・管理番号: [仕入場所_CD] & [仕入日_CD] & [管理番号1] & "-" & [管理番号2] ・仕入場所_MAME ・仕入場所_CD -------------------------------- 「Q仕入管理」の「管理番号」フィールドのデータだけを「商品説明テーブル」の「管理番号」 フィールドに追加(?)したいのです。 説明が下手ですみません<(_ _)> 宜しくお願い致します。

関連するQ&A