• ベストアンサー
  • 困ってます

Access ADOで文字列を日付型へinsert

VBScriptでCSVファイルのデータをADO経由でAccessにinsertしたいのですが、日付型へのinsertがうまくいきません。 CSVファイルにある「8桁日付」(例:20110101)をAccessの日付型フィールドへinsertするのに、以下の試みをしましたが、型不一致etcのエラーがでてしまいました。 どうしたら、insertできるのでしょうか? 1.8桁日付を yyyy/mm/dd に編集(mid使用) してinsert →型不一致エラー 2.CDATE(yyyy/mm/dd) をinsert →型不一致エラー 3.CDATE(#yyyy/mm/dd#) をinsert →型不一致?エラー ハマってしまって困っています。ご存知の方がいらっしゃいましたら是非是非教えてください。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数3559
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1
  • nda23
  • ベストアンサー率55% (773/1384)

SQLのINSERT文を使っているのですか? この場合、日付は#で囲みます。 INSERT INTO ~ SELECT #2011/02/24# ~ 又はCDate関数では文字列にします。 INSERT INTO ~ SELECT CDate("2011/02/24") ~

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。 CDateでinsertできました。助かりました!

その他の回答 (1)

  • 回答No.2
  • osamuy
  • ベストアンサー率42% (1231/2878)

RecordsetでAddNewするとか。 コード例として。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Accessの日付フィールドデータの取得について。

    VbScriptでオブジェクトに、Accessの日付フィールドデータを取得するのですが、その際、 "YYYY/MM/DD HH:MM:SS" の形式で取得するにはどのようにしたらよいのでしょうか。 よろしくお願いします。

  • ACCESS フォームで入力した日付をクエリで読み

    ACCESS フォームで入力した日付をクエリで読み替えたい ACCESS フォームで入力した日付をクエリで使用しているテーブルの書式に変換したい フォーム テキスト名:日付にyyyymmdd で入力します クエリ テキスト名:日付はパラメータとして使用しています クエリ内で使用しているテーブルの日付書式は 日付:yyyy/mm/ddです パラメータは 「日付始」と「日付終」の2箇所のテキストに入力されたデータを使用しています。以下がパラメータです。 Between [Forms]![フォーム]![日付始] and [Forms]![フォーム]![日付終] フォームのテキストボックスにyyyymmddと入力してもクエリでエラーが出ることない パラメータを日付に設定したいのですがどうしたらよいでしょうか? ちなみに、以下の式を入れたらエラーです。 Between CDate(Format([Forms]![フォーム]![日付始],"yyyy/mm/dd")) and CDate(Format([Forms]![フォーム]![日付始],"yyyy/mm/dd")) と入力しましたところ、、、、「式が複雑すぎるか、、、」のエラーメッセージが出てしまいました。 どなたか助けてください。お願い致します。

  • 文字列を日付へ

    エクセルで「04/03/2003」という文字列が入ったセルがあります。 これを日付形式に変更したいのですが、簡単な方法はありませんか? セルの表示形式のユーザー定義で「mm/dd/yyyy」としても変わりませんでした。。 何かやり方が間違えているのでしょうか??? よろしくお願いしますm(__)m

  • ACCESSの日付形式

    テーブルに日付形式のフィールドがあり、エクスポートすると、形式がyyyy/mm/dd hh:mm:ddになってしまいます。 yyyy/mm/dd形式でエクスポートするには、どのようにしたらよいでしょうか。 VBAのDocmd.TransferTextで行いたいと思います ちなみにAccess97です。 よろしくお願いします

  • 日付型→文字列

    SQLServer2005の環境にて、 日付型の項目(YYYY/MM/DD HH:MM:SS)から日付のみを抽出したい場合、 現在SUBSTRING(CONVERT(VARCHAR,AA),1,10) と変換を行っているのですが、結果が「MM DD YYYY」となってしまいます。 「YYYY/MM/DD」の形式で取得するにはどのようなSQL文にすればよろしいのでしょうか。

  • VBAのAccessでDATE型のINSERT

    テーブルに今日の日付でインサートしたいのですが、なぜか、まったく違う日付になってしまいます。 わかる方教えてください。 よろしくお願いします。 INSSQL = "INSERT INTO aaa(test)" _ & " Values(" & Format   (Date, "yyyy/mm/dd") & ");"

  • BCPでCSV内の文字列をテーブルのDatetime型カラムに取り込む方法

    BCPを使用してCSVをテーブルに取込みたいのですが、 CSV内に日付形式の文字列(YYYY/MM/DD)があり、 取込先のテーブルの型はDatetimeになっています。 フォーマットファイルのデータ型は「SYBCHAR」 で設定しているのですが、いざ取込もうとすると、 以下のようなエラーが出てうまく取込めません。 SQLState = 22008, NativeError = 0 Error = [Microsoft][ODBC SQL Server Driver]日付の形式が正しくありません。 フォーマットファイルの設定が悪いのでしょうか? なんとか回避する方法はないでしょうか。

  • ACCESSでのINSERTについて

    ACCESSで以下のコマンドがエラーになってしまったのですが、 何か問題がありますでしょうか? INSERT INTO tbl_TREE (TEXT, DATE) VALUES ('ああ'     ,TO_DATE('2007/01/121:57:27',YYYY/MM/DDHH24:HH24MI:SS')) よろしくお願いいたします。

  • yyyy/mm/ddをyymmddの文字列に

    一つの列にyyyy/mm/dd(日付)とyymmdd(文字列と標準が混在)が混在しているものを、全て文字列のyymmddにするために、区切り位置で全てを文字列にしてから文字操作でyymmddにしようとしてます。 vbaで区切り位置を使用してyyyy/mm/dd(日付)を文字列に変換するとdd/mm/yyyyと表示されてしまいます。vbaでやらずにそのまま区切り位置で文字列に変換するとそのままyyyy/mm/ddの表示のままなのに、vbaでやるとなぜdd/mm/yyyyになってしまうのでしょうか? vbaで日付yyyy/mm/ddを文字列yyyy/mm/ddに変換する方法を教えてください。 よろしくお願いいたします!

  • Accessで日付を抽出するパラメータを設定したい

    Accessのクエリで日付に対して与えているパラメータがあります。 パラメータで指定したいデータはフォームのテキストに入力した日の23:59:59 以降の日付を抽出したい。 入力:数値8桁(yyyymmdd)で行う 抽出先テーブルのデータ:yyyy/mm/dd hh:mm:ss 現在以下のパラメータを日付に対して与えると「式が複雑すぎます、、、」と注意されてしまいます。 指定日の23:59:59を抽出範囲として指定するのはどうしたらよいでしょうか? 入力値の変換も含めて、以下のパラメータを入れています。 「+"23:59:59"」をとればエラーは出ません。 <=IIF(Len([Forms]![フォーム名]![日付])=8,CDate(Format([Forms]![フォーム名]![日付],"@@@@/@@/@@")),#9999/1/01#)+"23:59:59" どなたか、お助け下さい。よろしくお願い致します。