プロフィール

alphan

Author:alphan
FC2ブログへようこそ!

暗号ツール
最近の記事
カテゴリー
カレンダー

02 | 2007/03 | 04
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

月別アーカイブ
最近のコメント
最近のトラックバック
FC2カウンター

天気予報


-天気予報コム- -FC2-

ブロとも申請フォーム
ブログ内検索

RSSフィード
リンク
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VBで作ったActiveX(DLL)をWindowsXPやWindows2000では、WindowsのSystem32フォルダに放り込んで平気で使っていました。
Vistaになって、該当のDLLがレジストリに登録されていないので・・・とか何とかのメッセージでAccessのVBAから呼び出しできなくなりましたので、仕方なしにregsvr32で登録することにしました。
C:\Winodws\System32 のフォルダに移って、
 'regsvr32 xxxxxxx.dll'
と打ち込みましたが、0x80004005のエラー発生です。
えっ、なんでなんで?
何のことはない、DOS窓を普通に開いて上のコマンド打ち込んだからでした。
ログインしているユーザーIDにAdministrator権限も持たせていたのでウッカリしていました。
DOS窓開くときに、右クリックで「管理者権限」を持たせて起動しましょう。
あっけなくregsvr32は通ってしまいました。
スポンサーサイト

Windowsのプログラム開発で、よく一時的なディスク上の書き込み領域が欲しくなることがあります。
こんな時に、少々インチキかも知れませんが必ず存在するCドライブの直下に隠しファイルを作成し、あとで消したりすることがあります。
こんなプログラムが残っていたのを忘れていてVistaに移行したところ、なんと余程権限を甘くしない限りはCドライブ直下にはファイルが書けないことが分かりました。
しかし、フォルダは簡単にCドライブ直下に作れるのですね。
仕方ないので、隠しフォルダをCドライブ直下にMKDIRしてからその隠しフォルダ下に一時ファイルを書くようにしました。
え、勝手にルートドライブ直下にファイルなんか書くなって?

元になるAccessのテーブル名の長さが小さいと、リレーション用のトリガが作成されないようだ。
例)「主」と「従」の名前の2つのテーブルを1対多で連鎖削除/連鎖更新にしておいても、アップサイジングの際にエラーレポートされてしまいます。
解)「主Tab」と「従Tab」のように名前を少し長くすれば、他は全く同じでもアップサイジングでエラーにはなりません。
なかなか奥が深いですね。^^

 VBも昔のVB2とかVB4の頃と違って、VB6では結構多くのコントロールをフォームに貼ってもそれなりに動くようになりました。
 DB直結の画面もいい気になってバシバシ作っていてハマることがあります。
 DataFieldの数(対応するTextBoxの配列数)などはかなり多数に出来ますが、DC(Data Control)のReacordSourceプロパティにセットするSQL文字列の全体の長さは、およそ2800文字程度までにしないと、VB6がメモリ例外等で落ちることがあります。
 いわゆる、Tableのカラム名称を長くし過ぎると、接続するカラムの数が増えるに従って、SQL文字列自体が長くなってこういう現象に陥ってしまうようですね。

 よくある顧客番号って、下1桁がチェックディジットだったりします。
 10桁の番号を仮定します。
 モジュラス11ウェイト7~2ってのが多いみたい。
 abcdefghiの9桁に対して、
 11 - ((a*7 + b*6 + c*5 + d*4 + e*3 + f*2 + g*7 + h*6 + i*5) Mod 11)
 がCDとなって最後に付加されて合計10桁になる。
 尚、CDの結果が10と11の場合は0とする。

 ファイルの日時としての属性には「作成日時」「更新日時」「アクセス日時」がありますね。
 ファイルを右クリックしてプロパティを見れば分かります。
 しかし「作成日時」はファイル自体をコピーするとコピーした日時に変わってしまいます。
 だからディレクトリ(フォルダ)の詳細表示では、「作成日時」ではなくて「更新日時」が既定項目になっているのでしょう。
 日付時刻順でソートする時にも「更新日時」じゃないと意味がなくなります。
 いわゆる「作成日時」はあまり当てになる情報ではないということですね。

 'shutdown -s -f -t 10'
 10秒後にシャットダウンし電源OFF。
 Windows2000に持ち込んでも動く。

 登録済みのカウンタログを起動/停止するには、
 'logman start カウンタログ名'
 'logman stop カウンタログ名'
 (Windows2000で行うには、WindowsNTのリソースキットの導入が必要。)

 blg形式をcsv形式に変換するには、
 'relog ソース.blg -o デスト.csv -f CSV'
 但し、Windows2000ではまだ出来ない。

 OCXというかActiveX(実際にはVB製のDLLモジュール)をAccessのVBA開発時に参照設定で指定して使っているケースは多いと思う。
 ところが、何かの拍子にSystem32フォルダに登録しておいたこれらのActiveXのバージョンが上がっていたりする。
 何か別のアプリをインストールなどなど・・・
 するとAccessは一旦覚えてしまった参照設定のままでActiveXを動かそうとするらしく、新しいバージョンなのに古いままの情報で呼び出すようだ。
 結局、解せないエラーが起こったりする。
 悩んだあげく、該当のActiveXを参照設定から一旦外し、また見かけ上は同じに見える参照設定のやり直しを行い、コンパイルしたら何事もなく問題が解消することがある。
 わけがわからないエラーが起こったら、参照設定の再設定とコンパイルをしてみるのも手です!!!

 WindowsXP(OfficeXP)で使っているVBAを駆使したAccessアプリケーションをVistaで動かそうとして停止!
 Office2007でVBAはデフォルトでブロックされるので、該当フォルダ指定でセキュリティ変更。
 Office2007のセキュリティ・センターで、インストール先のフォルダを信頼できる場所として追加登録する。
 (基本的にマクロは廃止したが、VBAまでは廃止できないので、フォルダ限定でブロック解除。)
 というより、いきなりAccessのAutoExecマクロが停止してしまって・・・
 急いでマクロをVBAに置換したが、VBAがブロックされるので、仕方なしにフォルダ指定でブロック解除となった。

WindowsXP SP2 では、ファイアウォールでFTPのgetやputがブロックされる。
 SP1からSP2で既定値が変わったので、FTPを使うクライアントプログラムがある場合には、ファイアウォール設定で例外タブにてFTPにチェックを入れて許可するようにしなければならない。

さて、開発の備忘録ということでブログ作ったけど、何から書こうか・・・
あまり気張ってトーンダウンしないようにします。

前後のページの案内

バンドメンバー募集のキング 新着コールマン通販
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。