スキップしてメイン コンテンツに移動

投稿

2月, 2018の投稿を表示しています

対処例:Accessフォームでチェックボックスが思うように設定できない

開発プラットフォームとしてAcccessという事は多い。 そして何気に不思議な動作をする事が多いのも事実。 今回であったのは、フォームに置いたチェックボックスが、フォームを開いた際に思ったように振舞ってくれない、というもの。 このチェックボックスは規定値=FALSEで設定してあって、人の操作以外でこのチェックボックスの値は操作していない。 そしてこのチェックボックスを置いたフォームを開くと… 問題のチェックボックス、チェックがついた状態で描画される!!! こまったチャンである。 時折は意図したとおりにOFFの状態で開く場合もあるものの、まれ。 ここはしっかりユーザーの操作(チェックボックスをONにする)に基づき、関連の項目を入力してもらう、という動作をさせたいし、また他へのI/F項目でもあって、しっかりさせたい。ちなみに、TripleState プロパティは Falseに設定してある。 簡単にググッてみたものの、ちょっと同様の事例や対処は見つからず。いくつか試したが、うまく行かない。 で、結論から書くと、こういう対処をした。 Form_OPENイベントの際に、問題のチェックボックスに以下の操作を実行 ・問題のチェックボックスにフォーカス設定 ・問題のチェックボックスに対して、SendKeys でスペース(" ")一文字投げつけ ・問題のチェックボックスの Value 値を確認。True の場合、もう一回SendKey でスペース(" ")一文字投げつけ 発想としては、チェックボックスがカレントな状態のとき、スペースキーで値が操作できる事を思い出し、ぶつけてみた。 でも、実は最初はうまく行かず。 はて? で、 SendKeys のリファレンスを改めて眺めて、 Wait オプションがある事を思い出した。 解説するまでもないが、これが True の場合、そのキーが処理されるまでVBAは次の実行をまつ。デフォルトでは False で実行される。なので、Accessが、なげつけられた?(いや、自分で自分に投げているわけだから…)スペースキーを受け取る前にVBAが進んでるか?と思い、以下に書き換えてやってみた。 SendKeys " ", True ...

ロボット例:ソニー生命個人ページから変額保険の情報を収集する

VBSでIEを操作して仕事をさせるロボット ソニー生命の個人ページにアクセスして、変額保険の契約者貸付金額と増加保険金額を複数の契約から収集し、その合計額をCSVファイルに出力させるロボット。 人に見せる事を前提に書いてないので美しくない。 当然動作保障なし、サポートもなし。

サンプルスクリプト:IEでクリックボタンを連続処理する(VBS)

VBSでIEを操作する。 選択可能なボタンを連続的にクリックし、リンク先での処理を行う。 但しボタンはクリック可能なものと不可能なものが存在し、 且つリンク先は別ウインドウで開くと遷移エラーとなるのでシングルで処理する必要がある場合の処理。