• 締切済み

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