備忘です。
今回は Access のテーブルにて書式を一括に削除する方法を書いていきます。
早速コードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Option Compare Database Option Explicit Sub Sample() Const TableName As String = "テーブル名" Dim DB As Database Dim Def As DAO.TableDef Dim Fld As DAO.Field Set DB = CurrentDb Set Def = DB.TableDefs(TableName) On Error Resume Next '全フィールドで繰り返し For Each Fld In Def.Fields Fld.Properties.Delete "format" Next Fld On Error GoTo 0 End Sub |
On Error はすでに”format”が削除されているときにエラーになるため使っています。
書式の削除が必要な一例としては、長いテキスト型(メモ型)の多くのフィールドの書式に@が入っているときです。@が入っていると最大255文字しか表示されません。データとしては255文字以上入っているようなのですが何故か表示しようとすると255文字までとなってしまいます。
それを踏まえ長いテキスト型(メモ型)の時は毎回@を消すコードを動かすことにしています。
全てのテーブルでFormatを消す場合は For each文で Tabledefsを指定しましょう。
1 2 3 4 5 |
For Each Def In DB.TableDefs For Each Fld In Def.Fields Fld.Properties.Delete "format" Next Fld Next Def |
今回はここまで。
ノシ
---コメント---