accessでは、ステートメント内のオーストラリアの日付SQL
は区切られ、#d/m/yyyy#としてフォーマットされます。例えば:
SELECT * FROM mytable WHERE mydate BETWEEN #2/1/2001# AND #4/3/2001# AND more...
このステートメントを取得しSQL
てマッサージする必要があるため、次のように提示できますSQLite
。
SELECT * FROM mytable WHERE mydate BETWEEN '2001-01-02' AND '2001-03-04' AND more...
次に、タスクは に変換する#xd/xm/yyyy#
こと'yyyy-mm-dd'
です。「ハロー、ワールド!」正規表現の例。
でvba regexpを使用すると.Global = TRUE
、区切り記号を置き換えて、要素を 1 ステップで並べ替えることができます。
vOldPattern = "#([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})#"
vNewPattern = "'$3-$2-$1'"
これにより、次の中間結果が得られます。
SELECT * FROM mytable WHERE mydate BETWEEN '2001-1-2' AND '2001-3-4' AND more...
1回のパスですべての1桁をパディングできると思いました:
vOldPattern = "-(\d[-'])"
vNewPattern = "-0$1"
しかし、このアプローチでは、最初の (月) 桁のみがパディングされます。諦めて二回通った 先に合わせて
"-(\d-)"
そして
"-(\d')"
したがって、フォーマットを変更してコンテンツを微調整するための 3 つのパスがあります。確かに、このタスクには単一の検索/置換コマンドがあります。誰かがよりエレガントなソリューションを志願できますか?
また、ランタイムをコンパイルしてエクスポートする必要があるため、遅延バインディングを使用できず、代わりに MS VBScript 正規表現への参照をロードする必要があると思います。私は Win7/32 で開発していますが、アプリは WinXP と下位互換性 (互換性がありますか?) である必要があります。VBScript RegEx ライブラリのどのバージョン (1.0 または 5.5) をロードする必要がありますか?
乾杯!