いつもお世話になっております。
レコードの保存と同時に他テーブルへも反映させる方法について教えてください。
具体的には下記のとおりです。
テーブル① テーブル名: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.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
ご教示のほどよろしくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
コードを確認しましたがエラーの原因はコードではないです。
調べてみましたら別のヴァージョンのAccessがインストールされていると発生するようなのでエラー内容で対処方法を検索してください。最適化を行ったら治ったというのもあるので試してみてもいいかもしれません。
>フォームの更新後処理に下記のようにしたところ、
フォームの更新後処理で追加を行ったとしても更新するたびにレコードが追加されますので
どのような条件で追加、更新、削除を行うのか再度検討されてはと思います。
y504さん、ありがとうございます。
Accessは2016以外インストールしていないので、なぜ干渉が起きたのか分かりませんが、
新規作成→外部データからインポートで解決ができました。
助かりました。
「納品完了」ボタンを配置しポチッとしたら入庫データに反映の方法でスタートしてみようと思います。
(納品完了したらその後に追加・削除などはたぶんないと考えています。今のところは…)
今後ともよろしくお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Access(アクセス) テキストボックスの値をテーブルに入力したい 2 2022/06/28 12:08
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのFindコマンドが遅い
-
ADOでループすると1レコードず...
-
Access2003でのテーブルの有無確認
-
アクセスクエリの計算
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Oracle 2つのDate型の値の差を...
-
Accessでテーブルの値をテキス...
-
FROM の中で CASE を使えるでし...
-
Access テキスト型に対する指定...
-
作番ってどういう意味でしょうか?
-
IT用語について質問です。 以前...
-
accessでの請求管理について
-
Accessでテーブル名やクエリ名...
-
Accessのクエリでデータの入力...
-
BLOB型のPDF出力の方法
-
APN設定について教えていただけ...
-
データベースの1要素に複数デー...
-
BIOSでAHCIに設定したいが、項...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
access count数を変数に格納
-
「更新に必要なキー列の情報が...
-
access2000でつまづいてます
-
Accessの更新前処理について。D...
-
AceessVBA 非同期処理について
-
半角スペースの置換でエラーを...
-
ACCESSのFindコマンドが遅い
-
Access VBAで自動連番を振るには
-
[Access]削除時のエラーメッセ...
-
ACCESS、EXCELの限界?
-
VBScript+SQLServerでcountがう...
-
AccessVBAについて
-
Set rst = db.OpenRecordset("S...
-
VisualBasic6.0 SP3 (←注) Acc...
-
Access VBA
-
cobolのカーソルについて
-
VB2010のSQLを使ったレコードカ...
-
ADOでループすると1レコードず...
-
VB2005でAddNew()
-
access vbaでクエリデータの中...
おすすめ情報