• 締切済み

MDB内既存テーブルに主キーのフィールド追加は可能か?

DAOでMDBにアクセスするシステムなのですが、 テーブル仕様変更に伴い、既存のテーブルに新規に主キーとなるフィールドを追加します。 当テーブルはすでに主キーは複数存在しています。 現在は CreateIndex("PrimaryKey")を行ったのですが、 「既に主キーは既に存在しています」と表示されてしまい、異常終了をしてしまいます。 単にフィールド追加することは容易なのですが、主キーとなると、だめみたいです。 この場合は、どのようにすれば良いのでしょうか? 大変申し訳ございません。 ご教授よろしくお願い致します。

みんなの回答

  • sgh
  • ベストアンサー率61% (75/121)
回答No.3

#1です 主キーを削除するなら以下のサンプルコードで実現可能です。 それ以外のキーを作成する場合は、TableDefやSQL文を使ってやってみてください。 業務中に主キーをはずすのはおすすめできません。 普通にACCESSを開いて手動で変更することをおすすめします。 Dim dbs As DAO.Database, tdf As DAO.TableDef Dim idx As DAO.Index Dim SQL As String Set dbs = CurrentDb Set tdf = dbs.TableDefs("テーブル1") ' TableDef の Indexes コレクション取得 For Each idx In tdf.Indexes ' Recordset オブジェクトの Primary プロパティを確認します。 If idx.Primary Then SQL = "ALTER TABLE テーブル1 DROP CONSTRAINT " & idx.Name dbs.Execute SQL End If Next idx

  • tyoufu
  • ベストアンサー率28% (19/67)
回答No.2

手作業でも主キーの追加は出来ませんよね。 一度主キーを削除(解除)してから再度設定すれば出来ますので、そのようにプログラムを記述してみてはいかがでしょうか。

  • sgh
  • ベストアンサー率61% (75/121)
回答No.1

主キーとはレコードを一意に識別するための情報ですので、テーブルには1つしか作れません。 ユニークキーの間違いではないでしょうか?

soushi_ni
質問者

補足

失礼致しましたユニークキーです

関連するQ&A