データベース

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

 
(Microsoft SQL Server)
SQLserver→Accessで、更新可能なまま日付を/(スラッシュ)表示させたい
投稿日時: 17/05/23 16:32:49
投稿者: yuki6982

お世話になります。
 
SQLserver2008とAccess2003をadpで接続している状態です。
SQL側でdate型で入っている「2000-01-01」という日付を
Access側で「2000/01/01」と表示させて書換え可能にしたいのですが上手く行きません。
 
SQL側で、CONVERT(VARCHAR(10), Date, 111) などとして変換した場合、
Access側で表示は上手く変換されるのですが、
この日付をAccess側から変更する事が出来なくなります。
※「2000-01-01」のままであれば更新可能です。
 
Access側のテキストボックスのコントロールで、
書式を「日付(S)」にしたり、
定型入力を「0000/00/00;0;_」にしましたが、
「2000-01-01」のまま全く変わりません。
 
ありがちな悩みなので私が知らないだけで良い方法があるような気がしているのですが
ネットで色々探してみても、どうしても見つけることが出来ませんでした・・・。
 
どなたか解決方法がお解かりでしたらご教授頂けないでしょうか。
 
宜しくお願い致します。

回答
投稿日時: 17/05/24 14:42:37
投稿者: sk

引用:
SQLserver2008とAccess2003をadpで接続している状態です。
SQL側でdate型で入っている「2000-01-01」という日付を
Access側で「2000/01/01」と表示させて書換え可能にしたいのですが上手く行きません。

Access における日付/時刻型と互換しているのは、
datetime 型です。
 
date 型は SQL Server 2008 以降に追加されたデータ型であり、
adp ファイルにおいて SQL Server との接続に用いられている
プロバイダ( SQLOLEDB )ではサポートされていないため、
Access における日付/時刻型としては解釈されません。
 
( mdb / accdb ファイル上に ODBC リンクテーブルを
 作成する場合とはまた別の話です)
 
引用:
Access側のテキストボックスのコントロールで、
書式を「日付(S)」にしたり、
定型入力を「0000/00/00;0;_」にしましたが、
「2000-01-01」のまま全く変わりません。

Access における日付/時刻型とはみなされていない
(テキスト型として解釈されている)ため、
( Access において)日付/時刻型のデータに
適用される書式設定もまた無効となります。

投稿日時: 17/05/24 17:01:12
投稿者: yuki6982

sk様
 
ご教授いただいた通り、datetime型に変更したところ
上手く行きました!
 
date型との違いは時間まで記録出来るところだけだと思っていたのですが
そういう事なのですね、勉強になりました。
 
本当にありがとうございました!!