アクセス小僧:VBAでクエリを変更(4) [コンピューター]
アクセスのクエリの抽出条件(HAVING句)を
VBAの正規表現を使って置換する例(その4)です。
置換したいHAVING句は次の様になっています。
' パターン=「HAVING (((Format([日付],"yyyy/mm"))>=2017/1 And (Format([日付],"yyyy/mm"))<2018/1)
' AND ((T_医療費.除外)=False Or (T_医療費.除外)=True));」
置換するのに使用した検索パタンの正規表現は次の通りです。
myStr1 = "HAVING\s\(\(\(Format\(\[日付\],""yyyy/mm""\)\)>=[0-9]+/[0-9]+\s*And\s\(Format\(\[日付\],""yyyy/mm""\)\)<[0-9]+/[0-9]+\)"
myStr1 = myStr1 & "\s*A[Nn][Dd]\s*\(\(T_医療費\.除外\)=[A-Za-z]+\sOr\s\(T_医療費\.除外\)=[A-Za-z]+\)\);"
アクセス小僧:VBAでクエリを変更(3)
http://cheese999.blog.so-net.ne.jp/2017-11-23
正規表現の構文(MSDN)
https://msdn.microsoft.com/ja-jp/library/cc392020.aspx
以上。
VBAの正規表現を使って置換する例(その4)です。
置換したいHAVING句は次の様になっています。
' パターン=「HAVING (((Format([日付],"yyyy/mm"))>=2017/1 And (Format([日付],"yyyy/mm"))<2018/1)
' AND ((T_医療費.除外)=False Or (T_医療費.除外)=True));」
置換するのに使用した検索パタンの正規表現は次の通りです。
myStr1 = "HAVING\s\(\(\(Format\(\[日付\],""yyyy/mm""\)\)>=[0-9]+/[0-9]+\s*And\s\(Format\(\[日付\],""yyyy/mm""\)\)<[0-9]+/[0-9]+\)"
myStr1 = myStr1 & "\s*A[Nn][Dd]\s*\(\(T_医療費\.除外\)=[A-Za-z]+\sOr\s\(T_医療費\.除外\)=[A-Za-z]+\)\);"
文字列 | 正規表現 |
[日付] | \[日付\] |
"yyyy/mm" | ""yyyy/mm"" |
半角空白の0回以上の繰り返し | \s* |
2018/1 | [0-9]+/[0-9]+ |
False | [A-Za-z]+ |
AND、または、And | A[Nn][Dd] |
(T_医療費.除外) | \(T_医療費\.除外\) |
アクセス小僧:VBAでクエリを変更(3)
http://cheese999.blog.so-net.ne.jp/2017-11-23
正規表現の構文(MSDN)
https://msdn.microsoft.com/ja-jp/library/cc392020.aspx
以上。
ヤバイぜ! ありがとうございます[__猫]
by cheese999 (2017-11-28 02:32)