テーブルの操作 |
#1 テーブルを作成する
※作成しようとしているテーブルがすでに存在する場合エラーとなります
DAO :TableDef を使う
<使用例>
Sub テーブルを作成するDAO() 'tbl得意先DAOを作成します。 ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Const strTbl As String = "tbl得意先DAO" Dim dbs As Database Dim tdf As DAO.TableDef Dim idx As DAO.Index Set dbs = CurrentDb Set tdf = dbs.CreateTableDef(strTbl) With tdf .Fields.Append .CreateField("得意先コード", dbLong) .Fields.Append .CreateField("フリガナ", dbText, 30) .Fields.Append .CreateField("得意先名", dbText, 30) End With dbs.TableDefs.Append tdf With tdf '得意先コードに主キーを設定 Set idx = .CreateIndex("NumIndex") idx.Fields.Append idx.CreateField("得意先コード") idx.Primary = True .Indexes.Append idx End With Set idx = Nothing Set tdf = Nothing dbs.Close: Set dbs = Nothing End Sub
ADO :Command を使う
<使用例>
Sub テーブルを作成するADO() 'tbl得意先ADOを作成します。 ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Dim cnn As New ADODB.Connection Dim cmd As New ADODB.Command Dim strSQL As String strSQL = "CREATE TABLE tbl得意先ADO (" strSQL = strSQL & "得意先コード INT PRIMARY KEY," strSQL = strSQL & "フリガナ TEXT(30)," strSQL = strSQL & "得意先名 TEXT(30))" Set cnn = CurrentProject.Connection Set cmd.ActiveConnection = cnn cmd.CommandText = strSQL cmd.Execute Set cmd = Nothing cnn.Close: Set cnn = Nothing End Sub
ADOX:Catalog を使う
<使用例>
Sub テーブルを作成するADOX() 'tbl得意先ADOXを作成します。 ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Const strTbl As String = "tbl得意先ADOX" Dim cnn As New ADODB.Connection Dim cat As New ADOX.Catalog Dim tbl As New Table Dim idx As New ADOX.Index Set cnn = CurrentProject.Connection cat.ActiveConnection = cnn With tbl .Name = strTbl .Columns.Append "得意先コード", adInteger .Columns.Append "フリガナ", adVarWChar, 30 .Columns.Append "得意先名", adVarWChar, 30 End With cat.Tables.Append tbl With idx '得意先コードに主キーを設定 .Name = "NumIndex" .Columns.Append "得意先コード" .PrimaryKey = True End With tbl.Indexes.Append idx Set cat = Nothing cnn.Close: Set cnn = Nothing End Sub
SQL :RunSQL を使う
<使用例>
Sub テーブルを作成するSQL() 'tbl得意先SQLを作成します。 ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Dim strSQL As String strSQL = "CREATE TABLE tbl得意先SQL (" strSQL = strSQL & "得意先コード INT PRIMARY KEY," strSQL = strSQL & "フリガナ TEXT(30)," strSQL = strSQL & "得意先名 TEXT(30))" DoCmd.RunSQL strSQL End Sub