Accessテーブルで文字列操作したい-不一致データの抽出方法

このQ&Aのポイント
  • Excelからインポートされたデータとデータベース上のデータの不一致を解消するために、Accessテーブル上で文字列の操作を行いたいです。Excelからインポートされたデータは全て大文字であり、文字の後に半角1スペースがありますが、データベース上のデータは全て小文字であり、スペースがありません。
  • そこで、Excelからインポートされたデータをテーブル上で「文字を全て小文字に変換」し、「不要なスペースを削除」したいのですが、具体的な方法がわかりません。クエリ上で文字を小文字に変換することはできましたが、変換後のデータをテーブルに保存する方法がわかりません。
  • この問題に詳しい方、アドバイスをいただけると幸いです。Accessテーブル上での文字列操作方法や変換後データの保存方法について教えてください。
回答を見る
  • ベストアンサー

Access のテーブル上で文字列の操作をしたい

Excelからデータをインポートし、他のデータベースとリンクしているデータとの不一致データを抽出したいのですが、 Excelからインポートしたデータは ・全て大文字 ・文字の後に半角1スペース に対し、データベース側は ・全て小文字 ・文字の後ろにはスペースがない の為、全て不一致となってしまいます。 Excelからインポートしたデータをテーブル上で「文字を全て小文字に変換」し「不要なスペースの削除」をする事はできませんでしょうか? クエリ上で文字を小文字にする事はできましたが、変換した(テーブルにフィールドがない)データとクエリする事ができず煮詰まってしまいました。。 どなたか教えてください。。

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

  • ベストアンサー
  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

Excelからインポートしたテーブルをtable1、 他のデータベースとリンクしているデータをtable2、 氏名フィールドでリンク とします。 SELECT table1.*, StrConv(Trim([氏名]),2) AS 氏名小文字 FROM table1; このクエリをクエリ1とします。 クエリ1の氏名小文字フィールドと、table2の氏名フィールドでリンク 結合のプロパティを2に設定 table2の氏名の条件にIs Null これでどうでしょうか。 頑張ってくださいヽ(^。^)ノ

yukikok
質問者

お礼

完璧です! ありがとうございました!!!

