
|
Accessの小技集 |
AccessのFormを固定する
APIを使ってAccessのフォームを動かせなくします。VBでも使用できます。
次のAPIを使用しています。
GetSystemMenu
RemoveMenu
SourceCode
DontMove.mdbのダウンロード (dontmove.lzh 00/09/23)
(UPD 00/09/23)
Access本体を最大化する
ウィンドウハンドルを取得するお勉強です。
APIを使ってAccess本体を最大化、最小化・標準サイズにする方法です。またメモ帳(Notepad.exe)を最大化、最小化・標準サイズにする方法も書いています。おまけとしてデスクトップ上のアイコンをすべて消したり表示したりというお遊びもついています。
次のAPIを使用しています。
ShowWindow
FindWindow
SourceCode
LsShowWindow.mdbのダウンロード (lsshowwindow.lzh 24Kb 00/07/26)
(UPD 00/07/26)
Accessで行(Record)を挿入するAccessで行(Record)を挿入する
Accessで新規レコードを追加すると最後の行に追加されてしまいます。見た目だけでも途中に追加されたようにできないかという、邪道の小技です。ある行をコピーして貼り付けた場合に、その行がコピー元の行のすぐ上に複製されたように見えるサンプルです。
1.レコードセレクターをダブルクリックしたら行をコピー
2.複製ボタンをクリックしたら、コピー元の行のすぐ上に行を複製
-----------------------------------------------------ここから見えません
3.新規レコードを追加(最後にレコードが追加されます)
4.クリップボードから新規レコードに行を貼り付け
5.ソートキーを組み立て(若干の問題を残してます)
6.Requeryで並べ替えて
-----------------------------------------------------ここから見えます
7.更新結果を表示
三種類の「更新状態の表示/非表示」方法を紹介しています。
1.Application.Echoプロパティ
2.Paintingプロパティ
3.LockWindowUpdate(Win32API)
SourceCode
LsInsertRow.mdbのダウンロード (lsinsertrow.lzh 29Kb 00/06/16)
Access97/2000共存環境の問題点
方向キーを押しつづけるなどしてカーソル移動を行なうと途中でフリーズします。しばらくすると回復しますがカーソル移動を再開すると再発します。Basicのガベッジコレクション状態です。
単一の環境では発生しません。
(UPD 00/06/16)
ShortPath、LongPath(Win95/98)に対応したパス名とファイル名の分割
渡されたフルパスをパス名とファイル名に分割します。このときShortPath、LongPathの指定ができます。ShortPathはAPIで簡単に取り出せますが、LongPathを取り出すAPIのGetLongPathNameはWin95では使えません。そこでDir関数の隠された力を使います。次のWin32APIを使っています。
ShortPath名を取得
GetShortPathName
LongPath名を取得。GetLongPathNameはWin95では使えません。
GetLongPathName
OSのバージョンを取得
GetVersionEx
「ファイルを開く」コモンダイアログを呼び出す
GetOpenFileName
エクスプローラのファイルをクリックし「ファイル関連付け」でMDBを立ち上げるとCurrentDb.NameはShortPathになります。Accessの「開く」から開くとLongPathになります。どうしてもLongPath名が必要な場合に役立ちます。
SourceCode
LsGetPath.mdbのダウンロード (lsgetpath.lzh 01/12/01)
Network Driveに対応(01/12/01)
(UPD 00/03/25,01/12/01
)
Accessでスクリーンキャプチャーを
AccessでAPIを使ってスクリーンキャプチャーを行い、MDBに格納します。「スクリーン全体」のスクリーンキャプチャーと「アクティブフォーム」だけのスクリーンキャプチャーができます。このAPIはVBからも使えます。
MdbCompactを使って自動的に最適化を行なっています。
SourceCode
LsScreenCapture.mdbのダウンロード (lsscreensapture.lzh 262Kb 2000/01/29)
(UPD 2000/01/29)
|
ポイント・インチ・cm・Pixel・twipの関係は |
|
1ポイント=1/72インチ=20twip |
|
1インチ=1440twip |
|
1cm=567twip |
|
1Pixel=15twip |
(UPD 2000/02/05)
Accessでハイパーリンクの挿入ダイアログを表示
AccessからAPIを使わずに、簡単にハイパーリンクの挿入ダイアログを表示出来ます。メニューバーの「挿入(I)」→「ハイパ−リンク(I)」と等価です。
記述するのは次の1行です。当然ですがハイパーリンクを挿入するためにはフォームをacDesignで開かなければなりません。
DoCmd.RunCommand acCmdInsertHyperlink

先日 Holger Nick さんからEmailをもらい質問されたので作成したのですが、このダイアログは、どんな場合に使うのかよくわかりません。メニューにあることさえ知りませんでした。
SourceCode
acCmdInsertHyperlink.mdbのダウンロード (ac_cmd_insert_hyperlink.lzh 14Kb 2000/01/29)
(UPD 2000/01/29)
Accessで「印刷」ダイアログを表示
AccessからAPIを使わずに、簡単に印刷ダイアログを表示出来ます。記述するのは次の1行です。もちろんmdeでも大丈夫、RunCommandを見直しましょう。
DoCmd.RunCommand acCmdPrint

