MS-ACCESSからVBAでSQLを作成して実行させる・フォームのテキストから検索値を取得させる方法!

スポンサーリンク
050-VBA

へっぽこヘタレシステム管理者の管理人です。

管理人はよく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

分かってしまえば、簡単なのですが・・・

ブログランキングにご協力ください!
ブログランキング・にほんブログ村へ

年月日の検索のときの【#】や

ワイルドカードのときの【*】等がからんでくると・・・

【’】や【”】との組み合わせがすぐに分からなくなります。

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

コメント

タイトルとURLをコピーしました