トップページ > プログラム > 2014年11月24日 > 5R7rrTlS

書き込み順位&時間帯一覧

69 位/256 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000010100002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part35
VBScriptについて必死に話し合うスレ

書き込みレス一覧

Excel VBA 質問スレ Part35
281 :デフォルトの名無しさん[sage]:2014/11/24(月) 17:10:55.42 ID:5R7rrTlS
>>280
取得 → 取得文 & 追加文

で良いのでは?
VBScriptについて必死に話し合うスレ
993 :デフォルトの名無しさん[sage]:2014/11/24(月) 19:05:38.32 ID:5R7rrTlS
DAO.DBEngineのインスタンス作成や、データベースの取得を無駄に逐一やらずに
インスタンスはClass_Initializeで作ってクラスレベル変数に保持して使い回し
データベースもCreateDatabaseかOpenDatabaseで一度開いたら、無駄に何度も開き直さない

既にデータベースがある場合はOpenDatabase、無い場合はCreateDatabaseとする
また、動作上は問題ないが、利用するオブジェクトのメンバ名で使われてる名前は
混乱を避けるため、自作のプロシージャや変数名では使わないようにする>CreateDatabase、WriteLine

DatabaseNameはWScript.ScriptFullNameからスクリプトのあるディレクトリを取得してそこに作るか
他からもアクセスできるように特定の場所に固定するなら、環境変数を使って書く

クラス直下の変数宣言は、公開か非公開かを明示すべく、DimではなくPrivateとPublicを使う

定数を上手に利用する("inTitle"とか、フィールド番号の0,1なども定数にすべきもの)
因みに同じ1でも「ReDim Data(GetCount(RecordSet) - 1)」の1は定数化の必要なし

今回のようなケースなら
DA.Insert CreateDatum("タイトル", "内容")
のCreateDatumは、変更されることも省かれることもなく必ず使用されるものなので
Sub Insertで(Title, Content)の引数を取り、その中でCreateDatumすることで
DA.Insert "タイトル", "内容"
とスッキリ書けるようにする

検索結果を取得する部分は、対象フィールドを定数にしたものを引数として渡し
検索するフィールド毎に専用関数を作るなんて無駄なことはしない

cscript.exeでの実行の仕方が解らない人でもWScript.StdOut.WriteLineでエラーにならないように
wscript.exeで実行されてもcscript.exeで実行し直すようにし、最後に
WScript.StdOut.WriteLine "Enterキーを押すと終了します..."
WScript.Stdin.ReadLine
などを入れて、結果が残せる開発環境とかからの実行ではなくても、
結果表示が見る間も無く消えるなんてことが無いようにする.....って、もう行数制限いっぱいかよ...orz


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。