• 締切済み

MS ACCESSで

MS ACCESSを使用しているのですが、複合キーをCREATEする方法を教えてください。

みんなの回答

回答No.5

ちょっと手があいたので、DAOですが... ※参照設定にて「Microsoft DAO *.* Liblary」のチェックが必要です '-------------------------------------------------- Private Sub Command1_Click()   Dim AppAccess    As Object   Dim Dbs       As DAO.Database   Dim Tdf       As DAO.TableDef   Dim Idx       As DAO.Index   Dim Fld       As DAO.Field   Dim stFullPath   As String   Dim stTblName    As String   Dim stIdxName    As String   Dim stFldName    As String   Dim i        As Long 'サンプルDB作成   Set AppAccess = CreateObject("Access.Application")   stFullPath = "c:\test.mdb"   AppAccess.NewCurrentDatabase (stFullPath)   Set AppAccess = Nothing 'wait   For i = 0 To 2000     DoEvents   Next 'サンプルTBL作成   Set Dbs = DAO.OpenDatabase(stFullPath)   stTblName = "AAA"   Set Tdf = Dbs.CreateTableDef(stTblName)   stFldName = "aaa"   Set Fld = Tdf.CreateField(stFldName, dbLong)   Tdf.Fields.Append Fld   stFldName = "bbb"   Set Fld = Tdf.CreateField(stFldName, dbLong)   Tdf.Fields.Append Fld   stFldName = "ccc"   Set Fld = Tdf.CreateField(stFldName, dbLong)   Tdf.Fields.Append Fld   Dbs.TableDefs.Append Tdf 'プライマリインデックス追加   Set Idx = Tdf.CreateIndex("PrimaryKey")   stFldName = "aaa"   Idx.Fields.Append Idx.CreateField(stFldName)   Idx.Primary = True   stFldName = "bbb"   Idx.Fields.Append Idx.CreateField(stFldName)   Idx.Primary = True   Tdf.Indexes.Append Idx   Set Fld = Nothing   Set Idx = Nothing   Set Tdf = Nothing   Set Dbs = Nothing '完了メッセージ   MsgBox "ほげ!" End Sub

回答No.4

#3 の者です。 書き込んだ後になって思ったんですが、これって、VBA のコーディングで複合キーを作成するにはどうすればよいですか、ということだったんですね。 失礼しました。

回答No.3

MDB 内のテーブルの、ということでよいのでしょうか? もしそうなら、テーブルのデザイン画面で、キーにしたいフィールドを CTRL キーを押しながらマウスでクリックするなどの方法で複数選択し、メニューの編集(E)→主キー(K)か、ツールバーの「主キー」ボタンをクリックすればいいと思うんですけど・・・。

回答No.2

手動でよければ... 1.テーブルのデザインビューを開く 2.複数のフィールドをShift(又はCtrl)キーを使用して選択する ※次の動作まで、Shift(又はCtrl)キーは押下したまま 3.右クリック 4.「主キー」をクリック 以上にて可能です

  • human_7
  • ベストアンサー率29% (15/51)
回答No.1

今もう手元にサンプルが無いのでちょっと自信無しですが、、、 create index で調べて下さい

関連するQ&A