2017-12-15 14 views
1

アクセス可能なテーブルがあり、SSMSのテーブルにすべての行を挿入しようとしています。SSMSに複数の行を挿入するアクセス

これは私がアクセスフォームに持っているデータです。私は最初の行を挿入するAccessで作業しています。

PONumber RollNumber ItemNumber 
123  A20   COFFEESLV.2 
123  A21   COFFEESLV.2 
123  A23   COFFEESLV.2 

のアクセスは、ストアドプロシージャを呼び出し、

INSERT INTO Receipts 
( 
     PONumber 
    , ItemNumber 
    , RollNumber 
) 
Values 
( 
    @PONumber --PONumber (These get passed in from the Access Form.(
    ,@Item  --ItemNumber 
    ,'1'  --RollNumber (I'm using this for testing. It works. But now it 
       needs to insert all of them. There could be up to 100. 
) 

は、どのように私はそれがテーブル内のすべての行を挿入するのですか?テーブル自体もSSMSにあります。それは、コーヒー袖のロールの値を受け取り、値が削除されるまでそれを保持する単なるテーブルです。

ETA - 私の問題は、Tempテーブルにはロール番号のみが含まれていると思います。フォームには、残りの情報のフィールドが含まれています。だから、私はSSMSの2つのテーブルからselectに簡単な挿入を行うことはできません。私はサブフォームからフィールドをつかむためにTempテーブルを取得する方法を知らない(サブフォームだと思うが、何にも接続されていないと思う。 。

+0

なぜバインドフォームを使用しませんか?すべての日付はテーブルに保存され、SSMSにデータを転送することができます。 – Rene

+1

@ Ren Suggetsとして、テーブルにデータを入力し、おそらくINSERT SELECTが要件を満たします:https://www.w3schools.com/SQL/sql_insert_into_select.asp。ただし、クエリオブジェクトの代わりに、VBAを使用してINSERT SELECTを作成し、フォームコントロールへの参照を連結します。その後、CurrentDb.ExecuteでSQLを実行します。 – June7

+0

あなたのクエリがストアドプロシージャであることに気がつきました。私は一度も使ったことがないので、INSERT SELECTをプロシージャ内で構成できると推測できるだけです。 – June7

答えて

0

ありがとうございます。

手順でselectに挿入しました。私はフォームから必要な値を渡しました。フォームには、SSMSテーブルにサブフォームが添付されていました。

だから私の挿入が

Insert Into MyTable (Number, Color, Size, Price) 
Select Number, Color, Size, @Price 
From SubfrmTable 

あなただけの選択(@price)への挿入中に受け継が変数右に投げることができるように見えました。私はそれを知らなかった。うまくいけば、これは他人を助けるでしょう。

関連する問題