質問: accessへ日付をinsert 今access2000のテーブルから文字として受け取ったデータを 同じくaccessの別テーブルの日付型にinsertしようとしています。 ソフトはvc6.0を使用しています。 受け取るselectはうまくできています。 uchar sqlstr [ ] ="insert into テーブル名" "(カラム1、カラム2、カラム3)" "values(?,?,?)"; insertはこのようにsql文を用意しておいてsqlexecuteで sql文を実行しようとしています。 この場合にカラム1が日付型だとしたら、 「?」のパラメータには文字として渡し、 sql文のなかで "values(to_date(?,'yyyymmdd'),?,?)"; とすればうまくいくと思ったのですができません。 いろいろサイトを見るとaccessでは「’」ではなく「#」を使うと 書いてあったので to_date(?,#yyyymmdd#) とやったのですがエラーになってしまいます。 ちなみにパラメータとして渡す文字列は「20020413」という 8桁の普通の文字です。 どなたか知っている方いませんでしょうか? 他に方法があればそれでも構いません。 どうか教えてください。m(__)m どうしても先へ進めません...。
回答: 後はvc側で文字列のフォーマットを変えれば良いですね。 memcpy()、lstrcpyn()あたりで文字列を切り出して、'/'やnullは自分でセットすればできますし、 フォーマットが単純なのでwsprintf()を使用しても簡単です。 桁数固定のため、日付部分に適当な文字を入れたsql文の文字列を作成しておき、後から該当部分に値をセットする、という方法でもできます。 access側で日付入力のフォーマットを変更することは、クエリレベルではできないと思います。