• ベストアンサー

Accessの主キーって

WEBにあるシステムから必要なデータをダウンロードしてそれをAccessに取り込んで作業を効率よくしたいと思っているのですが、WEBのシステムでは、大文字、小文字で分けてくれるのでそれを主キーとして処理していますが、Accessに取り込んだ際に主キーが設定できず、調べたら、大文字を小文字を区別しない為、主キーになる部分が重複していました。 Accessで大文字と小文字を区別して主キーにする事って可能でしょうか? 分る方いたら是非教えて下さい。よろしくお願い致します。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

外部データをACCESSにインポートされているのでしょうか? テキストインポートウィザードでフィールドオプションを設定する画面で「主キー」といっているフィールドのインデックスを「重複あり」としてやれば取り込みが可能になります。 この場合本当の主キーとしてレコードIDが自動付番されます。

ysko614
質問者

お礼

後から再度新しいデータを追加する事があるので、自動連番でなく、WEB側の大文字小文字まじりのフィールドを主キーにできればと思ったのですが、そのままではだめですねぇ。 書き込みありがとうございました。

その他の回答 (2)

  • luan78zao
  • ベストアンサー率55% (19/34)
回答No.3

> Accessで大文字と小文字を区別して主キーにする事って可能でしょうか? 専門家が不可能と断言されているので、異を唱えるのは恐れ多いのですが、文字コードを一意キーにすれば区別は可能です。 英字の大文字と小文字は文字コードが異なりますので。 どシロウトの見解なので、専門家の回答の足元にも及ばないと思いますが、ご参考まで・・・。

ysko614
質問者

お礼

そのままでは使えないようですね。なので、取り込む前に文字を大文字と小文字で置換えをしようかと思いましたがコードで区別と言う方法もあるのですね! 参考になりましたありがとうございました。 もう少し調べてみますね。

  • ArukuMail
  • ベストアンサー率22% (115/510)
回答No.1

>>Accessで大文字と小文字を区別して主キーにする事って可能でしょうか? できません

ysko614
質問者

お礼

ありがとうございます。 アクセス自体では大文字、小文字は区別できないんですね。 ありがとうございました。

