| 質問ではありません。ある程度形にできたので手順と感想を書き込もうと思います。 (不適切なら消します) @初期設定⇒13247番で検索ください。ODBCのシステムDSNは桐を扱うPCすべて設定が必要 ASQLの主キー対策⇒タイムスタンプで対応しました。時間+ユーザ名でミリ秒まで取得することでだれがいつ記入したかを記録しながらユニークに(以下参考) [Timestamp]=#文字置換(#日付( #年月日 , 1 ),"-","")+#文字列(#時(#時刻),2)+#文字列(#分(#時刻),2)+#文字列(#秒(#時刻),2)+#文字列(#ミリ秒(#日時値),4)+#ユーザ名 連番登録時はミリ秒を#行番号や#回数(繰り返し行追加の場合)に変えて登録すれば1秒で連続登録できないのでユニークになります。行挿入前or終了前イベントで項目値訂正で書き込んでください。ユニークが初期から登録できるのものはユニークを活用しましょう。 BSQL検索フォーム⇒外部DBテーブルを作成し、絞り込み条件1に#DSQL( &STR )や#DSQL( &SQL入力 )を書き込みます。イベントの名札で&STR=「ここにSQLのWHERE に各SQL文を書く」"例:&STR="記入年>="+#文字列(#年(#年月日))" &STRは初期定義なのでいいですが、&SQL入力はないので名札で自分で変数宣言しましょう。#DSQLを書いたテーブルは通常で開きません。一括処理で宣言+値を入れる簡単なものを作成し、桐を開いて実行してから外部DBを開きましょう。 検索の際は&STRに違うWHERE文を記載した後、「再抽出 変数使用 = する」で内容が更新されます。(以下例 ANDは勝手に追加するようにしました。) 条件(&q希望納期≠#未定義)&SQL文=&SQL文+&接続詞+"希望納期 LIKE '%"+&q希望納期+"%'" 条件(&SQL文≠#未定義) &接続詞=" AND " 条件(&q納入日≠#未定義) &SQL文=&SQL文+&接続詞+"納入日 LIKE '%"+&q納入日+"%'" <感想> hidetakeさん尾形さんの多大な協力を頂いてなんとか形にできました。SQLを活用し、開く量を最小限にすることで60万レコードのテーブルでもすぐにひらく様に扱うことができます。上記のようなユニークで問題なければ主キー問題はあまり関係ありません。桐でも早いプログラムが作れるんだ!と感動しました。
|