• 締切済み

VBA内でSQL(UPDATEをループ処理)したいのですが

アクセスを使って UPDATE 在庫計画 SET 在庫計画.2 =[1]-[2]; 在庫計画・・・テーブル名 1・・・フィールド名  ・・・1の在庫数 2・・・フィールド名  ・・・2の払出し数 上記のSQLで 2の払出し数を在庫数に更新して 在庫予測をします。 テーブルには、3,4,5・・・30,31のフィールド(払出し数)があります。 UPDATE 在庫計画 SET 在庫計画.3 =[2]-[3]; のように更新クエリを次々作って3,4,5・・・の在庫予測数に 更新して行くのは大変なので VBA内でSQLを実行する方法を教えてください。 FOR NEXT を用いてループを組んでいけば良いのでしょうが VBAの知識が無く困っています。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

#1です >ADOではなくVBAで作りたいと思います。 う~ん。よく分かりません。 「ADOでなくDAOで作りたいと思います。」 なら分かります。 DAOは当方覚える気はないので、お役には立てませんが。 http://www.accessclub.jp/dao/08.html

sasakaiyo
質問者

お礼

とりあえずできました。 Private Sub 在庫計画_Click() Dim i As Integer Dim a As Integer i = 1 a = 1 For i = 1 To 15 a = a + 1 DoCmd.RunSQL "UPDATE 在庫計画 SET 在庫計画." & a & "=nz([" & i & "],0)-nz([" & a & "],0);" Next i End Sub

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

>VBA内でSQLを実行する方法 http://www.accessclub.jp/ado/09.html のページの下の方にありますが、こちらはADO関係の情報が非常に豊富ですので、ADO入門講座に目を通される事をお勧めします。

sasakaiyo
質問者

お礼

ご回答ありがとうございます。 ADOではなくVBAで作りたいと思います。 アクセスのSQLはDOループが使えないので 不便です。VBAまたはADOで書かないと いけないのですから。 VBAの変数の記述を調べます。

関連するQ&A