MS Accessの抽出方法についての質問

このQ&Aのポイント
  • MS Accessのクエリでデータの一部を抽出する方法を教えてください。
  • 特定のデータを抽出するためには、LEFT関数を使用することができます。
  • LEFT関数を使用することで、指定した桁数分のデータを抽出することができます。
回答を見る
  • ベストアンサー

MS Accessの抽出の仕方について教えていただきたいのですが・・・

Accessのクエリでたとえば下図のようなクエリがあるのですが、 ------------------------------------------------------------    製品番号   |  商品番号 |  品   名   |  品名カナ ------------------------------------------------------------ 0123456789ABCD | 789ABCD   | ボールペン(黒)| ボールペン 123456789ABCDE | 89ABCDE   | 万年筆     | マンネンヒツ     ・        ・       ・         ・     ・        ・       ・         ・ このデータの「製品番号」の上位7桁だけ抽出したくてヘルプで関数をいろいろ調べてみたのですがよくわからず困っています. 前回違う質問をさせていただいたときに,更新クエリでRIGHT関数を使って下位7桁の抽出の仕方を教えていただいたのですが,その関数の逆版(LEFT関数??)のような感じの関数は存在しないのでしょうか? ありましたらぜひ教えていただけないでしょうか. どうぞよろしくお願い致します.

  • tokin
  • お礼率67% (38/56)

質問者が選んだベストアンサー

  • ベストアンサー
  • takasgy
  • ベストアンサー率42% (30/71)
回答No.2

わかりにくい説明でしたね、ごめんなさい。 では、クエリを新規作成してみましょうか。 ご質問にあがっているテーブルのカラム名がわからないので以下のように仮定しますね。 商品テーブル: ・製品番号 ・商品番号 ・品名 ・品名カナ 抽出条件に使用するカラム:製品番号をLeft関数で7文字分とってきます。 フィールドには以下のように入力することとなると思います。 Left([製品番号],7) このフィールドの抽出条件に抽出したい文字列を入力してください。 "1234567" SQLビューでみるとこんな感じになるのでは? SELECT 商品テーブル.製品番号, 商品テーブル.商品番号, 商品テーブル.品名 ,商品テーブル.品名カナ FROM 商品テーブル WHERE ((Left(商品テーブル.製品番号,7) ="1234567")); これで、必要とするデータが抽出されると思います。 補足ですが... Left関数はの構文は以下のようになっていますので、文字列の部分にテーブルのカラム名と必要な文字数を記述してやります。 LEFT(文字列, 文字数) ヘルプで"LEFT関数"を検索すると引っかかると思います。

tokin
質問者

お礼

takasgyさんありがとうございます! 丁寧な説明でとてもわかりやすく,すぐに試してみましたところ成功しました. また,大変勉強になりました. 本当にありがとうございました! m(__)m

その他の回答 (1)

  • takasgy
  • ベストアンサー率42% (30/71)
回答No.1

Left関数ありますよ。 SQLならこんな感じ ========================== SELECT t1.aa, t1.bb, t1.cc FROM t1 WHERE ((Left(aa,5) ="12345")); =========================================== また、Likeを使用することでも同様の機能が実現できます。 SQLならこんな感じ ========================== SELECT t1.aa, t1.bb, t1.cc FROM t1 WHERE (((t1.aa) Like '12345*')); =========================================== クエリを作成してSQLビューで確認してみてください。

tokin
質問者

補足

早速のご回答ありがとうございます. 私の知識不足で申し訳ないのですが,SQLがよくわからないのでおかしなことを言ってましたらすみません. ・教えていただいたSQLを作成したクエリの下に追加してみたのですが,実行すると「SQLステートメントの後に文字が見つかりました.」と言う警告が出てその先に進めません,作成したクエリの中に埋め込んでみたりもしたのですが、やはり同じメッセージが出てしまいました. 入力するところが間違っているのでしょうか? 申し訳ありませんが、アドバイスお願い致します.