関連するQ&A

  • アクセス2010のインポートについて

    調べてみてもわからなかったので教えてください。アクセス初心者です。 アクセスでデータベースを作成しようと試みています。 あるエクセルデータをアクセスでテーブルとして使用したく、インポートしました。 なにやら、思惑とは違い、一部のデータが、エクセルの所定の列とはフィールドがずれていて、 エクセルデータを確認したところ、一つのセルの中に、半角カンマが入っていました。 どうやらこのことが原因みたいなのですが、最初は半角カンマを他の文字に変えようかとも検討したのですが、半角カンマが入った状態でインポートした方がいいという結論に達しました。 どうしたら上記のデータを半角カンマをとらずにフィールドがずれることなくアクセスへインポートできるでしょうか

  • Access2000のクエリで全角文字を半角にするには?

    もともとのデータが全角英数字になっているフィールドを半角に変換したいのですが、クエリー実行時に変換できますでしょうか? 文字列関数のASCかな?とも思い、やってみたのですが、うまくいかず、とりあえず元のテーブルのデータを編集を置換でもって半角にしました。 でも、出来ればテーブルのデータは変更したくないので、クエリーでやる方法はありませんでしょうか? あまり専門的なことは分かりません。VBAは使ったことがありませんのでよろしくお願いします。

  • access2003 「#エラー」を文字列にしたい

    テキスト型に入れた値を数値に変換し、「#エラー」を文字列にしたい テーブル1のデザインビューで ・フィールド1 テキスト型 ・主キーなし として データを 1 2 あ を投入します。 そして SELECT CLng(テーブル1!フィールド1) AS 数値型に変換 FROM テーブル1; クエリを作りました。 1と2は数値に変換されますが、文字列を入れた「あ」は 「#エラー」になります。  「#エラー」を「未設定」という文字列にしたいのですが どうすえばいいのでしょうか? よろしくお願いします。

  • 100万レコード規模のaccessDBテーブルからNullを置換する方法

    半角スペースを含むcsvファイルを、accessのテーブルとしてインポートした際、スペースがnullとして扱われてしまいます。 これを0文字の空白に置換しているのですが、時間がかかり、かつ、成功したのかどうかよく分からないために困っています。 下記の2つの方法でnullを0文字の空白に変換してみたのですが、レコード数が多すぎるのか、置換がすべて成功していない模様です。  テーブルのフィールドを選択し、「置換」する  フィールドのnullを見つけ、更新するクエリーを書く できれば、インポート元のcsvファイルやインポート後のテーブルを分割させずにメンテナンスを行いたいのですが、こういう場合に有効な対処方法というのはどのようなものがあるのでしょうか?  1.置換を高速化するアイディア  2.インポート段階で変換する方法があるかどうか?  3.置換結果を確認する方法 私は今までデータベースというものを全く使ったことがないので、これ以上のことがわかりません。ぜひ、専門家のご意見を頂きたいと思います。 よろしくお願いいたします。 【csvファイル仕様】  データ規模:100万行、1行あたり10~20列   元データはフィールド毎に固定長  データ形式:テキスト型、長整数型が混在   複数のテキスト型フィールドに半角スペースを含む   長整数型のフィールドは0を含む 【mdbファイル仕様】  マスタテーブルを格納する。他のmdbにあるクエリから参照される。  テーブル形式   テキスト型フィールド:255文字(今のところ・・・)   数値型フィールド:長整数型  規模:   インポート後のmdbサイズは1テーブルあたり300MB程度。   そのmdbは同規模のテーブルを最高3程度まで保持する。 【使用環境条件】  OS:windows XP 最新SP  DB:Access 2003   mdbファイルはネットワーク上にある。   ローカルHDDにコピーして作業することは可  CPU:Celeron 2.0GHz  Memory:2GB Memory  HDD:空き40GB以上

  • ACCESS2000でExcelから特定フィールドをインポートしたい

    ACCESS2000でExcelから特定のフィールドをインポートしたいのですが、 うまくいきません。 Excelはフィールド数が254フィールドもあり、 テーブルにインポートしたいフィールド数は30フィールドです。 Excelでは特定フィールドをインポートすることができないようなので、 一時テーブルに全てのフィールドをインポート後 必要なフィールドだけ取り出そうとやってみたのですが、 以下のコードを実行すると、13のフィールドが「解析不能なフィールド」と インポートエラーが出てしまいます。 DoCmd.TransferSpreadsheet acImport, 8, "TEMPテーブル", "c:\data.xls" また、Excelファイルをcsv形式に変換して、インポート定義を作る方法も やってみたのですが、インポート定義作成時に 「フィールド'ID'はインポートまたはエクスポートしようとしている テーブルまたクエリに存在しません」 というエラーが出てしまいます。 どうしたらインポートできるでしょうか。よろしくお願いします。

  • ACCESS2000 クエリをテーブル化するマクロ(VBA)おしえてください

    こんにちは。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1801262 の質問者です。コレの続きを教えてください。 まとめますと、クロス集計クエリや、ユニオンクエリをそのまま扱うと、データや計算式がからまってエラーになったり、処理が遅かったりするので、テーブル化してからいじりたいのです。 マクロは データベース変換 変換の種類…インポート データベースの種類…MS ACCESS データベース名…L:\パス\パス\ファイル名.MDB オブジェクトの種類…クエリ オブジェクト名…クエリ名 変換先名…テーブル名 テーブル構造のみ変換…いいえ としてみましたが、クエリとしてインポートされてしまいます。 いちどCSVか何かでエクスポートしてから、テキスト変換するという手もありますが、もっとスマートな方法がありましたら教えてください。 VBA も勉強中なので、VBAでお答えいただいてもけっこうです。 よろしくお願いします。

  • アクセスのクエリで

    あるテーブルはエクセルからインポートしていますが、全てのフィールドが空白というレコードが多数存在します。 これをクエリで(他に方法があればどの様な方法でもよいです)全てのフィールドが空白のレコードは表示しない様にする事はできますか? これを更新クエリにして、新しく全て空白のフィールドのレコードが無いテーブルを新たに作ろうと考えています。 教えて下さい。よろしくお願いします。

  • 【ACCESS】文字列を抜き出したい

    初心者ですが。分かる方お願いいたします(__)(至急ですみません) 会社の専用システムからCSVデータをダウンロードしました。 その時点で、「商品コード」のフィールドが「"=0123456"」 のようなってしまっています。(「0123456」のように数字だけになっていてほしい) CSVの段階で、文字列関数を使用して数字だけにしてしまえばいいのですが、何万件とデータが重く、ファイルも複数あることから時間がかかってしまいます。 そこで、ACCESSにデータをインポートして加工しようとしましたが、どのようにすれば数字だけ抜き取ることができるでしょうか。 Right関数、left関数も考えましたが、商品コードの文字数が一定していないためできません。 インポートした時点で商品コードのフィールドがテキスト型にされていたので、数値型にすれば数字だけになるかな?と思ってやってみましたがデータがすべて失われてしまいました・・。 良い知恵をお貸しください。 どうぞよろしくお願いいたします。 それをACCESSにインポートしてテーブルを作成致しました。

  • アクセス テーブル作成クエリ

    アクセスです。 元のテーブルには「内容」と言うフィールドがあり、データ型をメモ型にしています。 値は255文字以上入れています。 そのテーブルを元にテーブル作成クエリで新規にテーブルを作成すると、 メモ型の内容フィールドは、テキスト型になり、全ての文字が入りません。 元がメモ型のフィールドでもテーブル作成クエリでテーブルを作成しても テキスト型にならないようにする方法はありますか?

  • ACCESS、Excel、秀丸で文字列操作

    ACCESSのクエリ結果をExcelに貼り付ける時に、一部文字列の変換を したいと思ってます。 もともとのACCESSデータはテーブル上で半角英数字の12桁で、 それをExcelにコピーする際には4桁ごとにハイフンを入れます。 (例) ACCESS 1234567890ab ↓ Excel 1234-5678-90ab ちなみに、この項目は、空白の場合もあります。 で、今は、一度クエリ結果を秀丸に取り込んで、 ・空白行をダミー文字列(999999999999)に置換 ・記録機能で(右に4つ移動、-、右に4つ移動、-、次行へ)  とやって、それを最終行まで再生 ・ダミー文字列(9999-9999-9999)を削除 ということをやって、Excelに貼り付けとしています。 結構面倒なので、もう少しスマートなやり方がないかと思っているの ですが、ACCESS、Excel、秀丸、どれでもいいので、 もしくは、他のフリーソフトできれいにやる方法を教えてください。

専門家に質問してみよう