• 締切済み

AccessのSQL文

SQLで”Create Table”を用いてAccessのテーブルを作成しようとしたのですが テキスト型のフィールドのデフォルトがNotNullになってしまっているようで 「NULL許可」にできません。 どうやったらSQL文内でNULL許可が指定できるのでしょうか?

みんなの回答

noname#89342
noname#89342
回答No.4

> Fieldオブジェクト云々は > SQL文で操作できるものなのでしょうか? SQLでは操作できません。VBAで、 Dim curDB As Database Dim tDef As TableDef Dim fDef As Field Set curDB = CurrentDb() Set tDef = curDB.TableDefs("テーブル名") Set fDef = tDef.Fields("項目名") fDef.AllowZeroLength = True みたいにすればできます。

noname#89342
noname#89342
回答No.3

Nullと空文字列は別物ですが、「空文字列の許可」を「はい」にするには FieldオブジェクトのAllowZeroLengthプロパティをTrueにする必要が有るようです。

coffee_cafe
質問者

お礼

回答ありがとうございます。 そうか、空文字列の許可はNULL許可とは違うのですね。 根本的なところを間違っていたようです。 Fieldオブジェクト云々は SQL文で操作できるものなのでしょうか? 初心者ですみません。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

データ1   char (009) null, と記述してもダメなのですか。 DROP TABLE ・・・でテーブル定義など削除してからCreate Tableで作成しに 行ってもダメなのでしょうか?

coffee_cafe
質問者

補足

> DROP TABLE ・・・でテーブル定義など削除してから > Create Tableで作成しに行ってもダメなのでしょうか? Drop Table→Create Table の処理はしているのですが、ダメなんです。 テーブルが新規作成するとテキスト型は全て 空文字列の許可:「いいえ」 になってしまいます。 Accessの設定などがあるのでしょうか?

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

SQLはこんな感じなのですか?   create table ocyan.テストm (    キー     char (008) primary key,    データ1   char (009) not null,    データ2   number (009, 0),   );

coffee_cafe
質問者

補足

そうです。 NOT NULL指定はできるのですが NULL許可指定ができないのです。 ”データ1 char (009) null” と書いても ”データ1 char (009)” と書いてもNOT NULLになってしまいます。 何故でしょう?

関連するQ&A

  • AccessのテーブルをSQL文にしたい

    urizakaです。 さて、今回質問したいのは、Accessで作ったテーブルをSQL文にする方法です。 具体的には、ACCESSで作ったテーブルを、 CREATE TABLE ××× (              ) INSERT… というSQL文にしたいのですが、これはどうすれば良いのでしょうか? すみませんが、教えてください。            

  • phpMyAdminのSQLで、SQL文を登録が

     phpMyAdminのSQLで SQL文を登録するため、以下のエラーメッセージの中にあるCREATE DATABASE xmas;で始まる  SQL文を実行したところ、以下のエラーメッセージがでて、登録でできずに困っています。  どうしたら登録できますか!?    宜しくお願いします。    エラー 実行した SQL: CREATE DATABASE xmas; MySQL のメッセージ: ドキュメント #1007 - Can't create database 'xmas'; database exists サーバ "127.0.0.1" 上でクエリを実行する: ドキュメント CREATE DATABASE xmas; USE xmas; CREATE TABLE xmastran ( book_id int not null auto_increment, name varchar(30) not null default '' , org varchar(50) not null default '', addr varchar(80) not null default'', tel verchar(20 default '', mail varchar(40) default '', course varchar(30) default '', nums integer default 0, PRIMARY KEP (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    • ベストアンサー
    • MySQL
  • SQL文でテーブル作成 Access2002

    MySQLで create table testm ( key1 char(008) primary key, data1 int8, data2 int8, data3 int8 ) type=InnoDB; という風なSQLでテーブルを作成したりしますが Accessでは無理なのでしょうか? よろしくお願いします。

  • SQL文を入力したらエラー

     phpMyAdminでSQLに  以下の文を入力しました。  CREATE DATABASE xmas; USE xmas; CREATE TABLE xmastran ( book_id int not null auto_increment, name varchar(30) not null default ' ' , org varchar(50) not null default ' ', addr varchar(80) not null default' ', tel varchar(20) default ' ', mail varchar(40) default ' ', course varchar(30) default ' ', nums integer default 0, PRIMARY KEY (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;  以上SQLに入力した文ですが!  以下のエラーが出て先に進みません。   エラー 実行した SQL: CREATE DATABASE xmas; → (http://dev.mysql.com/doc/refman/5.5/en/create-database.htmlにリンクされている) MySQL のメッセージ: ドキュメント #1007 - Can't create database 'xmas'; database exists サーバ "127.0.0.1" 上でクエリを実行する: CREATE DATABASE xmas; USE xmas; CREATE TABLE xmastran ( book_id int not null auto_increment, name varchar(30) not null default ' ' , org varchar(50) not null default ' ', addr varchar(80) not null default' ', tel varchar(20) default ' ', mail varchar(40) default ' ', course varchar(30) default ' ', nums integer default 0, PRIMARY KEY (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;   以上ですが、何が原因で進めないか原因を追及中です。  最近SQLを始めたので、全く見当がつきません。 皆様よろしくお願いします。  

    • ベストアンサー
    • MySQL
  • VBで使用するAccessのSQL(INSERT文)

    VBで使用するAccessのSQL(INSERT文)ですが、 下記のようなSQLはどのようにすれば良いのでしょうか? テーブル:A フィールド:B(Text型),C(Yes/No型) 作成したいSQL文: Textに空白、Yes/NoはTrueを入れ、 既存のフィールド内の一番下に 作成(追加)する。

  • NOTNULL制約について

    MYSQL ver4.0.20a 下記のようにNOTNULL制約を付けてテーブルを作成するのですが、 デフォルト値が勝手に設定されてしまいます。 CREATE TABLE TEST_01 ( NO int(8) NOT NULL auto_increment, STATUS int(1) NOT NULL, TOUROKUBI date NOT NULL, MEMO varchar(200) NOT NULL, PRIMARY KEY (NO) INT型だと 0 varchar型だと '' date型だと 0000-00-00 インサートの時に値がNULLの場合、SQLエラーを返してほしいのですが、 デフォルト値が設定されている為、登録されてしまいます。 本当はNOTNULL制約で、DBにチェックを任せたいのですが・・・ どなたかご存知の方、教えてください。 お願いします。

    • ベストアンサー
    • MySQL
  • NOT NULL と NOT NULL WITH DEFAULT

    CREATE TABLE でテーブルを作成するときに指定する、 「NOT NULL」 と 「NOT NULL WITH DEFAULT」 の違いを教えてください。 また、どういう時に使い分けるのかも教えてもらえるとうれしいです。 よろしくお願いします。

  • 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
  • アクセスVBAのSQLについて

    (1)テキストファイルに記述したSQL文のセットをVBAで実行するコマンドはありますか? (2)テーブルを作成する際の、DB指定は 「create table "DB名"."テーブル名"…」としたらよいでしょうか (3)"DB名". を省略できるのはどのような場合ですか? (4)Docmd.RunSQL "" で一度に複数のSQL文を実行できますか? よろしくお願いします。m(_ _)m

  • MySQL show create table ~と同じOracleでのSQL文

    Mysqlでテーブルを作成するステートメントを表示するSQL文 ” SHOW CREATE TABLE テーブル名”に該当する、oracleの SQL文ってありますか?