過去ログ

                                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!売上金額
の編集を共通で記述する方法ないでしょうか?
どぉやるんだろう。

 ───────────────────────────────────────  ■題名 : Re:共通処理について  ■名前 : かみちゃん  ■日付 : 04/4/14(水) 19:42  -------------------------------------------------------------------------
   こんにちは。かみちゃん です。

> r1!売上日
> r1!売上金額
> の編集を共通で記述する方法ないでしょうか?

以下のようなことをしたいのでしょうか?

If Me!txtst=Upd Then
  r1.Edit
else
  r1.addnew
end if
r1!売上日
r1!売上金額
(そのほかに54項目)
r1.Update

違っていたら、すみません。

 ───────────────────────────────────────  ■題名 : Re:共通処理について  ■名前 : 隠れ肥満22  ■日付 : 04/4/15(木) 14:20  -------------------------------------------------------------------------
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>> r1!売上日
>> r1!売上金額
>> の編集を共通で記述する方法ないでしょうか?
>
>以下のようなことをしたいのでしょうか?
>
>If Me!txtst=Upd Then
>  r1.Edit
>else
>  r1.addnew
>end if
>r1!売上日
>r1!売上金額
>(そのほかに54項目)
>r1.Update
>
>違っていたら、すみません。

この手法で出来ました。ありがとうございました。

 ───────────────────────────────────────  ■題名 : Re:共通処理について  ■名前 : Gin_II  ■日付 : 04/4/15(木) 2:27  -------------------------------------------------------------------------
   >   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

とかのようにはできると思いますけど。

 ───────────────────────────────────────  ■題名 : Re:共通処理について  ■名前 : 隠れ肥満22  ■日付 : 04/4/15(木) 14:27  -------------------------------------------------------------------------
   ▼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"”を指定すれば全てのテキストが拾えるのでしょうか?

すいません初心者でして、わからない箇所も有るかと
思いますが、お願いします。

 ───────────────────────────────────────  ■題名 : Re:共通処理について  ■名前 : Gin_II  ■日付 : 04/4/16(金) 3:06  -------------------------------------------------------------------------
   > “r1.Fields”(テーブル側)のインデックスはどこで定義するのでしょう?
自動でふられています。

  For lngIdx = 0 To r1.Fields.Count - 1
    Debug.Print r1.Fields(lngIdx).Name
  Next lngIdx

のようなコードを実行してみてください。


> “"txt"”を指定すれば全てのテキストが拾えるのでしょうか?
前回、回答した
> 右辺の記述がありませんが、ここはどうなっているのでしょうか?
については?

フォームでの実行でテキストボックスの値を、セットするという前提で、
なおかつ、各コントロールの名前が、txt + フィールド名 という条件なら
前回のコードで大丈夫だと思います。

それ以外なら使えないですね。

 ───────────────────────────────────────  ■題名 : Re:共通処理について  ■名前 : [名前なし]  ■日付 : 04/4/18(日) 13:15  -------------------------------------------------------------------------
   >> 右辺の記述がありませんが、ここはどうなっているのでしょうか?
>については?
すいません、記述漏れでした。

>フォームでの実行でテキストボックスの値を、セットするという前提で、
>なおかつ、各コントロールの名前が、txt + フィールド名 という条件なら
>前回のコードで大丈夫だと思います。
>
>それ以外なら使えないですね。

なるほど、ありがとうございました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 598