過去ログ

                                Page     311
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼値の更新  アガペー 03/6/18(水) 12:04
   ┣Re:値の更新  こうちゃん 03/6/18(水) 16:14
   ┃  ┗やはりダメです  アガペー 03/6/20(金) 17:55
   ┃     ┗Re:やはりダメです  こうちゃん 03/6/23(月) 12:57
   ┃        ┗解決しました  アガペー 03/6/23(月) 13:29
   ┗Re:値の更新  JAZZ兵衛 03/6/21(土) 17:44

 ───────────────────────────────────────
 ■題名 : 値の更新
 ■名前 : アガペー
 ■日付 : 03/6/18(水) 12:04
 -------------------------------------------------------------------------
   いつもお世話になります。
次のようなコードを書いてたのですが、
フォームのカレントレコードの値がすぐに更新しません。
一度レコードを移動して再び戻ってクリックすれば
反映するのですが。
Updateを使うのかなと思うのですが、何分初心者で
よくわかりません。
みなさんの知恵をお貸しくださいませ。

Private Sub 繰越計算_Click()
Dim mydb As New ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim hassei As Long
Dim nyukin As Long

Set mydb = CurrentProject.Connection

Set rs1 = New ADODB.Recordset
rs1.CursorLocation = adUseClient
rs1.Open "T_入金1", mydb
rs1.Filter = "お客様No.= '" & Me!お客様No. & " ' "

Set rs2 = New ADODB.Recordset
rs2.CursorLocation = adUseClient
rs2.Open "T_入金2", mydb
rs2.Filter = "お客様No.= '" & Me!お客様No. & " ' "

hassei = Nz(DSum("保険請求額", "T_入金1", "お客様No. = '" & Me!お客様No. & " ' AND 対象年月 <= # " & Me!対象年月 & " # "))
nyukin = Nz(DSum("入・保", "T_入金2", "お客様No. = '" & Me!お客様No. & " ' AND 対象年月 <= # " & Me!対象年月 & " # "))
Me!残・保 = hassei - nyukin

Me!繰・保 = Me!残・保 + Me!入・保 - Me!発・保

rs1.Requery
rs1.Close
Set rs1 = Nothing

rs2.Requery
rs2.Close
Set rs2 = Nothing

Set mydb = Nothing

End Sub

 ───────────────────────────────────────  ■題名 : Re:値の更新  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/6/18(水) 16:14  -------------------------------------------------------------------------
   アガペーさん、こんにちは

Repaintメソッドでフォームの表示を更新してみてください。
詳細はHELPで確認してください。

>Private Sub 繰越計算_Click()
>Dim mydb As New ADODB.Connection
>Dim rs1 As New ADODB.Recordset
>Dim rs2 As New ADODB.Recordset
>Dim hassei As Long
>Dim nyukin As Long
>
>Set mydb = CurrentProject.Connection
>
>Set rs1 = New ADODB.Recordset
>rs1.CursorLocation = adUseClient
>rs1.Open "T_入金1", mydb
>rs1.Filter = "お客様No.= '" & Me!お客様No. & " ' "
>
>Set rs2 = New ADODB.Recordset
>rs2.CursorLocation = adUseClient
>rs2.Open "T_入金2", mydb
>rs2.Filter = "お客様No.= '" & Me!お客様No. & " ' "
>
>hassei = Nz(DSum("保険請求額", "T_入金1", "お客様No. = '" & Me!お客様No. & " ' AND 対象年月 <= # " & Me!対象年月 & " # "))
>nyukin = Nz(DSum("入・保", "T_入金2", "お客様No. = '" & Me!お客様No. & " ' AND 対象年月 <= # " & Me!対象年月 & " # "))
>Me!残・保 = hassei - nyukin
>
>Me!繰・保 = Me!残・保 + Me!入・保 - Me!発・保
>
>rs1.Requery
>rs1.Close
>Set rs1 = Nothing
>
>rs2.Requery
>rs2.Close
>Set rs2 = Nothing
>
>Set mydb = Nothing
>
Me.Repaint

>End Sub

 ───────────────────────────────────────  ■題名 : やはりダメです  ■名前 : アガペー  ■日付 : 03/6/20(金) 17:55  -------------------------------------------------------------------------
   こうちゃんさん
早速のレスありがとうございます。
Repaintでやってみましたがダメで、Refresh
にしたら今度はレコードを移動させず、カレントレコードで
ボタンを2回押せば更新するようになりました。
いずれにしても正しく動いてはいません。
何か改善策はないものでしょうか?

 ───────────────────────────────────────  ■題名 : Re:やはりダメです  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/6/23(月) 12:57  -------------------------------------------------------------------------
   アガペーさん、こんにちは

あまりよく見ずに答えてしまいました。条件を確認させてください。
ご提示いただいたコードは抜粋というか、「例」ですよね?

フォームは連結フォームですか?
Me!残・保、Me!繰・保 はこのモジュールで計算していますので、非連結?
Me!入・保、Me!発・保 はどうですか?

このコードだけでは rs1、rs2を何に使用しているかがよくわかりません。
rs1.Requery 等も意味がわかりません。

もし連結フォームで、元のテーブルを一部書き換えたあと、その値をフォームに反映させたいってことなら Me.Requery を使って、フォームのレコードソースを更新してみてください。

 ───────────────────────────────────────  ■題名 : 解決しました  ■名前 : アガペー  ■日付 : 03/6/23(月) 13:29  -------------------------------------------------------------------------
   こうちゃんさん、JAZZ兵衛さん
ご指導有難うございました。
filterの後にこうちゃんさんがおっしゃられた
Me.Requeryを書くと正しく動くようになりました。

ただどうしてかというのがよくわからないので
もう一度コードを調べてみようと思います。

今回は有難うございました。

 ───────────────────────────────────────  ■題名 : Re:値の更新  ■名前 : JAZZ兵衛  ■日付 : 03/6/21(土) 17:44  -------------------------------------------------------------------------
   Refreshは?

ソースをよく見てないから、何ともいえませんが、
Requeryの前でRefreshしてみてはいかがでしょうか。

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