Page 598 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼共通処理について 隠れ肥満22 04/4/14(水) 18:56 ┣Re:共通処理について かみちゃん 04/4/14(水) 19:42 ┃ ┗Re:共通処理について 隠れ肥満22 04/4/15(木) 14:20 ┗Re:共通処理について Gin_II 04/4/15(木) 2:27 ┗Re:共通処理について 隠れ肥満22 04/4/15(木) 14:27 ┗Re:共通処理について Gin_II 04/4/16(金) 3:06 ┗Re:共通処理について [名前なし] 04/4/18(日) 13:15 ─────────────────────────────────────── ■題名 : 共通処理について ■名前 : 隠れ肥満22 ■日付 : 04/4/14(水) 18:56 -------------------------------------------------------------------------
売上伝票を追加又は更新するときの 各アイテム編集を共通化出来ないでしょうか? Private Sub cmd更新_AfterInsert() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("売上伝票", dbOpenDynaset) If Me!txtst=Upd Then r1.Edit r1!売上日 r1!売上金額 (そのほかに54項目) r1.Update else r1.addnew r1!売上日 r1!売上金額 (そのほかに54項目) r1.Update end if end sub r1!売上日 r1!売上金額 の編集を共通で記述する方法ないでしょうか? どぉやるんだろう。 |
こんにちは。かみちゃん です。 > r1!売上日 > r1!売上金額 > の編集を共通で記述する方法ないでしょうか? 以下のようなことをしたいのでしょうか? If Me!txtst=Upd Then r1.Edit else r1.addnew end if r1!売上日 r1!売上金額 (そのほかに54項目) r1.Update 違っていたら、すみません。 |
▼かみちゃん さん: >こんにちは。かみちゃん です。 > >> r1!売上日 >> r1!売上金額 >> の編集を共通で記述する方法ないでしょうか? > >以下のようなことをしたいのでしょうか? > >If Me!txtst=Upd Then > r1.Edit >else > r1.addnew >end if >r1!売上日 >r1!売上金額 >(そのほかに54項目) >r1.Update > >違っていたら、すみません。 この手法で出来ました。ありがとうございました。 |
> r1!売上日 > r1!売上金額 > (そのほかに54項目) ここを56行も記述したくないってことかな? 右辺の記述がありませんが、ここはどうなっているのでしょうか? Dim lngIdx As Long r1.Edit For lngIdx = 0 To r1.Fields.Count - 1 r1.Fields(lngIdx) = Me("txt" & r1.Fields(lngIdx).Name).Value Next lngIdx r1.Update とかのようにはできると思いますけど。 |
▼Gin_II さん: >> r1!売上日 >> r1!売上金額 >> (そのほかに54項目) > >ここを56行も記述したくないってことかな? →追加のときと更新のとき56行編集を記述したくなかったのです。 おっしゃるとおり56項目編集したくないのも事実です。 >Dim lngIdx As Long > >r1.Edit > For lngIdx = 0 To r1.Fields.Count - 1 > r1.Fields(lngIdx) = Me("txt" & r1.Fields(lngIdx).Name).Value > Next lngIdx >r1.Update > >とかのようにはできると思いますけど。 →“r1.Fields”(テーブル側)のインデックスはどこで定義するのでしょう? →“"txt"”を指定すれば全てのテキストが拾えるのでしょうか? すいません初心者でして、わからない箇所も有るかと 思いますが、お願いします。 |
> “r1.Fields”(テーブル側)のインデックスはどこで定義するのでしょう? 自動でふられています。 For lngIdx = 0 To r1.Fields.Count - 1 Debug.Print r1.Fields(lngIdx).Name Next lngIdx のようなコードを実行してみてください。 > “"txt"”を指定すれば全てのテキストが拾えるのでしょうか? 前回、回答した > 右辺の記述がありませんが、ここはどうなっているのでしょうか? については? フォームでの実行でテキストボックスの値を、セットするという前提で、 なおかつ、各コントロールの名前が、txt + フィールド名 という条件なら 前回のコードで大丈夫だと思います。 それ以外なら使えないですね。 |
>> 右辺の記述がありませんが、ここはどうなっているのでしょうか? >については? すいません、記述漏れでした。 >フォームでの実行でテキストボックスの値を、セットするという前提で、 >なおかつ、各コントロールの名前が、txt + フィールド名 という条件なら >前回のコードで大丈夫だと思います。 > >それ以外なら使えないですね。 なるほど、ありがとうございました。 |