Access (一般機能)

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

 
(Windows 7 Professional : Access 2016)
エクセルデータの登録について
投稿日時: 17/11/19 18:18:21
投稿者: osso3858

エクセルで「製造年月日」列(A列)の
1行目に日付形式で2017/10/10と入っており
2行目にテキスト形式で2017年(平成29年)10月10日
と入っている2行のデータをACCESSのデータ型が短いテキストのフィールドに貼り付けコピーすると
1行目はgg y/10/10
2行目は2017年(平成29年)10月10日
となり、1行目が自動変換されてしまいます。(書式に@が入っていても入っていなくても同じです。)
エクセルで表示されたデータのまま、ACCESSに取り込むにはどのようにしたら良いのでしょうか。
ご教授いただければと存じます。

回答
投稿日時: 17/11/20 14:28:27
投稿者: Suzu

こんにちは。
 
Excelからの貼付けの前に、
 
キーボードから入力を行い

引用:
1行目に日付形式で2017/10/10と入っており
2行目にテキスト形式で2017年(平成29年)10月10日

となる様にしなければなりません。
 
【行目】と仰っていますので、
同じフィールドにおいて上記の様に見せたい。 = 同じデータ型で上記のの様に見せたい。
という事です。
 
フィールドに、仮に日付時刻型のデータ型を設定したとしても、
書式は、1行目 : yyyy/m/d
        2行目 : yyyy年(ggee年)m月d日
とならないと実現できませんが、同一フィールドの中で書式を変える事はできません。
そもそも【書式】は見せ方を変えているだけで、データの値としては変わりません。
 
となると、
出来る事としては、データ型をテキスト型 として、
見せたいそのものの値を渡すしかありません。
 
しかし、Excel側では書式設定で上記を実現しているのであれば
Excel側のセルに保存されている 「値」は
一行目:2017/10/10
二行目:2017/10/10
と同じではありませんか?
 
であれば、単純に、インポートすれば良いという事にはなりません。
 
Excelのセルに保存されている値 = 見せたい値となる様
(Excel側で、format関数 TEXT関数を使います)
 
見せたい値の文字列とした形 の値、その物を作成しAccess側でインポートする必要があります。
 
ex1)
 
A1:2017/10/20 【セルの書式 yyyy/m/d】
A2: 2017/11/21 【セルの書式 yyyy年(ggee年)m月d日】
 
の時で、セルの書式が上記2種類しかない場合
 
B1/B2に:=IF(CELL("format",A1)="D1",TEXT(A1,"yyyy/mm/dd"),TEXT(A1,"yyyy年(gge年)y月d日"))
を設定してみましょう。

回答
投稿日時: 17/11/20 15:16:41
投稿者: sk

引用:
1行目に日付形式で2017/10/10と入っており
2行目にテキスト形式で2017年(平成29年)10月10日
と入っている2行のデータをACCESSのデータ型が短いテキストのフィールドに貼り付けコピーすると
1行目はgg y/10/10
2行目は2017年(平成29年)10月10日
となり、1行目が自動変換されてしまいます。

[形式を選択して貼り付け]コマンドによって
文字列として貼り付けてみても同様でしょうか。

投稿日時: 17/11/21 17:29:44
投稿者: osso3858

sk様の方法で解決できました。ありがとうございます。
また、Suzu様も非常にご丁寧にご教授いただきありがとうございました。