- ベストアンサー
SQL文でテーブル作成 Access2002
MySQLで create table testm ( key1 char(008) primary key, data1 int8, data2 int8, data3 int8 ) type=InnoDB; という風なSQLでテーブルを作成したりしますが Accessでは無理なのでしょうか? よろしくお願いします。
- wakaranai_kun
- お礼率34% (30/87)
- その他(データベース)
- 回答数6
- ありがとう数1
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
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
その他の回答 (5)
- senko0306
- ベストアンサー率80% (4/5)
No.5です。コードだけ貼り付けてしまいすみません。 「Access VBA で 主キー付きのテーブルをSQL文で作成したい」 という単純な事でしたら、No.5の様な単純なコードでいいんじゃないかと思いました、投稿してみました。 WinXP Accee2003でテスト済みです。
[イミディエイト] ? 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
- utakataXEX
- ベストアンサー率69% (711/1018)
>SQLはVBA上から実行する予定です。 問題ありません。 先ほど私が書いた「ODBC接続のツール」と言うのは ExcelのVBAでSQLを実行しています。
- utakataXEX
- ベストアンサー率69% (711/1018)
#1 です。 リンクを貼り忘れました。 マイクロソフトの Office Online の説明です。 http://office.microsoft.com/ja-jp/access/HP010322201041.aspx
- utakataXEX
- ベストアンサー率69% (711/1018)
できますよ。 普通にアクセスのクエリデザイナでSQLモードにして create table 文を実行すればできるはずです。 今、手元にAccessありませんが、ODBC接続のツールで 以下のSQLを実行したら、ちゃんとAccessのmdbに テーブルを作成できました。 create table testm ( key1 char(008) primary key, data1 int, data2 int, data3 int )
補足
申しわけありません。 情報不足でした。 SQLはVBA上から実行する予定です。 よろしくお願いします。
関連するQ&A
- MySQLに参照整合性制約を実装したテーブルを作成したい
MySQL4.1.17に、 外部キーで関連付けたテーブルを作成したいのですが、 生成時にエラーが発生してしまいます。 <Error Message> 37000:[MySQL][ODBC 3.51 Driver][mysqld-4.0.17-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 流しているDDLは以下のとおりです。 テーブル型は両方ともINNODBに設定しています。 どなたか原因がわかる方がいたら、ご教授いただけます でしょうか? よろしくお願いいたします。 CREATE TABLE Entity1( att1 CHAR(10) NOT NULL, PRIMARY KEY (att1) )TYPE=INNODB ; CREATE TABLE Entity2( att1 CHAR(10) NOT NULL, PRIMARY KEY (att1) )TYPE=INNODB ; CREATE INDEX FKEnt2 ON Entity2(att1) ; ALTER TABLE Entity2 ADD FOREIGN KEY (att1) REFERENCES Entity1(att1) ;
- ベストアンサー
- MySQL
- テーブル作成時に1289エラーが出る。
テーブル作成時に、ERROR 1289 (HY000): The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working というエラーが出てしまいます。 どういった原因が考えられるでしょうか? Mysql5.0.15を使っています。 CREATE文 CREATE TABLE USER ( ID BIGINT NOT NULL AUTO_INCREMENT ,NAME VARCHAR(30) ,PRIMARY KEY (ID) ) type=InnoDB;
- 締切済み
- MySQL
- AccessのテーブルをSQL文にしたい
urizakaです。 さて、今回質問したいのは、Accessで作ったテーブルをSQL文にする方法です。 具体的には、ACCESSで作ったテーブルを、 CREATE TABLE ××× ( ) INSERT… というSQL文にしたいのですが、これはどうすれば良いのでしょうか? すみませんが、教えてください。
- ベストアンサー
- オフィス系ソフト
- SQL文について
MYSQLで次のような表を作成するためのSQLを教えてください。 (1)PLAYERS表のPID列はその表の主キー PLAYERS表(選手表) PID(選手ID) PANME(選手氏名) M001 JUMBO OZAKI M002 KING KAZU M003 ANIKI KANEMOTO (2)RESULTS表のGIDとPID列はその表の複合キーであり、主キーになっている。 RESULTS表(成績表) GID(大会ID) PID(選手ID) SCORE(スコア) HIUCUP08 M001 72 HIUCUP08 M002 75 JPNCUP09 M001 70 JPNCUP09 M002 76 JPNCUP09 M003 68 (3)各々の表について設定されたデータのSQL のとき、次のようなSQL文を入力してもエラーが出ます。 (1)PLAYERSテーブル作成SQL ---------- CREATE TABLE PLAYERS ( PID char(4) NOT NULL, PNAME varchar(255) NOT NULL, PRIMARY KEY (PID) ); ---------- (2)RESULTSテーブル作成SQL ---------- CREATE TABLE RESULTS ( GID char(8) NOT NULL, PID char(4) NOT NULL, SCORE int(11) NOT NULL, PRIMARY KEY (GID,PID) ); ---------- (3)データ作成SQL <PLAYERSテーブル> ---------- INSERT INTO PLAYERS (PID, PNAME) VALUES ('M001', 'JUMBO OZAKI'), ('M002', 'KING KAZU'), ('M003', 'ANIKI KANEMOTO'); ---------- <RESULTSテーブル> ---------- INSERT INTO RESULTS (GID, PID, SCORE) VALUES ('HIUCUP08', 'M001', 72), ('HIUCUP08', 'M002', 75), ('JPNCUP09', 'M001', 70), ('JPNCUP09', 'M002', 76), ('JPNCUP09', 'M003', 68); ---------- なぜエラーが発生するのか教えてください。
- ベストアンサー
- MySQL
- 親子関係があるテーブル内での検索
親のidを保持するテーブルです。 CREATE TABLE `tbl` ( `id` int PRIMARY KEY, `parent_id` int, FOREIGN KEY(`parent_id`) REFERENCES `tbl`(`id`) ) ENGINE=InnoDB; このテーブルで「parent_idがNULLで、かつ、子を持たない(親というか子でもないというか)行」 を検索したいのですが、どのようなSQLを記述すれば良いのでしょうか?
- ベストアンサー
- MySQL
- MySQLでのテーブル作成
MySQLでこういったテーブルを作成したのですが、 CREATE TABLE NOSGI ( GNRE_CD CHAR(5) NOT NULL, GNRE_NAME VARCHAR(20) NOT NULL, PRIMARY KEY (GNRE_CD) ); GNRE_CDはCHAR型で作成したのに、カラムの情報を見ると、 VARCHAR型にしまうのですが、どうしてでしょうか?
- ベストアンサー
- その他(データベース)
- MySQLでのテーブル作成について
はじめまして。私は学校でDBの勉強をするのにOracle10gを使っているのですが家で練習するにあたりOracleを入れれないのでMySQL5.0をいれてみましたが若干勝手が違いいろいろ調べながらやってみたもののテーブル作成の際の制約の決め方などがうまく作れません。特に外部キーで悩んでいるのですがどうすればよいか教えていただきたいのです。 mysql>CREATE TABLE MEIBO( SEITO_NBR INT(5) PRIMARY KEY NOT NULL, SEITO_MEI VARCHAR(80) NOT NULL, SEIBETSU_KBN CHAR(1), TANJO_YMD DATE, GAKKA_CD VARCHAR(2), BIKOU_TXT VARCHAR(1000), INSERT_DATE DATE, UPDATE_DATE ); mysql>CREATE TABLE GAKKA( GAKKA_CD VARCHAR(2) PRIMARY KEY NOT NULL, GAKKA_MEI VARCHAR(80) NOT NULL ); ちなみに下の学科表は作成できました。が上の名簿がうまくできません。長くなりましたがよろしくお願いします。
- 締切済み
- MySQL
- SQLでTableが作れないlol
show databases; と入力 自分のデータベースを use me; と入力 show tables; と入力してからが問題なのですが・・・。 テーブルを作りたいのに、CREATEをしても作れないんですorz ↓↓入力した内容は以下のとおりです↓↓ CREATE TABLE cake ( code char(3), name varchar(10) NOT NULL, tanka char(8), from varchar(20) NOT NULL , drink varchar(10) NOT NULL , PRIMARY KEY (code) ); と、入力するとエラーで・・・ ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from varchar(20) NOT NULL, drink varchar(10) NOT NULL, PRIMARY KEY (code) )' at line 5 と出てくるのですが、よくわかりません。 昨日までは作れていたのになぜかわからず質問してみました。 code char(3) , を code int(3), としてもできませんでした。 これから作業で使うので、困ってます><! ご回答のほどよろしくお願いいたします。
- ベストアンサー
- MySQL
- PL/SQLでフィルタ後のテーブルを返す関数
環境:Oracle81740 タイトル通りの質問ですが、、、 以下のテーブルがあったとします。 CREATE TABLE PUBLIC.TEST_TABLE ( KEY1 CHAR(20) NOT NULL, KEY2 CHAR(20) NOT NULL, VALUE1 VARCHAR2(256), CONSTRAINT GENERAL_TABLE_PK PRIMARY KEY (KEY1, KEY2) ) そこで本題ですが、 (構文がめちゃくちゃだとは思いますが、読み取ってください^^;) FUNCTION TEST_GET ( IN_KEY TEST_TABLE.KEY1%TYPE ) RETURN TABLE IS retTbl TABLE; というイメージで、[KEY1]値を受け取り、該当するレコードをテーブルとして返す関数を組みたいのですが、調べがつきません。 どなたかよろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- AccessのSQL文
SQLで”Create Table”を用いてAccessのテーブルを作成しようとしたのですが テキスト型のフィールドのデフォルトがNotNullになってしまっているようで 「NULL許可」にできません。 どうやったらSQL文内でNULL許可が指定できるのでしょうか?
- 締切済み
- その他(データベース)
お礼
ありがとうございます。 この手でいこうと思います。 なお、DAOでなくてADOなんで、CN.Excecuteですね。 私の場合。(ここを後から参考にされる方へ・・・)