Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2016)
テーブル内のフィールドの書式の変更方法
投稿日時: 19/12/18 20:59:56
投稿者: ぱおぱお

テーブル内のフィールドの書式をVBAで変更したいと考えています。
ADOでの記述方法を知りたいのですが、例えば
 
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
 
    Set cn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
    With rs
    .Source = テーブル名
    .CursorType = adOpenStatic
    .LockType = adLockPessimistic
    .ActiveConnection = cn
    .Open
    .Fields ("日付")
    .Fields("日付").Properties("Format") = "yyyy/mm/dd(aaa)"
    .Update
    .Close
    End With
 
(テーブル名のテーブル内の「日付」フィールドの書式を"yyyy/mm/dd(aaa)"に
 変更したいと考えています)
 
のようなコードを考えましたがうまくいきません。
もし分かる方がいましたら、ご教授いただけまんでしょうか?
 
よろしくお願い致します。

回答
投稿日時: 19/12/18 22:50:36
投稿者: WinArrow
投稿者のウェブサイトに移動

私ならば・・・というお断りをいれておいて
 
テーブルに定義しておくよりも
使うときに、使う側で書式を設定して使います。
 
使う場面で、曜日が必要ない場合もあるから・・・・

回答
投稿日時: 19/12/19 10:20:26
投稿者: よろずや
回答
投稿日時: 19/12/19 15:28:14
投稿者: sk

引用:
テーブル内のフィールドの書式をVBAで変更したいと考えています。
ADOでの記述方法を知りたいのですが

引用:
Dim rs As New ADODB.Recordset

引用:
.Fields("日付").Properties("Format") = "yyyy/mm/dd(aaa)"

ADODB.Recordset オブジェクトによって
テーブル定義の変更を行なうことは出来ません。
(そういうことをするためのオブジェクトではない)
 
また、フィールドの[書式]プロパティは Access アプリケーションによって
自動的に追加/削除される拡張プロパティです。
 
あくまでテーブル/クエリが Access のデータシートビューで開かれた際において
「そのフィールドの値をどのような形式で表示するか」を設定するための
プロパティであり、ADODB.Recordset オブジェクトによって
テーブル/クエリが開かれた際におけるフィールドの表示形式を
決定づけるものではありません。

投稿日時: 19/12/21 06:53:21
投稿者: ぱおぱお

WinArrow様、よろずや様、sk様、コメントありがとうございました。
 
確かにテーブルに定義しなくても困るわけではないため、
設定しない方向で検討します。(テーブルを表示する際に曜日が
見えたほうが便利かなと考えていたレベルです)
 
よろずやさんからのリンクのような内容でADO(??)での設定方法が
ないかと考えていましたが、定義の変更は難しいとのことで
承知しました。
 
ありがとうございました。