複数コアの CPU 環境で実行中の Access が応答なしになる
解決策としてはどうなんだ。
access2007ならSP3で、access2010なら
Access 2010 の修正プログラム パッケージ (Ace x none.msp): 2011 年 8 月 30日で対応と認識しているのだけど。
複数コアの CPU 環境で実行中の Access が応答なしになる
解決策としてはどうなんだ。
access2007ならSP3で、access2010なら
Access 2010 の修正プログラム パッケージ (Ace x none.msp): 2011 年 8 月 30日で対応と認識しているのだけど。
いろいろ試していて遅い原因はいくつかありそうな気がしたのだけど、特にクエリがあれだ。Jetあたりに問題があろうかと思えて仕方がない。そこで、Win7SP1(64)上でaccess2003がどんな感じになるのかなと検証。64bitを選択したのに深い意味はない。うっかりしてただけ。Win7のSPも公開されてしばらくしたし、ナントカ電機で安く売ってた夏モデルを買ってきたら64bitだったというシナリオというのもありがちかなと。
過去のシングルコアマシンと最新マルチコアマシンで比べたら、非力なシングルコアの方が速かったということもあるし。
XP+a2003 / Win7+a2003 / Win7+a2007 で比較などしてみた。いずれも、SPはすべてあててある。Hotfixはあてていない。マシンはすべて同じ条件
Description of the 2007 Office suite SP3 and of Office Language Pack 2007 SP3
内容がよくわからない。後で確認してみよう
ざっくり、見てみた。
access2007についてだけど、
Description of the Office Access 2007 hotfix package (Ace-x-none.msp, Access-x-none.msp): August 30, 2011
ACEに対するHotFixがある。
Win7もしくはWin2008R2の環境においてクエリ実行完了までに時間がかかるということだろう。
access2010ではあるが、確かにXP上であれば10000msを頭打ちで実行完了することが経験的に判っていて、Win7上では120s超を要することがある結果は得ていた。きっとaccess2007でも同じなのだろう。access2010用のHotFixが得られたら確認してみよう。
元ネタは、Accessウィンドウをディスクトップの中央に表示する(hatena chips)
マルチモニタ環境で使いたかったので。だけどデュアルモニタまでしか確認してない。
フィールド検索をしていく途中、フォーカスをもつコントロールの条件付き書式を
という感じにすれば検索途中の状況が判る。
でも、該当するフィールドがどれだけ?っていう視覚的訴求がを満たさないことがあるから条件付き書式にちょいと工夫して使ってみることにする。マクロだけで。
Sub CopyRecord_Attachment_MultiValues()
Dim rs1 As DAO.Recordset, rs1a As DAO.Recordset, rs1m As DAO.Recordset
Dim rs2 As DAO.Recordset, rs2a As DAO.Recordset, rs2m As DAO.Recordset
Dim dbs As DAO.Database
Set dbs = CurrentDb
Set rs1 = dbs.OpenRecordset( _
"SELECT F01, F_attachment, F_multivalue FROM table01 WHERE ID = 1;")
Set rs1a = rs1("F_attachment").Value
Set rs1m = rs1("F_multivalue").Value
Set rs2 = dbs.OpenRecordset( _
"SELECT F01, F_attachment, F_multivalue FROM table02;")
rs2.AddNew
rs2.Fields("F01") = rs1.Fields("F01")
Set rs2a = rs2("F_attachment").Value
Do Until rs1a.EOF
rs2a.AddNew
rs2a.Fields("FileData") = rs1a.Fields("FileData")
rs2a.Fields("FileName") = rs1a.Fields("FileName")
rs2a.Update
rs1a.MoveNext
Loop
Set rs2m = rs2("F_multivalue").Value
Do Until rs1m.EOF
rs2m.AddNew
rs2m.Fields("Value") = rs1m.Fields("Value")
rs2m.Update
rs1m.MoveNext
Loop
rs2.Update
End Sub
詳細セクションにはテキストボックスのみという仕様で、フォームヘッダに検索用テキストボックスとコマンドボタンを配置。検索テキストボックス更新したら先頭から検索。
こんな感じになる。フォームをクリックするなど操作しないとならなくなる。