ベストアンサー アクセス2000で主キーとなる誤ってIDの列を削除 2002/11/04 05:48 再びID列を作りオートナンバーにしたいのですが、途方にくれています。誰か教えてください。 みんなの回答 (4) 専門家の回答 質問者が選んだベストアンサー ベストアンサー 4500rpm ベストアンサー率51% (3240/6352) 2002/11/05 12:19 回答No.4 #1の補足です。 テーブルのフィールドが少なければ新規テーブルを作成、挿入しても良いのですが、多ければ再作成は手間がかかると思います。 #1のやり方以外でも、次の方法でできました。 こっちの方がいいかな。 1)元のテーブルをテーブル構造のみ複製する。(貼り付けるときに選択できる。) 2)ID列のデータ型をオートナンバーにする。 3)元のデータを挿入貼付する。 4)テーブルの名前を入れ替える。 5)動作確認後、元テーブルを削除する。 リンクなどは確認していませんが、テーブル自体は問題なく作れました。 質問者 お礼 2002/11/05 13:24 丁寧なご回答ありがとうございます。消してしまったときにはもうダメかと思いました。復活いたしました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (3) kougasha ベストアンサー率32% (34/105) 2002/11/04 19:04 回答No.3 同じ形式でID列のついたテーブルを作成し、そちらにデータを移し替えればよいのでは? 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 kougasha ベストアンサー率32% (34/105) 2002/11/04 19:01 回答No.2 ID列の付いた同じ形式のテーブルを作成して、今あるテーブルからそちらに挿入しなおすのが早いと思います。 質問者 お礼 2002/11/05 13:20 ありがとうございました。試してみたいと思います。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 4500rpm ベストアンサー率51% (3240/6352) 2002/11/04 06:21 回答No.1 新しく番号を割り振るやり方なら 1)元のID列の名前を変える。 2)テーブルのデザインビューで列を挿入して、データ型をオートナンバー型にする。フィールド名は元の名前を付ける。主キーなど設定する。 3)元のID列を削除する。 4)このフィールドを使用しているところの動作確認。 で目的は達せされます。 このやり方は、元のID列の番号が飛んでいる場合、全く同じ番号にはなりません。完全に一緒にするには私はコピぺでやっています。他によいやり方があるかもしれません。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターデータベースその他(データベース) 関連するQ&A 主キーはオートナンバー型のIDを使った方が良いのか 主キーはオートナンバー型のIDを使った方が良いのか、 独自の主キーを作った方がいいのか? 今は テーブル1 ------------------- IDフィールド(オートナンバー型) 主キー 1 2 3 ------------------- 伝票番号フィールド A001 A001 A002 ------------------- 部署フィールド 営業部 システム部 営業部 ------------------- 金額フィールド 100 200 300 ------------------- という状態ですが、 新たに主キーフィールドを作り 更新クエリで UPDATE テーブル1 SET テーブル1.主キー = [テーブル1]![伝票番号] & [テーブル1]![部署] & [テーブル1]![金額]; をして、主キーを独自に作った方がいいのか。 アクセスを作るにおいて、どちらの方が良いのでしょうか? テーブルのレコードは削除したりする事もあるので、オートナンバー型だと空きができてしまいます。 レコードに空きができないデータベースなら、オートナンバー型、 空きができるデータベースなら、独自に作った主キーにしたほうがいいのでしょうか? アクセス:主キーでクエリ結果を検索:データ型違う アクセス2010を使用しています。 出来上がったあるクエリより、ある結果をID(主キー)から検索して抽出しようとしました。 IDの抽出条件の欄に "0243" という文字列を入れたのですが、データ型が違うというエラーメッセージが出ました。 調べてみると主キーはオートナンバー型ですが、これは検索できないのでしょうか。 できるとしたらどのように検索するのでしょうか。 初心者の質問で不手際があると思います。もし不足がありましたら補足します。 どうぞ上級者の方にご指導願えたら幸いです。どうぞよろしくお願いします。 アクセス2010 主キーのIDの数字が飛ぶ アクセス2010です。「入金テーブル」を作成していて、普通にデータを入力していたら、主キーの入金IDナンバーの数が異常に大きくなったことに気が付きました。調べてみると1から4204までは正常だったのですが、急に7326になり、その次の数字は10449になっていて、それからは順繰りに大きくなっていました。 どうしてそうなってしまったのか、又直すには、どうしたらいいのでしょうか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム アクセス クロス集計の列フィールド名変更 こんにちは。 質問です。 受注テーブル・・・受注ID(オートナンバー)/納期/台数/金額/大分類 大分類テーブル・・・大分類ID(オートナンバー)/大分類 大分類テーブルのIDと受注テーブルの大分類は一対多のリレーションになっています。 (本を見ながら作成したので、そもそもリレーションの必要性がはっきり把握していないのかもしれません) 納期を月単位でフォーマットして、クロス集計を作りました。 行・・・納期(月単位) 列・・・大分類 値・・・金額 行は1つしか選択できなかったので、行に納期、列に大分類としました。大分類は6種類あります。 集計の結果で列フィールドが大分類IDになっています。数値(オートナンバー)だと分かりづらいので、どうしても大分類名で表示したいのですがどうしたらよいでしょか? Accessの主キーについて お願いいたします。 Accessの主キー設定について教えてください。 主キーの役割は、テーブルの中のレコードを区別 するための機能だと思いますが、 フィールドのデータ型をオートナンバー型にして おけば主キーの設定は必要ないのではないでしょう か? 主キーを設定する理由としては、参照整合性のため に行うという考え方で良いでしょうか? また、複数の主キーを設定するという場合のテーブ ル構成はどのような場合のシステムなのでしょうか? どうぞ教えてください。 ACCESSの主キーの列の隣列 に+列があるテーブルがあります たとえばヘルプで読み出せるサンプルNorthwind.mdbの得意先テーブルなどです この+列の名前はなんと言うのでしょうか? 普通に作ったのではこういうものはできません どうやったらこういう+列を作ることができるのでしょうか? データベース:主キーが文字列の場合IDを振るべき? テーブルの主キーが文字列の場合、 その主キーの文字列を通し番号に置き換えて、 その文字列は別テーブルに移したほうが検索が速いですか? 例えば、テーブルが CREATE TABLE spec ( test_name VARCHAR(40) NOT NULL, upper_limit NUMERIC(17,7), lower_limit NUMERIC(17,7), PRIMARY KEY(test_name) ); で、40文字という長いテスト項目名の場合、 CREATE TABLE spec ( test_id INTEGER NOT NULL, upper_limit NUMERIC(17,7), lower_limit NUMERIC(17,7), PRIMARY KEY(test_id) ); と CREATE TABLE test ( test_id INTEGER NOT NULL, test_name VARCHAR(40) NOT NULL, PRIMARY KEY(test_id) ); という二つのテーブルに分けたほうが検索は速くなりますか? (もちろん、結合する時間も含めてです。) もし速くなるとしても、文字数が3文字など少ない場合は 通し番号に置き換えてもきっと効果は薄いですよね? 何文字以上の文字列なら通し番号に置き換えたほうが速いですか? 皆さんはどのように決めていますか? Access2010表形式のIDについて 表形式ABCと言うフォームがあります。 これを開き最後の項目の下に新しく書き込みする白紙のフォームがありますよね。 この新しいフォームのID欄には「####」と表示されています。 一方表形式XYZと言うフォームがありこれの新しく書き込みをするID欄には 「新規」という文字が表示されています。 この違いはプロパテイの設定にあるのでしょうか。 たいした問題では無いのですが勉強のため教えてください。 尚IDはオートナンバー式です。 Accessのオートナンバー型をレプリケーションIDにする意味は? こんにちは。 Access2002を使っていますが、 テーブル設計時にデータ型をオートナンバー型にして レプリケーションIDにする意味は何でしょうか? 長整数型はわかるのですが。。。 よろしくお願い致します。 Access 「主キーにはnull値を~」のエラー こんにちは。閲覧ありがとうございます。 私はAccess初心者です。 勉強と実用をかねて個人用の「家計簿」をWindows7のAccess2010で作成しております。フォームを使用し、費目を記録して、ゆくゆくは集計なども行いたいと考えています。 いくつかの失敗に当たりながらどうにか形はできたのですが 『インデックスまたは主キーには、null値を使用できません。』 というエラーが出てきてしまい、これがどうしても解決できないでいます。 初心者があやふやな言葉を並べるより、現物を見ていただいた方が早いと思うので、以下に私が作成中の「家計簿rev2.accdb」をアップロードしておきました。 http://www1.axfc.net/uploader/so/2884464.zip (稚拙で見難いことこの上ないかもしれませんが、初心者ゆえご容赦ください・・・) 仕様としましては、フォームの「Fmain家計簿DB」に、「レシートNo、購入日、種類ID、費目、値段、個数、店舗ID、その他」と入力して、最後に次のレコードに移れば、レコードが一つ記録されるといった具合(のはず)です。 各テーブルの主キー以外には「空文字列の許可を"はい"」「値要求を"いいえ"」「インデックスを"いいえ"」に設定してあります。 オートナンバー型を使用しているのはテーブルの「Tmain家計簿DB」の主キーのみです。 また、「フィールドとキーが一致しているレコードをテーブルで探すことができません」というエラーが出るのを回避するため、こちらの質問を参考にさせてもらい外部結合の設定をしてあります。 (http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1368686318) そして、フォームに想定通りのデータを入力すると『インデックスまたは主キーには~』のエラーが出てしまいます。 せめてどこにnull値が入っててエラーが出てるのかを表示してくれたらいいのですが・・・ 以上になります。長文お読みいただきありがとうございました。 こんな簡単なdbの作成でお手上げ状態になるとは情けない限りです・・・ どなたか、『インデックスまたは主キーには、null値を使用できません。』の解決策をご教示いただけるとありがたいです。 よろしくお願いいたします。 Accessで、オートナンバー型を主キーにして関連テーブルを作った場合 いつも大変お世話になっております。m(_ _)m (1)以下の設定で自動採番させた管理No.を主キーとし、テーブルを作りました。 データ型:オートナンバー型 書式:"ABC-"000 これで、ABC-から始まる3ケタの連番が自動採番されます。 (2)関連テーブルを作りました。 関連テーブルの「管理No.」は、上記と同じ設定をすると「オートナンバー」でデータが競合するのでは?と思い、テキスト型としました。 (1)を元にフォームを作成しました。 サブフォームを挿入し、(2)のデータを表示させました。管理No.でリンクする作りとなっています。 (1)の情報が1に対して、(2)の情報は複数あります。 管理No.がオートナンバーでない場合、上記のようなフォームを作って、(1)に情報を入力し、(2)に詳細情報として複数のデータを入力すると、(2)の「管理No.」は入力しなくても自動的に同じものがふられていきます。 しかし、今回は(2)に管理No.がふられないだけでなく、ページ内でエラーが発生し、フォーム自体もきちんと表示されません。 原因は、テーブルの作りにあるんでは?と思っています。 この場合、どのように作成すればいいのか教えてください。 やりたいことは、(2)のテーブルに同じ管理No.をいくつも入力しなくても済むように、管理No.でリンクしたサブフォームを作り、必要な情報(管理No.でない情報)を入力すれば、自動的に管理No.がふられるようにしたいのです。 いつもはできます。今回だけできません。 質問の内容が分かりにくい場合は補足します。 大至急の回答をよろしくお願い致します。 access IDの振り直しについて 皆さん、明けましておめでとうございます。今年もいろいろとお世話になりますm(_ _)m さて、accessに挑戦しているところですが、データをいろいろいじくっているうちに、オートナンバー型のIDが不整列となってしまいました。そこで、いったん「デザイン」からIDを削除し、再び「行の挿入」でIDを作成したところ、今度はまたIDが別の形で(飛び番=例えば、100の次に1000が来て、1100の次に101が来るというような)不整列となりました。 テーブルのフィールドには「No」というのを設けてあり、これはデータのレコード番号なのですが、それとIDが一致するようにするつもりでした。 このような場合、IDの「振り直し」はどのようにやれば出来るのでしょうか? もう一つお尋ねです。最終「No」とレコード数は一致するはずなのですが、レコードが1個足りません。このような場合、何番のレコード(No)が抜けているのか知るには、どのようにすればよろしいでしょうか? access初心者ですので、いろんなところでつまづいてしまいます。どうかご教示のほどよろしくお願いしますm(_ _)m xp+office2003です。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム Access オートナンバーについて 17年・18年の伝票整理をしたいと思っています。 伝票IDを、17年度分なら 17-(オートナンバー) 18年度分なら 18-(オートナンバー) のように、設定したいと思ったのですが、どんな方法があるでしょうか。 IDの払い出し(文字列) WEB APでデータベースを勉強中のものです. ユーザを管理するID番号をデータベースの連番IDではなく,文字列のIDにしたいのですが,どうすればいいでしょうか.PHP等で作成する方法でもいいです. 文字列IDにすると特定されにくいかなって思っています. 例えば A100001 C100002 です. 数値を文字列にして他の文字列と連結 お世話になります。 accessで、 フィールド1の数値(オートナンバー)を文字列に変換して、固定の文字列と連結し、フィールド3に保存する方法をを教えていただきたいのですが。 よろしくお願いします。 Access2003オートナンバーを任意の値に Access2003で、オートナンバーでID番号の管理(主キー)をしています。 このID番号の他に、10桁の数値でプロジェクト管理したいと思っております。 オートナンバーを基に、別IDを作成する方法を教えてください。 なお、この10桁の数値は、先頭の4桁がプロジェクト番号として使用し、 後ろの6桁はオートナンバーのIDと同じ数値となります。 ======================================== (例) [ID] [ID2] 1 1001000001 2 1001000002 3 1001000003 〃 〃 ======================================== 下記のURLを参考にしてやってみたのですが、追加クエリを実行しても、 なぜか、オートナンバーフィールドへ追加することができませんでした。 ※追加クエリ実行エラーで、「型変換エラーのためnullに設定しました」となります。 http://www.accessclub.jp/samplefile/samplefile_145.htm お手数お掛けしますが、宜しくお願い致します。 ACCESSでオートIDのように日付が入るようにしたい 表題だけでは何のことか自分でも分かりませんが、下記のようなことをやりたいと考えております。 1.日々の予定表と日報をACCESSで作る 2.毎日の予定を未来のことも含めて入力していくので、現在マウスホイールを回すと オートナンバー型のIDの数字が進むみたいに日付をくるくる進むようにしたい。 3.テーブルに日付を予め入力していくことも考えたが、ずっと使う予定のものなので、 できればACCESSの持つ機能で済ませたい カレンダーの導入なども考えましたが、毎日必ず入力するので、いちいち日を選択→代入というのも違うかと思います。 ググっても出てこないので、出来ない可能性が高そうですが、どうぞ宜しくお願いします。 主キーが文字型での結合 主キーが文字列型のカラムhoge_idがあります。 (hoge_idは英数字8文字とします) hoge_idで、他のテーブルに結合します。 また、Webからアクセスする必要があり、URLのパラメータで、 ?hoge_id=A1B2C3D4 の様に、主キーを渡す必要もあります。 文字列を主キーにする方法に慣れていないせいか、気持ち悪く感じます。 主キーを別途serial型のカラムidを作成し、 hoge_idには、ユニークキーで設定をし、 結合や、URLのパラメータは主キーのidを使う方法はあまり意味がないでしょうか。 アドバイスを頂けませんでしょうか。 よろしくお願い致します。 ユーサ゜ーIDの削除 各サイトに入るユーザーIDの入力ホームの、先に入力したIDを削除したいのですが、 インターネットオプション、コンテンツ、オートコンプリート、フォームのクリアと順にするのですが、これで他サイトは削除出来るのですが、日本道路公団のETCのユーザーIDだけが削除されません、削除する方法を教えて下さい。 主キーによるフォームのリレーションについて。 こんにちは、ACCESS2007で業務の予約・カルテシステムを素人ながら頑張っているのですが、 行き詰ってしまいご質問させてください。 当方の業務上複数の種類のカルテが必要なため、まず予約が入ったら【予約入力フォーム】で予約日時、 業務の種類(どのカルテに記録するか)のみをまず以下のテーブルに入力しています。 【T_業務マスター】 |業務ID|予約日時|業務カテゴリー|受付担当スタッフ|||| |1|2009/12/01|業務A|||| |2|2009/12/03|業務B|||| |3|...... 業務カテゴリーはコンボボックスで選択しています。 その後【予約入力フォーム】内に作ったカルテ作成ボタンを押すことによってそれぞれの種別の カルテ入力フォームを開いております。 カルテのデータはそれぞれ 【T_業務Aカルテ】 |業務AカルテID|業務ID|カルテ内容1|カルテ内容2||| |1|1|あああ|bbb||| |2|5|ううう|ccc||| 上記のようなものが業務別にあります。 ↑ここまでのシステムはなんとかできました。 あとあと、すべての予約(すべての業務ごちゃまぜで)日付順などでリストにしたいので、 このように基本【業務マスターテーブル】と詳細【T_業務○カルテ】をわけてデータを保存しております。 予約入力フォームでカルテ作成ボタンを押したときに、詳細を入力するためのカルテフォームを開く際に DoCmd.OpenFormを使いOpenArgsには業務IDを持たせています。詳細なカルテフォームの読み込み時に カルテフォームの中の業務IDの規定値をOpenArgsの業務IDを渡しております。 何とかできたと思ったのですがカルテフォームには【T_業務○カルテ】だけのデータだけではなく、 【T_業務マスター】に格納したいフィールドも配置してあって、そこにデータを入力するとT_業務マスターの データがダブってしまいました。 具体的には、新規予約受付フォームで 業務ID(オートナンバー):10 業務カテゴリー:業務A 予約日時:2009/12/01 ↓業務Aカルテ入力フォームを開く 業務AカルテID(オートナンバー):15 業務ID:10(OpenArgsを規定値) 予約日時: 予約受付スタッフ:AAAA(このデータは【T_業務マスター】に格納) カルテ内容1: カルテ内容2: ・ ・ ・ この予約受付スタッフをデータ入力すると【T_業務マスター】に業務ID11というデータが新しくできてしまい、 データが2つのIDに分かれてしまいます。原因が分からずで行き詰っております。 文章力がなく、上記文章では上手く伝わらないかもしれませんがお願いいたします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター データベース SQL ServerOraclePostgreSQLMySQLNoSQLその他(データベース) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
丁寧なご回答ありがとうございます。消してしまったときにはもうダメかと思いました。復活いたしました。