アクセスの帳票フォームで入力用チェックボックスが84個(ck1からck84)あります。表示データは10個程度ですが、このチェックマークの更新前処理で、同じ場所へのダブリが発生しないような処理をしています。フォームフッターにテキストボックスを84個配し(Text1~Text84)、Text1はCk1の合計を、Text2はCk2の合計を出すようにしておき、CK1の更新前処理に
Select Case Me![Text1]
Case ""
If (Me![ck1]) = -1 Then
MsgBox "Please wait"
Cancel = True
Me.Undo
End If
Case "-1"
If (Me![ck1]) = -1 Then
MsgBox "Already used."
Cancel = True
Me.Undo
End If
End Select
またチェックマークを入れることにより、計算処理をして結果をチェックボックスの下に表示しているためme.Refreshを更新後処理に入れております。アクセス2003+Office2003SP3では問題なく動きますが、アクセス2003+Office2003SP1、アクセス2010+Office2010SP1では次のチェックボックスにチェックを入れるのに5~6秒程掛かります。(アクセス2003+OfficeSP3ではチェックマークをつけて次のチェックマークを付けるのに待ち時間はありません。)したがって使い物になりません。何か考えられることはありますでしょうか。
お礼
ありがとうございます。計算を全部更新するためフォーム全体を行わないといけないと思っておりましたが、CK1だけをRequeryしてやればCK1が確定し全ての計算をやり直してくれました。2003,SP3に比べればまだまだ遅いですが、Me.CKXX,Requeryでずいぶん速くなりました。(.accdbに変更致しました)VB7.0のレジストリ値が怪しいと友人が言っておりましたので、このへんも見てみたいと思っておりますが、随分と改善致しました。ありがとうございます。
補足
http://okwave.jp/qa/q7958022.html こちらの方も教えて下さい。 宜しくお願い致します。