VBからAccess2000データベースのテーブルとフィールド(テキスト)の作成を行いました。
SQL内でキーの設定と値要求のプロパティは設定することができたのですが
空文字の許可とUnicode圧縮のプロパティの設定方法がわかりません。
よろしくお願いします。
作成したフィールドにADOでデータを入れるとフィールドサイズ分の文字列が強制的に
入ってしまい(255のフィールドに一文字入れると残りの分がスペースで埋まってしまう)
Unicode圧縮を変更したら直ったのでプロパティを変更しようと思ったしだいです
主要なプロパティは、
DAO.Field オブジェクトのプロパティとして存在します。
( AllowZeroLength プロパティなど)
しかし、主要でないプロパティは存在しません。
その場合は、
DAO.Field オブジェクトの CreateProperty メソッドで
新規プロパティを作成して下さい。
( Format プロパティなど)
Unicode圧縮ですが、これは ADOX.Columnオブジェクトの
カスタムプロパティ"Jet OLEDB:Compressed UNICODE Strings"が
相当します。
例えば、こんな感じです。
Dim oConnection As ADODB.Connection
Dim oCatalog As ADOX.Catalog
Dim oTable As ADOX.Table
(中略)
Set oCatalog = CreateObject("ADOX.Catalog")
Set oCatalog.ActiveConnection = oConnection
oTable.Name = "MyNewTable"
With oTable.Columns
.Append "AAA", adInteger
.Append "BBB", adWChar, 50
With .Item("BBB")
Set .ParentCatalog = oCatalog
.Properties("Jet OLEDB:Compressed UniCode Strings").Value = True
End With
End With
oCatalog.Tables.Append oTable
ツイート | ![]() |