テーブルオブジェクトの日付の書式一括設定
2000か2003のどちらかでは動かしたことがある。
責任持たない
Public Sub Hoge()
Dim tbl As TableDef
Dim fld As Field
For Each tbl In CurrentDb.TableDefs
If Left(tbl.Name, 4) <> "MSys" _
And Left(tbl.Name, 5) <> "bkup_" Then
For Each fld In tbl.Fields
If fld.Type = dbDate Then
'Debug.Print tbl.Name & "." & fld.Name
If fld.Name = "作成年月日" Or fld.Name = "更新年月日" Then
Else
Call SetAccessProperty(fld, "Format", dbText, "yyyy/mm/dd")
End If
End If
Next
End If
Next
End Sub
Public Function SetAccessProperty(obj As Object, strName As String, _
intType As Integer, varSetting As Variant) As Boolean
Dim prp As Property
Const conPropNotFound As Integer = 3270
On Error GoTo HandleError
' Properties コレクションを明示的に参照します。
obj.Properties(strName) = varSetting
obj.Properties.Refresh
SetAccessProperty = True
HandleExit:
Exit Function
HandleError:
If Err = conPropNotFound Then
' プロパティを作成し、種類を指定して、初期値を設定します。
Set prp = obj.CreateProperty(strName, intType, varSetting)
' Property オブジェクトを Properties コレクションに追加します。
obj.Properties.Append prp
obj.Properties.Refresh
SetAccessProperty = True
Resume HandleExit
Else
MsgBox Err & " : " & vbCrLf & Err.Description
SetAccessProperty = False
Resume HandleExit
End If
End Function