Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


666 / 2272 ツリー ←次へ | 前へ→

【10618】複数のキーワードで抽出する方法? nawa 08/10/20(月) 23:50 質問[未読]
【10619】Re:複数のキーワードで抽出する方法? トキドキ徹 08/10/21(火) 11:46 回答[未読]
【10620】Re:複数のキーワードで抽出する方法? nawa 08/10/21(火) 15:59 質問[未読]
【10621】Re:複数のキーワードで抽出する方法? nawa 08/10/21(火) 22:41 お礼[未読]

【10618】複数のキーワードで抽出する方法?
質問  nawa  - 08/10/20(月) 23:50 -

引用なし
パスワード
   続けての書き込みになってしまいますが、お許しください。
抽出クエリでデータの抽出をしています。

Like[Forms]![検索フォーム][キーワード1]&"*" or Like[Forms]![検索フォーム][キーワード2]&"*"
というように、検索フォームの中に複数のテキストボックスを作成すればできることはわかったのですが、

ひとつのテキストボックスで複数の検索をかけたいのですが、どのようにすればいいのでしょうか?
たとえば、

キーワード1=りんご  キーワード2=みかん  で抽出するところを
キーワード=りんご + みかん 
キーワード=りんご or みかん  と入力して抽出したいのです。

ご教授ください。よろしくお願いします。

【10619】Re:複数のキーワードで抽出する方法?
回答  トキドキ徹  - 08/10/21(火) 11:46 -

引用なし
パスワード
   ▼nawa さん:

split関数を使えば、テキストデータを分割できます。

簡単な例です。
Private Sub sub_keyword()
  Dim myKeyWord() As String
  Dim myWhereSTR As String
  Dim myLooP As Long
  
  Const myTesWrd As String = "りんご + みかん"
  
  
  myKeyWord = Split(myTesWrd, "+", , vbTextCompare)
  
  For myLooP = LBound(myKeyWord) To UBound(myKeyWord)
    myWhereSTR = myWhereSTR & " or Like '" & Trim(myKeyWord(myLooP)) & "*'"
  Next myLooP
  
  myWhereSTR = Mid$(myWhereSTR, 5)
  
  Debug.Print myWhereSTR
End Sub

"+" の部分を "or" に換えても良いですし、スペースも使用可能です。
ただし、"+"(または"or")の文字の検索は出来ません。

参考までに。

【10620】Re:複数のキーワードで抽出する方法?
質問  nawa  - 08/10/21(火) 15:59 -

引用なし
パスワード
   ご返信有難うございました。
VBAが完全に初めてのことなので戸惑っています。
いろいろsplit関数でHP検索して勉強してみましたが、よくわかりませんでした。
ただ、フォームの中のコードビルダというところに記入するのだろうなとわかるようになりました。

また、一つ一つこの意味を理解しようとして努力中です。

Subという名のテキストボックス
   myKeyWord() を文字列と宣言します
   myWhereSTR を文字列と宣言します
  myLooP を長整数型と宣言します  
   myTesWrd を "りんご + みかん" と宣言します
   myKeyWordは、myTesWrdを+で分割したものです。
   myLooPは最小から最大まで行います。
  
とここまでは、本を見たりHP参考にして理解しました。
ここから先の意味が理解できませんでした。
どういう意味なのでしょうか?検索をかける対象はどこに記入すればいいのでしょうか?
つまり、このコードビルダをつかって、「データベースクエリ」のなかの「果物名フィールド」の中からフォームに入力した文字(例ではりんごとみかん)を抽出させるにはどうしたらいいのでしょうか?

Private Sub テキスト_click()
  Dim stDocname As String
  stDocname="検索"
  DoCmd.RunMacro stDocname

というようなものを入れないとだめなのでしょうか?

自分のようなド素人に教えるのは大変かとおもいますが、なにとぞよろしくお願いします。

【10621】Re:複数のキーワードで抽出する方法?
お礼  nawa  - 08/10/21(火) 22:41 -

引用なし
パスワード
   いろいろなHP勉強しました。
解決しました。
コマンドボタンを作成し、そこのイベントプロシージャに入力するんですね。
まだ、暗号の意味を理解はしていませんが、検索できてしまいました。
有難うございました。

今後も少しずつ理解できるよう努力したいです。

有難うございました。

666 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078198
(SS)C-BOARD v3.8 is Free