
Access2000Proを使用しています。
メインフォームのテキストボックスを使って、指定のフィールド内に選択された言葉を含んだフォームを呼び出すコマンドを作ろうとしています。
その場合、
1)該当するQueryにはどのようなコードを書いたらよいでしょうか?例えば
Like "*" & [Forms]![MainForm]![NameSearch:] & "*"のようにすれば名前の一部でもあればそのフォームを引き出すことができると思いますが、これをやや複雑にして、(a)複数の言葉を指定して、その両方が含まれているもののみのフィールドを検索したり、或いは, (b)一方のみを検索 (c)大文字・小文字による区分けは可能か?は如何でしょうか?
2)対象フィールドはデータ型がテキスト型でもメモ型でもどちらでも検索可能でしょうか?両方共可能であるならば、その差(長短所)はどこにあるのでしょうか? メモ型でOKとなればかなり長い文章からも呼び込めることになりますが検索時間がかかると思われます。
3)一つの検索したい言葉に対し、複数のフィールドをその対象とする場合、はどのようにしたら良いでしょうか?
宜しくご教授下さい。
No.1ベストアンサー
- 回答日時:
あくまでも通常の場合についての回答です。
1)
(a)
Select Field001, Field002, Field003
From Table001
Where
Field001 Like If(RTrim([Forms]![MainForm]![NameSearch]) = "", "%", "%" & RTrim([Forms]![MainForm]![NameSearch1]) & "%")
And
Field001 Like If(RTrim([Forms]![MainForm]![NameSearch]) = "", "%", "%" & RTrim([Forms]![MainForm]![NameSearch2]) & "%")
(b)
Select Field001, Field002, Field003
From Table001
Where
Field001 Like If(RTrim([Forms]![MainForm]![NameSearch]) = "", "%", "%" & RTrim([Forms]![MainForm]![NameSearch1]) & "%")
Or
Field001 Like If(RTrim([Forms]![MainForm]![NameSearch]) = "", "%", "%" & RTrim([Forms]![MainForm]![NameSearch2]) & "%")
(c)
大文字の場合、UCase関数、
小文字の場合、LCase関数が使えるはず。
2)
どちらも可能ですが、
どちらにしても遅くなります。
インデックスも意味ありませんし。
3)
1)の(b)のWhere句のNameSearchを同じにして、
Fieldを変えれば出来ませんか?
こんなのでいいのかどうかわからないので、
自信無しです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) Access 複数条件検索の設定が上手く行きません 1 2022/07/22 20:37
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#での複数フィールドの条件付...
-
NULLを含む文字列の結合で...
-
(ADO)フィールド名から取得し...
-
DataGridViewでのデータ抽出に...
-
【perl】特定の条件を元に文字...
-
指定のフィールド内に選択され...
-
クリスタルレポート
-
DBへのinsert文作成方法
-
フィールドの分割
-
PHP&MySQLでチェックボックスの...
-
オートナンバー型を抽出条件に...
-
多数のフィールドをSQLで書き込...
-
レコード数
-
【Win32 API】 フックしたメッ...
-
抽出条件の表現方法(アクセス...
-
TableAdapter.Fill
-
PDF-acrobat数値ありフィールド...
-
エクセルVBAでSQLを使ってアク...
-
delphi5について。
-
SQLでフィールド番号を指定する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INT64対応のprintf系関数はあり...
-
accessでフィールド追加のあと...
-
2つ目のレコードの値を取得す...
-
Accessのフィールド名に半角括...
-
DataTableに特定のフィールドが...
-
テーブルのデータ型の変更がで...
-
ACCESSデータベースにV...
-
クリスタルレポート(8.5)の書式...
-
クリスタルレポートで文字列の...
-
日付と文字列を条件としてDLook...
-
Access 2010で実行時エラー3061
-
ADOでNullフィールドの抽出
-
Access クエリで変数を参照する...
-
NULLを含む文字列の結合で...
-
AccessのDAOでフィールド名を配...
-
アクセス ADO Null以外のレコ...
-
クリスタルレポートで0件時の表示
-
FTPサーバーから受信したファイ...
-
C#で変数名の取得
-
c言語で自分のホームディレク...
おすすめ情報