- 締切済み
MS ACCESSで
MS ACCESSを使用しているのですが、複合キーをCREATEする方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- how-do-you-do
- ベストアンサー率56% (59/104)
ちょっと手があいたので、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
- tsukasa-12r
- ベストアンサー率65% (358/549)
#3 の者です。 書き込んだ後になって思ったんですが、これって、VBA のコーディングで複合キーを作成するにはどうすればよいですか、ということだったんですね。 失礼しました。
- tsukasa-12r
- ベストアンサー率65% (358/549)
MDB 内のテーブルの、ということでよいのでしょうか? もしそうなら、テーブルのデザイン画面で、キーにしたいフィールドを CTRL キーを押しながらマウスでクリックするなどの方法で複数選択し、メニューの編集(E)→主キー(K)か、ツールバーの「主キー」ボタンをクリックすればいいと思うんですけど・・・。
- how-do-you-do
- ベストアンサー率56% (59/104)
手動でよければ... 1.テーブルのデザインビューを開く 2.複数のフィールドをShift(又はCtrl)キーを使用して選択する ※次の動作まで、Shift(又はCtrl)キーは押下したまま 3.右クリック 4.「主キー」をクリック 以上にて可能です
- human_7
- ベストアンサー率29% (15/51)
今もう手元にサンプルが無いのでちょっと自信無しですが、、、 create index で調べて下さい