関連するQ&A

  • MS Accessの抽出方法について教えてください(再質問)

    MS Access2000ですが、データが5000件くらいの図(1)のようなクエリがあります。 図(1) ----------------------------------------------------------  製品番号  | 商品番号 |  名 称  | 名称カナ | ---------------------------------------------------------- 0123456789ABCD | 7890ABCD | ジーパン  | ジーパン  |     ・       ・      ・      ・     ・       ・      ・      ・ 図(1)の製品番号の上位7桁を同じクエリ内に、品質番号として抽出(図(2))したいと思っております。 図(2) -----------------------------------------------------------------------  製品番号  | 品質番号 | 商品番号 |  名 称  | 名称カナ | ----------------------------------------------------------------------- 0123456789ABCD | 0123456  | 7890ABCD | ジーパン  | ジーパン  |     ・       ・      ・      ・      ・     ・       ・      ・      ・      ・ なお、元となるテーブルには毎日他から新しいデータがインポートされるので、更新クエリで(Right[製品番号],7)を使って抽出してもデータをインポートするたびに図(1)に戻ってしまい使えませんでした。 質 問 *図(1)から図(2)のように同クエリ内への抽出の仕方。 *テーブルに新しいデータがインポートされても図(1)に戻らない方法 を教えてください。 (Accessもですが、VAB・VBは初心者ですので、できるならば使用しない方法でお願いしたいのですが・・・) 質問がややこしくなり申し訳あませんが、どうぞよろしくお願いいたします。

  • 【Access2000】抽出条件の設定について

    Access2000の抽出条件について質問です。 下記のようなテーブルがあります。 番号が3桁、5桁のものが混在しています。 ※3桁、5桁以外のものはありません。 キー | 番号 | 名前 001 | 11029 | りんご 002 | 332 | みかん 003 | 10154 | ばなな 番号を加工する条件として、 A. 5桁の場合、頭から2桁目から3桁の値を取る B. 3桁の場合は、そのまま値を取る があります。 フィールドの記述は A. 番号加工後: Mid(Left([番号],2) ,3) というところまでは分かりました。 上記の条件をもとにクエリで実行したいのですが、抽出条件はどのように書けばよろしいでしょうか? 識者の方、ご教示いただけますと幸いです。

  • アクセスでの抽出について

    皆様 よろしくお願いします。 現在 製品の売上を集計していますが、売上一覧の中から特定の製品のみを抽出したいと考えています。 具体的には、製品名は数字とアルファベットの組み合わせ(18桁)となっています。 抜き出したい条件は、製品名の頭数桁(3~10桁程度)です。 例)  抜き出し条件 ・・・ ABC*  抜き出したいデータ ・・・ ABC,ABC11,ABC12 (頭数桁が合致するもの全てを抜き出したいんです) しかしながら、対象となる売上データは2万件程で、抜き出し条件も400件ほどあります。 Excelで断念し、アクセス2000で抽出クエリまではたどり着きました。 抽出の条件をファイルで提供できればできるのかな?と思いましたが、上手く行きません。 上記の他 いい方法があればぜひ教えて下さい!! よろしくお願いしますm(_ _)m

  • Access2000 抽出について

    どうしてもわからないので教えてください。 選択クエリで、「フリガナ」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![カナ検索]),"*",[Forms]![F_顧客検索]![カナ検索] & "*") でフォームからクエリを実行させるようにしているのですが、 フリガナが空白のレコードは抽出されてくれません。 「*」でなく、なんと入れればいいのでしょうか? ちなみに他に、「自宅電話番号」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![電話検索]),"*" & "*",[Forms]![F_顧客検索]![電話検索] & "*") など、似たような感じで抽出をかけています。 よろしくお願いします。

  • アクセスの抽出クエリについて

    従業員の労務管理をアクセスで行っています。 個人個人が社員コードを入力して自分の勤怠を処理しますが、1人だけ不具合がおきています。 このような抽出クエリで特定のデータに限って抽出しない場合、どんな原因が考えられるのでしょうか。対応策をご存知の方ヘルプミーです!! テーブル テキスト型でコード番号を登録 クエリ  コード番号を指定して抽出 コード番号は0001~1000といった四桁のコードを使用 『0029』コードのみ抽出が不可能 (1) 登録してあるデータのコードを直接コピーして抽出条件に貼り付けると『"0029』と頭側一方のみ『"』が付き抽出することができる。 (2) 次ににキーボードから『0029』と入力すると『"0029"』となり、抽出できない。 (3) キーボードから『"0029』と入力すると抽出できない。 なぜか??        

  • 条件抽出 [ACCESS 2000]

    テーブルには6項目/1セットのデータがあります eg 1:製品番号 8桁整数 [テキスト型] 2:品名        [テキスト型] 3:入庫数       [テキスト型] 4:出庫数       [テキスト型] 5:在庫数       [テキスト型] 6:備考        [テキスト型] が在ります。 ここで教えていただきたいのですが 項目1:製品番号(8桁整数)が  (1)下2桁が「00」    の製品番号のデータ1セット(6項目)  (2)5桁目が「3」    の製品番号のデータ1セット(6項目) を抽出したいのです  抽出方法は特に指定は無いのですが出来るならば、 (1)の条件を満たし抽出されたデータ(1セット)を 同じテーブルの上の方に一括して表示したいです 宜しくお願い申し上げます

  • 抽出する文字数が異なる場合

    Access2003 クエリを作成中です。 「アドレス」テーブルの「電話番号」フィールドの編集作業をしていますが、市外局番のみを取り出す、つまり、-(ハイフン)より、前を取り出したいです。 郵便番号の場合、3ケタ-4ケタの為、Mid関数を用いることができたのですが、電話番号の場合、それが出来ずに困っています。 03-1234-5678 090-1234-5678 0000-1234-5678 などがあり、郵便番号のように Mid(アドレス!郵便番号,1,3) AS 郵便3ケタ Mid関数を使って、○文字、抽出することができません。 電話番号は、テーブル「アドレス」/フィールド「電話番号」です。

  • アクセスのデータ型えらーについて

    いつも助けて頂きありがとうございます。 今回は日付型のエラーについて質問があります。 dateserial関数を使って8ケタ数字を日付に変換したのですが、クエリやフィルタでの抽出の時にエラーになってしまいます。 受付日は8ケタの数字型(長整数)になっています。 dateserial(left([受付日],4),mid([受付日],5,2)+1,1) これを日付でたとえば #2011/1/1#等で抽出しようとすると型が一致しないエラーが出てしまいます。 isdate(dateserial(left([受付日],4),mid([受付日],5,2)+1,1) を見ると-1で日付としては認識しているとは思うのですが。 何が原因か、ご助言お願いします。 )

  • access2000での抽出条件

    DBから選択クエリーを作ってある条件を満たすデータを抽出したいのですが、レコードの量が多くて(10万単位)スぺックの悪いPCなので並べ替えをするにも固まってしまって困っています。 同じ名前を持つレコード群の中で最新の日付のレコードだけを抽出する関数ってありますか? 例えば 発生日,名前,種類,住所,電話番号 の5つのフィールドがあり、その中で同じ"名前"を持つ"発生日"の中で最新の日付だけを抽出する、として教えていただけないでしょうか。 よろしくお願いいたします。

  • ACCESS 2010 検索抽出し表示するには?

    ACCESS 2010 検索抽出し表示するには、 クエリ作成をどうすればよいでしょうか、お教えください。 DB名→testA テーブル名→テーブルA テーブルAには、下記3つのデータを入力した情報が入っています。 ・製品番号 ・製品名 ・メモ 製品番号が一致した場合、 製品番号/製品名/メモが 表示するようにしたいです。 よろしくお願いいたします。