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

[Access] テーブルが存在するか調べる

データベースmdb内に任意名のテーブルがあるかどうかを調べる。 テーブルを処理毎に作り直す等の場合に利用する。


'----------------------------------------------------
'   Function : Table-Exist-Check
'----------------------------------------------------
Public Function gfnc_ExistTable(ByVal strTableName As String) As Boolean
    Dim dbs As Database
    Dim rst As Recordset
    Dim tdf As TableDef

    Set dbs = CurrentDb

'---< LOOP TABLEDEFS >
    For Each tdf In dbs.TableDefs
        If (tdf.Name = strTableName) Then
            gfnc_ExistTable = True
            Exit For
        End If
    Next tdf

End Function

gfnc_ExistTable("テーブル名")がTrueを返せば、その名称のテーブルが存在する。

[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] 多数のトランザクション処理中に "ファイルの共有ロック数が制限を超えています" エラーが発生するを参照。

[メモ] 新しいカテゴリーの作り方

去年の夏から体調が全然優れないですよ勘弁してください。
でも2007年のシーズン開幕ですしカテゴリーは追加せねばならん、ならんよですよなので覚書。 あ~もう首が据わらないよ眩暈をどうにかしてくれよもう。 カーソルがワープする現象もなんとかならんものか、このPC。

  1. フォルダを作る(カテゴリ名になる。数字で始める名前はダメっぽい)
  2. フォルダの中に記事を書く
  3. category_setプラグインを使っているのでpluginsフォルダのstatesフォルダのcategories.csvを編集
  4. アップロードする
  5. entries_kacheプラグインを使っているのでブログのURLの末尾?reindex=yをつけてアクセス
  6. できあがり

[導入] 5.blosxom本体の設定(2)

さっそくblosxomカスタマイズの第一歩を踏み出しましょうや。
焦っても無駄なんで眠いときは寝てからのほうがいいです。

ディレクトリの構造決定

さて、blosxom.cgiにはデータの場所やらプラグインの場所やらを設定する箇所があります。 これは基本的に絶対パスで指定します。 一部プラグインを入れれば相対パスも可能とかいう噂なんですけど、サーバによっては何もしなくても相対パスが使えることもあるらしい。 まあ一番手堅いのは絶対パスってことですかね。
で、各種パスを記述するにもエントリやプラグインを置く場所を決めてやんないといけないわけです。 もう全然自由でオウケイなんですけど、とりあえず具体的にこうしましたよ、という例を提示してみます。

エントリは「data」フォルダへ。 エントリをカテゴリ分けするときはこの「data」フォルダの中にさらにサブフォルダを設けます。 blosxomではフォルダ分けがそのままカテゴリー分けとして認識されます。
プラグインは「plugins」ディレクトリへまとめて放り込むことに。 その下の「states」ってのは独自にデータを作るプラグインが作ったデータを置く場所です。
で、blogの概観を決めるテンプレート、blosxomでいうところのフレーバーは、「flavours」ディレクトリに入れるハラです。 これはちょっと飛躍で「flavordir」ってぇプラグインを使う気満々なんでこうなるんですけどね。 このプラグインを導入しない場合、フレーバーファイルは「data」ディレクトリにあると解釈されます。 いえ別にそれでもマズいわけじゃないんですが、 フレーバーはプラグインを増やすと結構種類を作ることになりかねませんので、 こうして分離したほうが後から楽かと思いますんで。オススメですぜ。

ブログの設定

ここでまずblosxom.cgiのバックアップを取っておくことを推奨します。 で、各種設定を書き換え、と。

内容はall about blosxomSetupBlosxomに詳しいのでそっちを参照。
つまるところがあるとすれば絶対パス。 「絶対パス?」と頭上にクエスチョンマークが点灯したならchkfullpath.cgiやらservana.cgiのご利用がオススメ。 ただし、servana.cgiは見えすぎる感があるので、ご利用後は速やかに削除なり属性変更なりの対策を。
上記のディレクトリの設定も頭に入れつつ設定を書き換えてみてください。

設定を変更したらサーバのblosxom.cgiを上書きして動作確認してみましょう。 この状態で確認できるのはblogのタイトルだけですけどね。
タイトルが変更された状態のサンプルはこちら。 文字化けしやすいのでそのときはエンコードを変更してください。やっつけblogて。そのままだし。

Page : 4/8 ( « 1 2 3 4 5 6 7 » )