こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL文でテーブル作成 Access2002

MySQLで
create table testm (
key1 char(008) primary key,
data1 int8,
data2 int8,
data3 int8
) type=InnoDB;

という風なSQLでテーブルを作成したりしますが
Accessでは無理なのでしょうか?

よろしくお願いします。

投稿日時 - 2008-11-19 19:42:25

QNo.4491912

困ってます

質問者が選んだベストアンサー

Sub テーブル作成2()

Dim db As DAO.Database 'Microsoft DAO 3.6 Object Libraryの参照設定必要

Set db = CurrentDb

db.Execute "CREATE TABLE testm" & _
"(key1 TEXT(8) CONSTRAINT キーの名前 PRIMARY KEY," & _
"data1 INTEGER," & _
"data2 INTEGER)"

db.Close
Set db = Nothing

End Sub

投稿日時 - 2008-11-20 15:12:35

お礼

ありがとうございます。

この手でいこうと思います。

なお、DAOでなくてADOなんで、CN.Excecuteですね。
私の場合。(ここを後から参考にされる方へ・・・)

投稿日時 - 2008-11-23 18:32:28

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

No.5です。コードだけ貼り付けてしまいすみません。
「Access VBA で 主キー付きのテーブルをSQL文で作成したい」
という単純な事でしたら、No.5の様な単純なコードでいいんじゃないかと思いました、投稿してみました。
WinXP Accee2003でテスト済みです。

投稿日時 - 2008-11-20 15:18:19

[イミディエイト]
? CNNExecute("CREATE TABLE AAA")
True

Private Sub コマンド0_Click()
  DoCmd.RunSQL "CREATE TABLE BBB"
End Sub

DoCmd.RunSQL を使うのも手です。
また、 CNNExecute関数を自作するのも手です。
この辺りは、それぞれの流儀というか好みの問題だと思いますよ。

Public Sub ErrMessage(ByVal CnnErrors As ADODB.Error, ByVal strSQL As String)
   MsgBox "ADOエラーが発生しましたので処理をキャンセルします。" & Chr$(13) & Chr$(13) & _
      "・Err.Description=" & CnnErrors.Description & Chr$(13) & _
      "・Err.Number=" & CnnErrors.Number & Chr$(13) & _
      "・SQL State=" & CnnErrors.SQLState & Chr$(13) & _
      "・SQL Text=" & strSQL, _
      vbExclamation, " ADO関数エラーメッセージ"
End Sub

Public Function CnnExecute(ByVal strSQL As String) As Boolean
On Error GoTo Err_CnnExecute
  Dim isOK As Boolean
  Dim cnn As ADODB.Connection
  
  isOK = True
  Set cnn = CurrentProject.Connection
  With cnn
    .Errors.Clear
    .BeginTrans
    .Execute strSQL
    .CommitTrans
  End With
Exit_CnnExecute:
On Error Resume Next
  cnn.Close
  Set cnn = Nothing
  CnnExecute = isOK
  Exit Function
Err_CnnExecute:
  isOK = False
  If cnn.Errors.Count > 0 Then
    ErrMessage cnn.Errors(0), strSQL
    cnn.RollbackTrans
  Else
    MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _
        vbExclamation, " 関数エラーメッセージ"
  End If
  Resume Exit_CnnExecute
End Function

投稿日時 - 2008-11-20 14:50:35

ANo.3

>SQLはVBA上から実行する予定です。

問題ありません。

先ほど私が書いた「ODBC接続のツール」と言うのは
ExcelのVBAでSQLを実行しています。

投稿日時 - 2008-11-19 21:44:37

ANo.2

#1 です。
リンクを貼り忘れました。

マイクロソフトの Office Online の説明です。
http://office.microsoft.com/ja-jp/access/HP010322201041.aspx

参考URL:http://office.microsoft.com/ja-jp/access/HP010322201041.aspx

投稿日時 - 2008-11-19 21:06:25

ANo.1

できますよ。
普通にアクセスのクエリデザイナでSQLモードにして
create table 文を実行すればできるはずです。

今、手元にAccessありませんが、ODBC接続のツールで
以下のSQLを実行したら、ちゃんとAccessのmdbに
テーブルを作成できました。

create table testm (
key1 char(008) primary key,
data1 int,
data2 int,
data3 int
)

投稿日時 - 2008-11-19 21:03:28

補足

申しわけありません。
情報不足でした。

SQLはVBA上から実行する予定です。

よろしくお願いします。

投稿日時 - 2008-11-19 21:39:24

あなたにオススメの質問