へっぽこヘタレシステム管理者の管理人です。
管理人はよくMS-ACCESSを使うのですが・・・
VBAを組む時にすぐに忘れてしまって、ネットググっては作りこむの繰り返しです。
わりと触る機会はあると思っているのですが、何故か覚えられません。
なんと記憶力がないのでしょうか?
さて、よく使うVBAで・・・
フォームのテキストボックスから検索値を取得してSQLに渡して・・・
クエリを実行するというものです。
結構使っているですが、VBAは、すぐに忘れます。
基本的なSQLは次のとおりです。
'DB検索
Dim db1 As Database
Dim query1 As QueryDef
Dim sql1 As String
Set db1 = CurrentDb
Set query1 = db1.QueryDefs("Query_Name")
sql1 = sql1 & " SELECT" & vbNewLine
sql1 = sql1 & " AA.COLUMN1," & vbNewLine
sql1 = sql1 & " AA.COLUMN2," & vbNewLine
sql1 = sql1 & " AA.COLUMN3," & vbNewLine
sql1 = sql1 & " AA.COLUMN4," & vbNewLine
sql1 = sql1 & " AA.COLUMN5" & vbNewLine
sql1 = sql1 & " FROM" & vbNewLine
sql1 = sql1 & " Table_NAME AA" & vbNewLine
query1.SQL = sql1
docmd.openquery"Query_Name",acnormal
これに・・・
【Where句】を使って検索条件を追加していきます。
'DB検索
Dim db1 As Database
Dim query1 As QueryDef
Dim sql1 As String
Set db1 = CurrentDb
Set query1 = db1.QueryDefs("Query_Name")
sql1 = sql1 & " SELECT" & vbNewLine
sql1 = sql1 & " AA.COLUMN1," & vbNewLine
sql1 = sql1 & " AA.COLUMN2," & vbNewLine
sql1 = sql1 & " AA.COLUMN3," & vbNewLine
sql1 = sql1 & " AA.COLUMN4," & vbNewLine
sql1 = sql1 & " AA.COLUMN5" & vbNewLine
sql1 = sql1 & " FROM" & vbNewLine
sql1 = sql1 & " Table_NAME AA" & vbNewLine
sql1 = sql1 & " WHERE" & vbNewLine
'検索条件が年月日の場合
sql1 = sql1 & " AA.COLUMN3 = #" & Me.TextBox1 & "#" & vbNewLine
'検索条件がテキストの場合
sql1 = sql1 & " AND AA.COLUMN4 LIKE '" & Me.TextBox2 & "'" & vbNewLine
'検索条件がテキスト(あいまい検索)の場合
sql1 = sql1 & " AND AA.COLUMN5 LIKE '*" & Me.TextBox3 & "*'" & vbNewLine
query1.SQL = sql1
docmd.openquery"Query_Name",acnormal
分かってしまえば、簡単なのですが・・・
年月日の検索のときの【#】や
ワイルドカードのときの【*】等がからんでくると・・・
【’】や【”】との組み合わせがすぐに分からなくなります。
コメント