ACCESS2003 数値や文字列のあいまい検索
- ACCESS2003で数値や文字列のあいまい検索について質問です。
- フィールド内に入力されている文字列から、「ひらがな」や「英語」が入力されているレコードの抽出方法を教えてください。
- 指定した条件で抽出結果を表示させたい場合、どのような方法がありますか?
- ベストアンサー
ACCESS2003 数値や文字列のあいまい検索
フィールド内に入力されている文字列から、「ひらがな」や「英語」が入力されているレコードの抽出について質問です。 ※[ニックネーム]のフィールドは、英数カナ文字が混在しています。 ======================== (テーブル) [ID] [ランク] [ニックネーム] 1 A 123456789 2 B akb48 3 A ああああ 4 B 987654321 5 C かかか123 6 B 112233 7 C 445566 8 A 778899xyz ======================== ☆上記のテーブルから、[ニックネーム]に「ひらがな」が 含まれるレコードの抽出をする。 ======================= [抽出結果] [ID] [ランク] [ニックネーム] 3 A ああああ 5 C かかか123 ======================== ☆上記のテーブルから、[ニックネーム]に「英語」が 含まれるレコードの抽出をする。 ======================= [抽出結果] [ID] [ランク] [ニックネーム] 2 B akb48 8 A 778899xyz ======================== 上記のように、クエリでの条件を指定して抽出結果を表示させたいのですが、 どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ 幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。
- KTN1123
- お礼率72% (44/61)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
■[ニックネーム]に「ひらがな」が含まれるレコード Like "*" & [あ-ん] & "*" ■[ニックネーム]に「英語」が含まれるレコード 半角文字と全角文字は別に設定が必要です。 Like "*" & [A-Z] & "*" Like "*" & [A-Z] & "*"
その他の回答 (1)
- layy
- ベストアンサー率23% (292/1222)
基本的に同じ内容なら投稿しないこと。 LIKE文だろうとわかっていて質問した?、そのわからなかった部分は何?、意図を明確にして理解していくべきでしょう。 LIKE文を学習すれば良い話だが、LIKE文使うのは基本的な機能です。
お礼
ご指摘いただき ありがとうございます。 私のLIKE文の学習が足りず、申し訳ございませんでした。 今後は、もう少し考えてから質問させていただきたいと思います。
関連するQ&A
- ACCESS2003 複数のあいまい検索
あいまい検索を複数の条件を組み合わせる方法について質問です。 ======================== (テーブル) [ID] [クラス] [名前] 1 A 野村 2 B 鈴木 3 A 小笠原 4 B 森 5 C 吉田 6 B 青山 7 C 山田 8 A 川野 ======================== ☆上記のテーブルから、[名前]に「田」または「野」または「木」が 含まれるレコードの抽出をする。 ======================= [抽出結果] [ID] [クラス] [名前] 1 A 野村 2 B 鈴木 5 C 吉田 7 C 山田 8 A 川野 ======================== Like '*田*' mLike '*野*' 、Like '*木*' のような関数を使うと思うのですが、 複数条件を組み合わせて、1つのクエリで実行できる方法を教えてください。 お手数お掛けしますが、宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- Access テーブルを繋げたり、文字を抜き出したりしたい
Access2003です。 Aテーブル Bテーブル Cテーブル 名前 ランク 備考 あああ AAA ABC いいい BBB DEF ううう CCC GHI えええ DDD JKH ※フィールド数は、各テーブルに1つのみ とあります。 これをクエリで編集したいのですが、行いたいことが2点 1)1文字挿入して繋げる AテーブルとBテーブルを繋げるのですが、間に1文字挿入したいです。 「あああ~AAA」 と、「~」を挿入 2)1文字だけ抜き出す Cテーブルの真ん中の1文字だけ抜き出す 1レコード目だと、「B」だけ抽出 基本的な操作かもしれませんが、出来ません。
- ベストアンサー
- オフィス系ソフト
- ACCESSの初歩的な質問です。
基本的な質問で申し訳ありません。 テーブルAとテーブルB両者のデータベースからIDをキーにして一致しない情報を抽出したいと考えているのですが。 テーブルAを基準にして一致しないレコードAは抽出条件から取り出せるのですが、同じクエリを使用してテーブルBの情報レコードBを取り出せないでしょうか? 簡単に言えばIDをキーにして変更前と変更後の情報を抽出したいのですが。
- 締切済み
- オフィス系ソフト
- Access #エラーについて
Access初心者です。 よろしくお願いいたします。 [前提] テーブルA のIDに紐づけてクエリBの数値をクエリCで反映させたい。 〈詳細データ〉 ・テーブルA [ID] [名称] 1 あ 2 い 3 う 4 え 5 お ・クエリB [ID] [数値] 2 10 3 20 5 40 ・クエリC [ID] [名称] [数値] 1 あ #エラー 2 い 10 3 う 20 4 え #エラー 5 お 40 ・”テーブルAの[ID]”の全レコードと”クエリBの[ID]”の同じ結合フィールドだけを含めてリレーションを行っている。 ・クエリCの算式: IIf(IsError([クエリB].[数値]),0,[クエリB].[数値]) [質問] ・クエリCの『#エラー』部分を0にしたいのですが、何か良い方法はございませんでしょうか。 ・そもそも上記のロジックは無理がありますでしょうか。 アクセスはあまりいじったことがございません。ご回答いただけますと幸いです。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- access クエリ 重複について
2つのテーブルA,Bでクエリを作成するのですが、 テーブルA,Bを別々に条件Xによって抽出した場合、抽出されるレコード数は違います。 希望する抽出結果は、 テーブルAの条件Xによる抽出結果AXに テーブルBの条件Xによる抽出結果BXを割り当てていき、 BXが足りなくなったら、以降は空白となる。 です。 前提としてレコード数は、必ずAX>BXです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Access、検索用フォームでのあいまいな検索
現在、Accessでデータベース作成をしています。 テーブル: ・テーブルA ・テーブルB (A・B間にリレーションシップ設定) クエリ ・検索クエリ(テーブルA・テーブルBを元に作成) フォーム ・検索用フォーム(デザインビューでフォーム作成より) ・検索結果フォーム(検索クエリを元に作成) また、以下のような設定を入力しました。 「検索クエリ」の抽出欄 Like "*" & [Forms]![検索用フォーム]![検索したい名前] & "*"・・(1) ※検索したい項目、すべての抽出欄に設定済 「検索用フォーム」 検索実行ボタンを作成し、マクロを設定 ・フォームを開く→「検索結果フォーム」 ・フィルタ→「検索クエリ」 上記の設定により、検索用フォームに検索文字を入力することで、その結果を「検索結果フォーム」に反映することができました。 ただ、テーブルAが元になっている項目の抽出欄のみに(1)を入力すると、うまくいくのですが、テーブルBが元になっている項目欄にも (1)を入力しようとすると、検索用フォームからうまく検索することができなくなります。 2つのテーブルを元にしたクエリからは、検索用フォームをつかった複数のOR検索はできないのでしょうか?? ご存知の方、ぜひ教えてください。 よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- Accessクエリでのグループ化
Accessクエリでのグループ化 以下の2つのテーブルが有ります。 ■社員テーブル ID 名前 1 Aさん 2 Bさん 3 Cさん 4 Dさん 5 Eさん ■受付テーブル ID 受付内容 受付日 社員ID 1 xxxxx 2010/3/1 1 2 xxxxx 2010/3/20 3 3 xxxxx 2010/4/10 2 4 xxxxx 2010/4/11 5 5 xxxxx 2010/4/15 1 6 xxxxx 2010/4/30 2 7 xxxxx 2010/5/3 4 そこで社員毎の受付数をカウントしたいと思っています。 ※受付日が2010/4/1以上5/1未満 名前 受付回数 Aさん 1 Bさん 2 Cさん 0 Dさん 0 Eさん 1 となるイメージです。 しかし、実際にクエリを作ると結果が 名前 受付回数 Aさん 1 Bさん 2 Eさん 1 と、なってしまいます。。 名前:グループ化 受付テーブルのID:カウント 受付日:>=2010/04/01 and <2010/05/01 ※社員テーブルの『ID』と、受付テーブルの『社員ID』を 紐つけており、結合プロパティでは『社員テーブルの 全レコードと受付テーブルの同じ結合フィールドのレコード だけを含める』としております。 あらかじめ、受付テーブルで受付期間の条件でクエリ を作成しておき、それと社員テーブルを紐つけた場合は イメージ通りの結果になるのですが、1つのクエリで 上記イメージでの結果を表示したいと思ってます。 可能でしょうか? ご教授願います。
- ベストアンサー
- その他(データベース)
- Accessで連続データってできますか?
Aテーブル(データベース)からBテーブルに必要なレコードを抽出して、Bテーブルで編集しています。 Bテーブルで編集したレコードをCテーブルに移動する際に、連続データのフィールドが必要になったので、テーブルのオートナンバー型フィールドを一つ追加しましたが、うまくいきません。 追加クエリでB→Cに移動させるんですが、キー違反がでてクエリが動きません。 できれば、クエリで連続データを作成して、Cテーブルに追加させたいんですが、クエリで連続データって作れるものなのでしょうか?
- 締切済み
- オフィス系ソフト
- ACCESS2007の不思議な現象に困っています!!
ACCESS2007の不思議な現象に困っています!! ACCESS2007+SharePointで開発を行っております。 SharePointとリンクしているテーブルが1つあり、そのテーブルを基にクエリを実行するのですが、 データベースウインドウを開いた直後にクエリを実行すると0レコードを返します。 再度クエリを実行すると3レコード返します。 (2回目以降は何度実行してもちゃんと3レコードを返します。) 3レコード返すのが正解なのですが、いろいろ調べてみると、どうも複数値フィールド(リンクテーブルの1つのフィールドが複数値フィールド)に対して抽出条件を設定しているところが問題というところまでは分かったのですが、対処法が分からず困っています。 (ちなみに抽出条件は Like "*OOO*" な感じです) あと、自分なりにわかったことなのですが、、、 下記のようなテーブル(例)があったとします。(列Cが複数値フィールドです) SQL: select * from TableA where 列C.Value Like "*1*" 列A 列B 列C ----------------------- 10 100 1 20 200 2 30 300 3 40 400 1,2 50 500 1,3 60 100 2,3 ----------------------- 初回クエリ実行結果 列A 列B 列C ----------------------- 10 100 1 ----------------------- 2回目以降のクエリ実行結果 列A 列B 列C ----------------------- 10 100 1 40 400 1,2 50 500 1,3 ----------------------- どうかご教授の程、よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- クエリにおける複数値の抽出について
クエリにおける複数値の抽出について access2007を使用しています。 テーブルA,テーブルBを元にクエリCを作成しました。 テーブルAには担当というフィールドがありますが,複数の値の入力を許可しており,テーブルBを値集合ソースとして設定してあります。 クエリCにおいて,以下のような抽出をしたいと考えています。 例えば, ID_所員ID_担当 001_B001,B002,B003_山田,佐藤,鈴木 002_B002_佐藤 003_B001,B002_山田,佐藤 において,所員IDの抽出条件のところにB002と入力すると,ID002のみが抽出されるといった感じです。 B002と抽出条件を設定すると,B002を含む全てのレコードが抽出されてしまいます。この場合ですと,ID001から003の全てのレコードが抽出されます。 担当のところで抽出条件を佐藤と設定し,さらに所員IDの抽出条件のところに,Len関数を使用して4文字以下とすれば…とも考えたのですが上手くいきません。 もし,良い方法があればご教示ください。
- 締切済み
- その他MS Office製品
お礼
早々のご回答をありがとうございました。 早速、試してみたところ「パラメーター入力」の画面が表示され、うまく抽出できませんでした。
補足
教えていただきたLIKE文を少し変えてみたら、希望通りの結果が得られました。 Like "*[あ-ん]*" ありがとうございました。