- 締切済み
AccessのSQL文
SQLで”Create Table”を用いてAccessのテーブルを作成しようとしたのですが テキスト型のフィールドのデフォルトがNotNullになってしまっているようで 「NULL許可」にできません。 どうやったらSQL文内でNULL許可が指定できるのでしょうか?
- みんなの回答 (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 みたいにすればできます。
Nullと空文字列は別物ですが、「空文字列の許可」を「はい」にするには FieldオブジェクトのAllowZeroLengthプロパティをTrueにする必要が有るようです。
- O_cyan
- ベストアンサー率59% (745/1260)
データ1 char (009) null, と記述してもダメなのですか。 DROP TABLE ・・・でテーブル定義など削除してからCreate Tableで作成しに 行ってもダメなのでしょうか?
補足
> DROP TABLE ・・・でテーブル定義など削除してから > Create Tableで作成しに行ってもダメなのでしょうか? Drop Table→Create Table の処理はしているのですが、ダメなんです。 テーブルが新規作成するとテキスト型は全て 空文字列の許可:「いいえ」 になってしまいます。 Accessの設定などがあるのでしょうか?
- O_cyan
- ベストアンサー率59% (745/1260)
SQLはこんな感じなのですか? create table ocyan.テストm ( キー char (008) primary key, データ1 char (009) not null, データ2 number (009, 0), );
補足
そうです。 NOT NULL指定はできるのですが NULL許可指定ができないのです。 ”データ1 char (009) null” と書いても ”データ1 char (009)” と書いてもNOT NULLになってしまいます。 何故でしょう?
お礼
回答ありがとうございます。 そうか、空文字列の許可はNULL許可とは違うのですね。 根本的なところを間違っていたようです。 Fieldオブジェクト云々は SQL文で操作できるものなのでしょうか? 初心者ですみません。