|
▼みそじのおじさん さん:
こんにちは
私も知らないんですが、エラーは発生しないんですよね?
>Res.Open SQL, CN, adOpenKeyset, adLockOptimistic
>
>If Not Res.EOF then
> ....
> ....
> Res.Fields(F_車台番号).Value = Null
から
>Res.UpDate
までの処理はどのような処理してますか?もっと情報があった方が識者も
Resを付け易いかと思います。
>Call Control_Refresh(引数省略)
>車検証データを表示するTextBox群のリフレッシュをするSubを呼んでいます。
なんですが、このプロシージャで、SQLを投げるか、パラメータクエリ
(作成しておいてですが)などをキックして再度取得しなおすとどうなりますか?
それと最初に全レコード取得してますが、必要なレコードだけは抽出出来ないので
しょうか?無駄です。特にネットワークが噛んで来ると。
>このプログラムを実行すると、ブレークを張ってない場合に
>IF IsNull(Res.Fields(F_車台番号).Value)=False の部分がFalseですり抜けてしまう場合がありあます。
>ブレークを張って見ていると、止まった瞬間はRes.Fields(F_車台番号).Valueに
>Nullを代入する前の車台番号が入っていて、その後、1秒ほどしてからNullになる
>といった具合でした。
>
> Res.UpDateをしてから、実際にRecordSetがNullになるまでには、タイムラグがあるのでしょうか?(あって当たり前のような気がしていますが...)今はその場しのぎで、Application.Wait Now()+TimeValue("00:00:02")を入れて対応していますが、2秒という数字は環境によってまちまち(私のテスト環境では2秒で大丈夫ですが、本番の環境はPC2台のネットワークで使用しますので、条件が悪くなるかもしれません)だと思いますので、この待ち方はできれば回避したいです。
>
mdbのデータをメモリ上に読み込むまでは遅いときもありますが、メモリ上に
データがあるときはそれはおかしいですね。
> Excel+ADO+Accessにおける待ちの常套手段とは、どういったものなのでしょうか?
recordsetはExcelで持っているんで、待ちなんか無いはずですが・・・?
以下の話は昔の話ではありませんので紹介しておきます。
ht tp://www.naboki.net/access/achell/achell_02.html
今なら、SQLServer2008Expressが無償でDLできますからそちらを使うことを
お勧めします。2008ではやったこと無いですが、2005では可能でした。
識者のアドバイスを待ちましょう。
|
|