>エラーが出ているのは中盤の更新ボタンクリックのあたりです。
急いでいるみたいなので、(※急いでいない人はそもそも質問しないかスミマセン)
ざっと見た感じ
勝手にコメント付けてみました。理解の手助け、参考になれば。
Private Sub 更新ボタン_Click() Dim b As Recordset Dim buppincord As String 'ここでレコードセット作成 Set b = CurrentDb.OpnRecordset("select * from 物品机上在庫再") 'まず、検索が無いのでは?※レコードセットを選択しただけで、検索が無い '先輩が作成した動くサンプルだと.FindFirst などで探しているような 'Editとか、更新モードも必要かも '↑レコードが確定していないので、 b("机上在庫数再") = b("机上在庫数再") + Form![出庫数再] '↑で、フィールドにセットしているが、フィールドが無いのでエラーとか? MsgBox (Form![物品コード]) If Nz(b("物品コード")) = "" Then MsgBox "入力がありません" Exit Sub '※ここで、レコードが見つからないかチェックしているが、 'このbはどこで、どんな条件で検索しているのだろうか? If b.NoMatch = True Then MsgBos "見つからん" '見つからない時に更新?※見つからない時は、addnewなど追加新規では? b.Edit Else MsgBox (b("カナ品名")) End If If Nz(b("机上在庫数再")) = "" The b("机上在庫数再") = 0 Else b("机上在庫数再") = b("机上在庫数再") + Form![出庫数再] End If End If b.Edit '←ここで、編集モードにしていますが、頭でやるのでは? b.Update 'レコードを確定、更新する b.Close Set b = Nothing End Sub
先輩の作成した動くサンプルを見ると、ヒントがあるのでは?
buppincord = Form![物品コード]
c.FindFirst "物品コード = '" & buppincord & "'"
↑など、フォームの値で、検索.FindFirst しているみたいですね。
これが無いと、どのレコードを更新するのがわからないのでエラー?
.FindFirstでググったり、※該当コードのレコードを探す?
.AddNew でデータ追加、※新規のデータの時は新しくレコードを作り、
.Edit で編集モード ※見つかった時は、更新する
.Update で更新確定
このあたりをググったりして、探ると、
指導者の先輩が作成したコードを理解しやすいかも?
あとは、応用できれば、、、これがなかなか難しいのですが。
1.レコードオープン b = CurrentDb.OpnRecordset("select * from 物品机上在庫再")
2.探す .FindFirst "物品コード = '" & buppincord & "'"
3.新規 Or 更新判断 .AddNew .Edit
4.データ計算・セット b("机上在庫数再") = b("机上在庫数再") + Form![出庫数再]
5.DB更新、レコード確定 .Update
6.レコードセットを閉じる b.Close
なんて流れを確認したりかなぁ・・
>エラーが出ているのは中盤の更新ボタンクリックのあたりです。
あっ、テーブル名とかフィールド名はあっていますか?
エラーと一言の日本語ですが、
どの場所か、
黄色くなっている部分と
エラーメッセージ・コードなどて、
検索してみるのも一つの手です。
先輩のコードや私のページなどネットに転がっているサンプルを理解するのは大変ですが、
一つ一つ突破していってください。
解決の糸口となれば幸いです。 三流プログラマー Ken3