いつもお世話になっております。
レコードの保存と同時に他テーブルへも反映させる方法について教えてください。
具体的には下記のとおりです。
テーブル① テーブル名: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入庫に反映、それ以外は何もしないと場合分けをしたいと考えています。併せて、ご教授いただけますと非常に助かります。
いつもいつも聞いてばかりで申し訳ありませんが、よろしくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
コードを確認しましたがエラーの原因はコードではないです。
調べてみましたら別のヴァージョンのAccessがインストールされていると発生するようなのでエラー内容で対処方法を検索してください。最適化を行ったら治ったというのもあるので試してみてもいいかもしれません。
>フォームの更新後処理に下記のようにしたところ、
フォームの更新後処理で追加を行ったとしても更新するたびにレコードが追加されますので
どのような条件で追加、更新、削除を行うのか再度検討されてはと思います。
y504さん、ありがとうございます。
Accessは2016以外インストールしていないので、なぜ干渉が起きたのか分かりませんが、
新規作成→外部データからインポートで解決ができました。
助かりました。
「納品完了」ボタンを配置しポチッとしたら入庫データに反映の方法でスタートしてみようと思います。
(納品完了したらその後に追加・削除などはたぶんないと考えています。今のところは…)
今後ともよろしくお願い申し上げます。
No.1
- 回答日時:
直接の回答ではありません。
>レコードの保存と同時に他テーブルへも反映させる方法について教えてください。
フォームの更新後処理で行ってください。
>下記のようにしましたがうまくいきません。
どのようにうまくいかないのかを書きましょう。
エラーが出るならエラーの内容
レコードの追加がされない
レコードは追加されるが値が違うなど
>テーブル①の納品日を更新するのを条件に
納品日の入力を間違えたり、消したりした場合など更新するたびにレコードが追加されますがこの仕様でいいですか?
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
ご教示のほどよろしくお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのFindコマンドが遅い
-
Access VBAで自動連番を振るには
-
半角スペースの置換でエラーを...
-
access count数を変数に格納
-
Accessの更新前処理について。D...
-
access2000でつまづいてます
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
FROM の中で CASE を使えるでし...
-
Accessでテーブルの値をテキス...
-
変数が選択リストにありません
-
accessのレポートで元になるテ...
-
Accessのクエリでデータの入力...
-
Accessで、固定アルファベット+...
-
主キーはオートナンバー型のID...
-
★アクセス2002★クロス集計で ...
-
MS ACCESS 商品価格変更時の該...
-
DB2でREPLACEによる文字列の置換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
access count数を変数に格納
-
access2000でつまづいてます
-
ACCESSのFindコマンドが遅い
-
「更新に必要なキー列の情報が...
-
Accessの更新前処理について。D...
-
Access2003でのテーブルの有無確認
-
ADOでループすると1レコードず...
-
AceessVBA 非同期処理について
-
Access VBAで自動連番を振るには
-
[Access]削除時のエラーメッセ...
-
Access VBA
-
access vbaでクエリデータの中...
-
ACCESS、EXCELの限界?
-
初心者です。Access レポートで...
-
VB2005でAddNew()
-
VBAのデバックをどなたかお手伝...
-
Set rst = db.OpenRecordset("S...
-
cobolのカーソルについて
-
レコードの保存と同時に他テー...
-
VB6とAccess
おすすめ情報