当然のことですがプロパティをクリックすれば「プリンタのプロパティ」ダイアログを表示出来ます。

printdlg.mdbのダウンロード (printdlg.lzh 11Kb 2000/01/22)
(UPD 2000/01/22)
Access97のオブジェクトとPropertyの相関表
Access97のオブジェクトとPropertyの相関をMDBにしました。
1)PropertyはイベントProperty(AfterUpdateなど)を含んでいます。
2)すべてのオブジェクとPropertyを網羅しているわけではありません。Field、Required/値要求などが入っていません。
LsAcPropertyフォームでは初心者向きの処理を行なっています。
1)コマンドボタンのダブルクリックで、同一処理が2回行なわれるのを防ぎます。
2)コマンドボタンに見せかけたラベルの上下の色を入れ替え、凹凸の動作をさせています。
3)コマンドボタンのクリックで長い処理を途中でCancelします。
ac97property.mdbのダウンロード (ac97property.lzh 32Kb 1999/11/20)
(UPD:1999/11/20)
WSHでショートカットファイルの情報を取得
Windows Scripting Host(wshom.ocx)を使って、ショートカットファイル(拡張子が.lnkまたは.url)の情報を取得します。APIでは大変な作業がいとも簡単にできてしまいます。wshom.ocxは
Microsoft Internet Explorer 4.0 以上 をインストールするとインストールされます。また IE 4.0 以上がないと動きません。
◆取得できる情報(オブジェクトブラウザーで調べればほかにも情報が取れます)
exeファイル名(Description)
ショートカットファイルのFull Pathファイル名(FullName)
アイコンファイル名,Location(1から開始) の順に表示(IconLocation)
ホットキー(Hotkey)
Full Pathのファイル名(TargetPath)
実行時のウインドーの大きさ(WindowStyle)
作業フォルダ(WorkingDirectory)
SourceCode(VB、VBAで使う場合はこちらを保存して下さい)
LsGetLnkFileInfo.mdbのダウンロード (lnkfinfo.lzh 32Kb 1999/10/02)
別途Access本体が必要です
(UPD:1999/10/02)
Accessのメニューバー、ステータスバーの表示・非表示を切り替える。
Accessのメニューバー、ステータスバーの表示・非表示を切り替えます。Access2000で名前の扱いが変更になりましたので注意が必要です。
Access97では次の構文が許されましたが、Access2000ではランタイムエラー(2091:不正な名前です)になります。
Application.GetOption("ツールバーの表示")=true
Application.GetOption("ステータス バーの表示") = True
ちなみにAccess97/2000とも次の名前はランタイムエラー(2091:不正な名前です)になります。
"Show Tool Bar" "Show
ToolBar" "Show Tools Bar" "Show ToolsBar"
SourceCode
menu_barのダウンロード (menu_bar.lzh 27Kb 1999/08/28)
別途Access97本体が必要です
(UPD:1999/08/28)
フォーム、レポート、テーブルなどが開かれている場合 True を返す。
Northwind.mdbのユーティリティ関数IsLoadedの拡張版です。テーブル、クエリー、フォーム、レポート、マクロ、モジュールが開かれている場合
True を返します。
SourceCode
LsIsLoadedのダウンロード (lsisloaded.lzh 52Kb 1999/07/24)
別途Access97本体が必要です
(UPD:1999/07/24)
Open時にリンク状態を確認し、正常に接続する。
Open時にテーブルのリンク状態を確認し、正常な接続でなければつなぎ直します。フォルダを移動した場合の自動処理が可能になります。データMDBがプログラムMDBのフォルダにあることを前提にしています。 LongPathNameに対応しました(00/03/25)
SourceCode
LsConnectのダウンロード (lsconnect.lzh 47Kb 01/12/01)
別途Access97本体が必要です
Network Driveに対応(01/12/01)
(UPD:1999/06/26,00/03/25,01/12/01)
帳票型のフォームで、 項目ラベルをクリックして簡単並べ替え。
帳票型のフォームで、 項目ラベルをクリックして昇順/降順に並び替えを簡単に行ないます。並び替え処理をサブモジュール化することで、ラベルClick時のイベント記述が単純化されます。
SourceCode
LsSortのダウンロード (lssort.lzh 57Kb 1999/06/12)
別途Access97本体が必要です
(UPD:1999/06/19)
帳票型のフォームで、 方向キーによるTab制御をする。
帳票型のフォームで、 ↓↑キーを使ってレコード間を移動します。
使用方法
1)Formの "KeyPreview/キーボードイベント取得"
プロパティ を Yes(はい)にします。
2)Formの KeyDown/キークリック時 イベントに [イベント
プロシージャ]を追加し次のコードを貼り付けます。
LsTabCtrl KeyCode, Shift
3)コンボボックスの方向キーにも対応しています。
ComboBoxで
Altキーを押しながら↓を押すとDropdownします。
Dropdown状態で
Shiftキーを押しながら↓↑を押すとリスト内を移動できます。
SourceCode
LsTabCtrlのダウンロード (lstabctrl.lzh 67Kb 1999/06/12)
別途Access97本体が必要です
(UPD:1999/06/12)
|