Access (一般機能)

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

 
(Windows 10全般 : Access 2013)
文字列と時刻が混合されている場合のインポート
投稿日時: 18/12/04 16:43:16
投稿者: えあろん

文字列と時刻が混合されているエクセルのセルをアクセスのテーブルにインポート
したいのですが、データ型はどうすればそのまま、インポート出来るのでしょうか?
 
もしくはインポートしてから、クエリで変換可能でしょうか?
時刻と文字列に変換可能でしょうか?

回答
投稿日時: 18/12/05 13:46:47
投稿者: sk

引用:
文字列と時刻が混合されているエクセルのセルをアクセスのテーブルにインポート
したいのですが、データ型はどうすればそのまま、インポート出来るのでしょうか?

・1 つのセルの値が「日付/時刻として解釈出来ない文字列」と
 「日付/時刻として解釈出来る文字列」の 2 つによって
 構成されている。
 (セルに格納されているデータ自体の型は文字列であり、
 同じ入力形式のセルによって 1 つの列が構成されている)
 
・1 つの列の中に「文字列データが格納されているセル」と
 「日付/時刻データが格納されているセル」が混在している。
 
どちらの意味でおっしゃっているのでしょうか。
 
引用:
もしくはインポートしてから、クエリで変換可能でしょうか?
時刻と文字列に変換可能でしょうか?

同上。
 
また、既存のテーブルにインポートなさろうとしているのか、
新規テーブルとしてインポートなさろうとしているのか、
どちらなのでしょうか。

投稿日時: 18/12/06 10:01:55
投稿者: えあろん

skさん
 
返信ありがとうございます、通知がこなくて返信
遅れまして申し訳ございません。
 
・1 つのセルの値が「日付/時刻として解釈出来ない文字列」と
 「日付/時刻として解釈出来る文字列」の 2 つによって
 構成されている。
 (セルに格納されているデータ自体の型は文字列であり、
 同じ入力形式のセルによって 1 つの列が構成されている)
 
・1 つの列の中に「文字列データが格納されているセル」と
 「日付/時刻データが格納されているセル」が混在している。
 
どちらの意味でおっしゃっているのでしょうか。
 
エクセルデータでは、日付/時刻として解釈出来る文字列
で表示されていて、文字列データと日付/時刻型が混在しております。
 
例)調査不可能
  18時頃
  夜間バッチ
  12:00
  23:00
  14:05
  調査不明
  19時頃
  -
  17時頃
 
 
 
また、既存のテーブルにインポートなさろうとしているのか、
新規テーブルとしてインポートなさろうとしているのか、
どちらなのでしょうか。[/quote]
 
既存のテーブルにインポートしております。

回答
投稿日時: 18/12/06 10:50:38
投稿者: sk

引用:
エクセルデータでは、日付/時刻として解釈出来る文字列
で表示されていて、文字列データと日付/時刻型が混在しております。

ならばテキスト型のフィールドとして取り込むしかないでしょう。
 
引用:
もしくはインポートしてから、クエリで変換可能でしょうか?
時刻と文字列に変換可能でしょうか?

例示された値を見る限り、何らかの時刻を示しているというより
何らかの業務に関する調査結果や備考のような情報を示している
項目のようですから、そのまま文字列として扱えばよいだけだと思います。
 
引用:
文字列と時刻が混合されているエクセルのセルをアクセスのテーブルにインポート
したいのですが、データ型はどうすればそのまま、インポート出来るのでしょうか?

引用:
既存のテーブルにインポートしております。

任意の Excel ワークシートを既存のテーブルにインポートした際に、
データ型変換エラーが発生するとか、日付/時刻データが格納されたセルの値が
異なる書式のテキストとして取り込まれてしまうといった現象が発生している、
というのが今回問題視されていることなのでしょうか。
 
任意の Excel ワークシートを Access のテーブルにインポートする際に
ワークシート上のそれぞれの列のデータ型がどのように解釈されるかは、
インポート先となるテーブルの各フィールドのデータ型によってではなく、
インポート元となるワークシートの先頭の 25 行をサンプリングして
各列のセルに格納されているデータを解析した結果から
自動的に決定されています。
 
新規テーブルとしてインポートする場合はともかく、
既存のテーブルにインポートする際において
各列のデータ型を個別に指定することは出来ません。
 
例えば、そのワークシートを CSV ファイルとして保存した上、
ワークシート変換機能ではなくテキスト変換機能によって
CSV ファイルのインポートを実行された方が確実でしょう。
(各列のデータ型の指定については、インポート定義を使用して下さい)

投稿日時: 18/12/06 14:22:18
投稿者: えあろん

skさん
 
回答ありがとうございます!
 

引用:
任意の Excel ワークシートを既存のテーブルにインポートした際に、
データ型変換エラーが発生するとか、日付/時刻データが格納されたセルの値が
異なる書式のテキストとして取り込まれてしまうといった現象が発生している、
というのが今回問題視されていることなのでしょうか。
[/quote]
 
その通りです。
 
引用:
例えば、そのワークシートを CSV ファイルとして保存した上、
ワークシート変換機能ではなくテキスト変換機能によって
CSV ファイルのインポートを実行された方が確実でしょう。
(各列のデータ型の指定については、インポート定義を使用して下さい)
[/quote]
 
ありがとうございます!
エクセルでテキスト型でインポートしてからクエリで時刻を
変換させるか、CSVでインポートさせるのが確実ですね。
こちらを実行させてみたいと思います!