Category
Recent Entries
Search
Archive
Navigation
ホーム 戻る サイトマップ
Appeals
にわか日ハムファン友の会
Syndicate
RSS 1.0
Powered
Powered by blosxom 2.1.2

[Access] サブフォームのレコードソースを切り替える

フォームにサブフォームを埋め込み、 そのサブフォームが条件検索するごとに定義し直されるクエリーをレコードソースとしている場合、 ReQueryでは検索結果が反映されないため、レコードソースを再定義することでこれを実現する。


    Me!FormSub.Form.RecordSource = strQuery

FormSubは親フォーム上でのサブフォーム名、 strQueryはstring型の変数で、レコードソースとなるクエリ名が格納されているものとする。

[Access] 入力にズームボックスを利用する

長いテキスト型やメモ型のフィールドの値を入力させるテキストボックスを、 画面のサイズ制限上、やたら大きくするわけにいかない場合、 ズームボックスを使えるようにすると便利だ。


'--------------------------------------------------
'   Function : gfnc_ZoomBox
'              ZoomBoxの利用
'--------------------------------------------------
Public Function gfnc_ZoomBox() As Boolean

    DoCmd.RunCommand acCmdZoomBox

End Function

フォームのダブルクリックイベント等に、作成したgfnc_ZoomBoxを記述して完成。

[Access] フォームを常に基準サイズで表示する

フォームを最大化表示すると、大きなモニタではコントロールが全て左上に寄ってしまってなんとなく不恰好である。
よって、フォームを開いたときに常に基準のサイズで表示する、 あるいはレポートを最大化表示した直後にフォームにフォーカスを戻しても、 フォームが最大化表示にならないようにする。


'--------------------------------------------------
'   Function : gfnc_Restore
'              元の大きさに戻す
'--------------------------------------------------
Public Function gfnc_Restore() As Boolean

    DoCmd.Restore
    DoCmd.RepaintObject

End Function

フォームのアクティブ化イベントに、作成したgfnc_Restoreを記述して完成。

[Access] トランザクション処理の共有ロック数を拡張する

Access + Jet + DAO。
データも一万件を超えるようなテーブルをトランザクションかけてレコードセットで処理する場合、 「ファイルの共有ロック数が制限を超えています」みたいなエラーが出ることがある。 これを回避する方法は、レジストリをいじるか、共有ロック数を一時的に増やすかである。


'---< EXTEND FILELOCK >
    DBEngine.SetOption dbMaxLocksPerFile, 30000

上記のコードをBeginTransの前に記述する。
Microsoftの技術情報では、 [ACC2003] [PRB] 多数のトランザクション処理中に "ファイルの共有ロック数が制限を超えています" エラーが発生するを参照。

Page : 2/2 ( 1 2 )