プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております。
レコードの保存と同時に他テーブルへも反映させる方法について教えてください。
具体的には下記のとおりです。

テーブル①  テーブル名:T発注
      フィールド名:発注ID(オートナンバー型)※主キー
             部品№(数値型)
             数量 (数値型)
             納品日(日付/時刻型)

テーブル②  テーブル名:T入庫
      フィールド名:入庫ID(オートナンバー型)※主キー
             部品№(数値型)
             入庫数(数値型)
             日付 (日付/時刻型)

上記のテーブル①の納品日を更新するのを条件に、テーブル②に入庫データを反映させたいと思っています。そのため、下記のようにしましたがうまくいきません。

Private Sub 納入日_AfterUpdate()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = CurrentProject
Set rs = New ADODB.Recordset

rs.CursorLocation = adUseClient
rs.Open "T入庫", cn, adOpenDynamic, adLockOptimistic
rs.AddNew

rs!日付 = Me.納入日
rs!部品№ = Me.部品№
re!入庫数 = Me.数量

rs.Update
rs.Close
cn.Close

End Sub

間違っている点やそもそも方法が違うなどありましたら、ご教示のほどよろしくお願い申し上げます。また、先々は区分を設け、部品の場合はT入庫に反映、それ以外は何もしないと場合分けをしたいと考えています。併せて、ご教授いただけますと非常に助かります。
いつもいつも聞いてばかりで申し訳ありませんが、よろしくお願い申し上げます。

A 回答 (2件)

直接の回答ではありません。



>レコードの保存と同時に他テーブルへも反映させる方法について教えてください。
 フォームの更新後処理で行ってください。

>下記のようにしましたがうまくいきません。
 どのようにうまくいかないのかを書きましょう。
 エラーが出るならエラーの内容
 レコードの追加がされない
 レコードは追加されるが値が違うなど

>テーブル①の納品日を更新するのを条件に
 納品日の入力を間違えたり、消したりした場合など更新するたびにレコードが追加されますがこの仕様でいいですか?
    • good
    • 0
この回答へのお礼

y504さん、ありがとうございます。

納品日の更新を条件にするとご指摘の通りかぶって入庫してしまうため、この方法はやめます。ありがとうございます。

フォームの更新後処理に下記のようにしたところ、
「イベントプロパティに指定した式 更新後処理 でエラーが発生しました:オブジェクトまたはクラスがこのイベントセットをサポートしていません。」
とエラー表示がされます。

Private Sub Form_AfterUpdate()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset

rs.CursorLocation = adUseClient
rs.Open "T入庫", cn, adOpenDynamic, adLockOptimistic
rs.AddNew
rs!日付 = Me.納入日
rs!部品№ = Me.部品№
rs!入庫数 = Me.数量

rs.Update
rs.Close
cn.Close

End Sub

ご教示のほどよろしくお願い申し上げます。

お礼日時:2018/11/06 12:30

コードを確認しましたがエラーの原因はコードではないです。


調べてみましたら別のヴァージョンのAccessがインストールされていると発生するようなのでエラー内容で対処方法を検索してください。最適化を行ったら治ったというのもあるので試してみてもいいかもしれません。

>フォームの更新後処理に下記のようにしたところ、
フォームの更新後処理で追加を行ったとしても更新するたびにレコードが追加されますので
どのような条件で追加、更新、削除を行うのか再度検討されてはと思います。
    • good
    • 0
この回答へのお礼

y504さん、ありがとうございます。
Accessは2016以外インストールしていないので、なぜ干渉が起きたのか分かりませんが、
新規作成→外部データからインポートで解決ができました。
助かりました。

「納品完了」ボタンを配置しポチッとしたら入庫データに反映の方法でスタートしてみようと思います。
(納品完了したらその後に追加・削除などはたぶんないと考えています。今のところは…)

今後ともよろしくお願い申し上げます。

お礼日時:2018/11/06 17:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!