関連するQ&A

  • Accessの主キーについて

    お願いいたします。 Accessの主キー設定について教えてください。 主キーの役割は、テーブルの中のレコードを区別 するための機能だと思いますが、 フィールドのデータ型をオートナンバー型にして おけば主キーの設定は必要ないのではないでしょう か? 主キーを設定する理由としては、参照整合性のため に行うという考え方で良いでしょうか? また、複数の主キーを設定するという場合のテーブ ル構成はどのような場合のシステムなのでしょうか? どうぞ教えてください。

  • Access 主キーについて

    Accessでテーブルを作りCSVファイルをテーブルへ読み込みました。その時は主キーを設定しませんでした。1000件あるデータは1000件分読み込めました。 次にテーブルのデータを消して、主キーを2フィールドに設定して、同じように1000件分のデータを読み込んだら950件分しか読み込めませんでした。これは50件は重複するデータがありますよということなのでしょうか?

  • ACCESS2000の主キー重複について

    いつもお世話になっています。 早速ですが、お教えください テーブル名:AMaster フィールド名:B があります。 「B」は主キーになっていまして、ユーザーが任意に数字をいれることになります。 主キーになっていますので基本的には重複しないのですがユーザーの押し間違いなどによって重複してしまった場合 [Microsoft][ODBC Microsoft Access Driver] インデックス、主キー、またはリレーションシップで値が重複しているので、テーブルを変更できませんでした。重複する値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください。 といったエラーメッセージが出ます。これは出ても構わないのですがツールバーの「戻る」でしか今後の操作ができなくなってしまうので(ユーザーはPC超初心者)何らかの形でエラーメッセージとともに任意のページへ戻れるようにしたいと考えています。 つきましては、「B」フィールドにあるデータとこれから入力される数値が重複していたら・・・という記述をお教えいただきたいと思います。 ASPにて作成していますのでそれに対応した記述ですとありがたいです。 過去のログに似たようなものがありましたがこちらを参照してもボクにはわかりませんでした。 http://okweb.jp/kotaeru.php3?q=357614 ボクも何分初心者なのでわからないことだらけですがよろしくお願いします。

  • ACCESSにインデックス(主キー)のあるテーブルを作りたい

    元データがEXCELでそのデータを利用し、 ACCESS内にマスター用(品目マスタ)のテーブルを作り、 1番目の部品コードというフィールドを インデックス/主キー(重複しない)にして 2番目、3番目の項目の値をえられるように しようとしていますが、EXCELからの元データを インポートしようとしても部品コードフィールドが インデックス/主キーに設定できません。 EXCEL内で部品コードが重複しないように削った つもりです。 部品コードが重複していなくても、いけない文字列 があってインデックス/主キーにできないのでしょうか? ※詳細 以下のようなテーブルをつくり、 284-A80と入力したら製品部品名称の「基板」と いう値や製品分類の「LED」という値を得ようと している。 部品コード    製品部品名称   製品分類 284-A80      基板        LED 7841P20      ヨーク       ブザー CL-270-CD     LED         LED HSDL-3201#001   センサー     センサー ……約17000レコードぐらい ただし、部品コードの値がもっとごちゃごちゃして いて、「*」、「スペース」「#」「_」「/」などや カタカナ文字のものも含まれていたりします。 なぜ、上記の部品コードをインデックス/主キーとして 設定をおこなったテーブルとしてインポート できないのですか?

  • 「主キー以外重複データ(フィールド多数)」の抽出

    タイトルのような抽出方法が必要になり、その出し方で困っています フィールドが100以上ある大きなテーブルが複数(フィールド構造は全く同じ)あり、 そのレコードを一つにまとめる為重複データを抽出し削除したいのです 条件は「主キー以外の全てのフィールドのデータが一致してる重複データ」であり、 それをどうやればAccessの機能で出せるのか悩んでいます。 最初はクエリでグループ化して出そうと思ったのですがこのフィールド数では全て グループ化はできず、 VBAで一行ずつループで処理しようにもキー以外の全フィールド一致とする検索条件のSQLのWHERE式が複雑すぎると出て処理できませんでした フィールド数が多大なテーブルで主キー以外完全一致の重複レコードをうまく抽出するにはどうすればいいのでしょうか?

  • Access 主キーの変更について

    調査データの集計、蓄積用のDBを制作しております。 制作しているDBは主キーに県コードが含まれています。 そのため、調査データの住所に変更があるとコードを変えなければなりません。 AccessでのDBはほぼ完成しており、今からコードの形態を変更することは避けたいです。(もともと古い独自のDBのデータを流用しています。) 現在、主キーに県コードが含まれていますが、それとは別に県コードフィールドを設けています。 ※コードの形態 (先頭の二桁又は一桁が県コード、コードは4桁又は5桁) 例   主キー 北海道 1001 東京  13199 沖縄  47001 新規のデータを入力する際に主キーを入力しているのですが VBAの知識がないので県コードは個別に入力しています。 住所が変わり県が変更になった場合主キーを変更する必要が あるのですが一対多でリレーションシップをいくつもしてあり サブフォームなども使用してます。 主のフォームで主キーを変更した場合、関連付けられたレコードの主キーも変更されるようにしたいのですが可能でしょうか?

  • シーケンスを使わずに主キーを発行したい

     お世話になります。  今まで主キーの発行はシーケンスを使っていましたが、 シーケンスだと飛び番が発生するので、それ以外の方法を探しています。  データ追加時に(select max(主キー) + 1)で発行した所、複数人数で使用するDBの為 稀にタイミングによっては同じ番号を拾ってきてしまい、「主キーが重複しています」のエラーが出てしまいます。    主キーを安全に発行するのに、みなさん、どのような方法でされているのでしょうか?  googleで検索をしてみましたが、意外と見つからないです。  どなたかご教示いただけると助かります。

  • 主キーが文字型での結合

    主キーが文字列型のカラムhoge_idがあります。 (hoge_idは英数字8文字とします) hoge_idで、他のテーブルに結合します。 また、Webからアクセスする必要があり、URLのパラメータで、 ?hoge_id=A1B2C3D4 の様に、主キーを渡す必要もあります。 文字列を主キーにする方法に慣れていないせいか、気持ち悪く感じます。 主キーを別途serial型のカラムidを作成し、 hoge_idには、ユニークキーで設定をし、 結合や、URLのパラメータは主キーのidを使う方法はあまり意味がないでしょうか。 アドバイスを頂けませんでしょうか。 よろしくお願い致します。

  • ORACLE 主キーにすれば遅くならない?

    主キーを定義すればレスポンスは問題ないといっていいものでしょうか? システムのテーブル検索処理の設計で 保有期間を延長し、5百万件近いのテーブルを保有し検索する処理をつくり 過去分の検索処理を作ろうとしているのですが 「主キーがあるのだから問題あるはずはない」という意見が出ていました。 出来るだけ検索量(サイズ、件数)を絞り込み行おうとしたのですが却下されていまいました。 主キーにすれば問題ないという考えは正しいものなのでしょうか?

  • こんな情報を主キーとして設定できるか???

    Access2003を利用しているものです。 以下のExcelでの情報をAccessの元データとして作成したいのです。 A列    B列  C列  D列    E列  和書・ミステリー・作者名・本の感想・○ 上記の様な情報が約5万件ほど一つのファイル(仮にファイルAとします)にあります。 それをAccessにインポートして基本情報として利用したいと考えております。しかしExcelの段階で主キーみたいなものは設定しておらず、内容である洋書やミステリー、作者名もその5万件の中に重複している為、主キーとして設定できません。 例えば 和書・ミステリー・宮部みゆき・感想・○ 和書・ファンタジー・宮部みゆき・感想・× といった具合です。 A列・B列・C列の組み合わせはそのファイルに一つしか存在しないレコードなのでその3つの組み合わせで主キーとなるような設定をAccessで可能かどうか知りたいのです。今後、ファイルB(3万件)、ファイルC(2万件)と内容こそ重複しても件数の違うファイルが現れる可能性があり、相殺なり、重複しているレコードなりを調べたいと思っております。ちなみにマクロの知識はいっさいありません。申し訳ございませんが、分かる方がいらっしゃれば教えていただきたいと思います。

専門家に質問してみよう