• ベストアンサー

データ型の変更

アクセス2003を使っています。 ユニオンクエリを使って複数のクエリを結合しました。 その後、SQLで結合したクエリをテーブルにする為、 SELECT Qユニオンクエリ.* INTO T統合 FROM Qユニオンクエリ; という、SQLを使ってテーブルにしました。 できあがったテーブルのデータ型が希望通りになっていないので、 データ型を変更して、常にそのデータ型で処理したいので保存しておきたいと思います。 しかし、データを入れる度に、前述のユニオンクエリを使い、再びそのクエリをテーブルにするという処理を行います。 その際にデータ型がまた変わってしまいます。 対処方法はあるでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.3

最初の回答を参考にしていただければ良いのですけどね。 SELECT 研修コード,開講月,社員コード,… CDate(1回目採点日) As 1回目採点日,… INTO T統合 FROM Qユニオンクエリ 但し、空文字列、Null、日付と解釈できない文字列が出てこないという 前提です。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.4

固定でやるのならテーブル作成ではなく テーブルを事前確保しておき 全レコード削除後に INSERT INTO T統合 SELECT Qユニオンクエリ.* FROM Qユニオンクエリ; としてレコード追加方式をとるのも可能かと思いますが

すると、全ての回答が全文表示されます。
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.2

えっ、列じゃないの?行は無理です。

maintec
質問者

お礼

訂正させて頂きます。 列です。 失礼致しました。

すると、全ての回答が全文表示されます。
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.1

例えば、1列目は日付なのに、文字列になってしまうとか・・・ その場合は明示的な型変換を行います。 SELECT CDate(1列目) AS 日付,・・・ INTO 統合 FROM Qユニオンクエリ この場合は*ではなく、全フィールドを名前で指定します。 但し、複数のクエリで*を使い、しかもテーブル毎にフィールド名が 違う場合は列の名前が同じになるよう*を使わず、AS句で名前を一致 させます。こうしないと、条件によりフィールドが存在しないという エラーになることがあります。

maintec
質問者

お礼

早速の回答ありがとうございます。 nda23様のおっしゃる通りにやってみたところ、私の力不足から上手くいきませんでした。 結合したクエリ名をQユニオンクエリとしています。 このQユニオンクエリの中身は 1行目に研修コード(数値型) 2行目に開講月(テキスト型) 2行目に社員コード(数値型)   ・   ・   ・ 10行目に1回目採点日(テキスト型)   ・   ・   ・ となっています。 この10行目をテキスト型から日付/時刻型にしたいと思っています。 お手数をおかけしますが、よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A