• ベストアンサー

ADODB.Recordset エラー '800a0cc1' が出てしまいます。

はじめまして。SQL文について質問です。 以下の文で、 '2009/04/01 0:0:0'~'2009/04/21 23:59:59'の間にあるデータのうち 最も時間の古いものを取りたいのですが、エラーが出てしまいました。 ひととおり、調べたのですが、基本的すぎて分かりませんでした。 御指摘いただけるとうれしいです。 SELECT sID,KANJINAME,KANANAME,WARDNAME,subject,MAX(D_time) FROM Q_Reg1Data WHERE ((D_time >= CDate('2009/04/01 0:0:0')) AND (D_time <= CDate('2009/04/21 23:59:59'))) GROUP BY sID,KANJINAME,KANANAME,WARDNAME,subject ADODB.Recordset エラー '800a0cc1'

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

  • ベストアンサー
  • 3226327
  • ベストアンサー率83% (5/6)
回答No.2

データベースの相手は何ですか?Accessですか?Oracleですか? ADOだからといって、相手のデータベースが解釈できない関数は使用できません。 ⇒CDate関数を気にしています。 文面には相手のデータベースが書いてありませんので、以下は想像なので、失礼な点があるかもしれません。 CDate関数を使っているところからAccessかと思いますが、単にVBだからという勘違いはないでしょうか? もし、相手のデータベースがOracleの場合は、 D_time>=TO_DATE('2009/04/01','YYYY/MM/DD') AND D_time<TO_DATE('2009/04/21','YYYY/MM/DD') また、MySQLの場合は、 D_time>=DATE_FORMAT('2009/04/01','%Y/%m/%d') AND D_time<DATE_FORMAT('2009/04/21','%Y/%m/%d') などと使い分ける必要があります。 ちなみに、 >最も時間の古いものを MIN(D_time)では?

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

その他の回答 (1)

回答No.1

http://www.ken3.org/asp/backno/asp073.html のページ内をエラーコードで検索すると良さそう。

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

関連するQ&A

  • SQL文の初歩的な質問

    はじめまして。SQL文について質問です。 以下の文で、 '2009/04/01 0:0:0'~'2009/04/21 23:59:59'の間にあるデータのうち 最も時間の古いものを取りたいのですが、エラーが出てしまいました。 ひととおり、調べたのですが、基本的すぎて分かりませんでした。 御指摘いただけるとうれしいです。 SELECT sID,KANJINAME,KANANAME,WARDNAME,subject,MAX(D_time) FROM Q_Reg1Data WHERE ((D_time >= CDate('2009/04/01 0:0:0')) AND (D_time <= CDate('2009/04/21 23:59:59'))) GROUP BY sID,KANJINAME,KANANAME,WARDNAME,subject ADODB.Recordset エラー '800a0cc1'

  • 構文エラー : 演算子がありません。

    アクセスからデータをひっぱってくる、SQL文で、 以下エラーメッセージが発生します。 [Microsoft][ODBC Microsoft Access Driver] クエリ式 'D_time <= & w_jyukobistart' の 構文エラー : 演算子がありません。 ちなみに w_jyukobistart は、画面上で入力された、日付データを含む変数です。この変数をSQLに使っていることが、根本的に違うのでしょうか? '実績テーブル(重複処理する用)へのデータ格納のためのSQLstrSQL6 = "SELECT .sID,B.subject,B.D_time FROM (SELECT sID,Min(D_time) AS mtime ,subject FROM Reg1Data WHERE D_time <= & w_jyukobistart GROUP BY sID,subject) A INNER JOIN Reg1Data B ON A.sID=B.sID AND A.mtime=B.D_time GROUP BY B.sID,B.subject,B.D_time ORDER BY B.sID,B.subject;"

  • SQL文でデータを抽出できない。

    現行のSQL文でACCESSからデータを抽出してきていたのですが、それでは問題が起きてしまったので、以下の内容にSQLを変更したいのですが、思うようにできません。 詳しい方がいましたらご教授願います。 お手数ですが、困っているのでよろしくお願いいたします。 *現行のSQL* 日付が最も若いものでかつ、IDとSUBJECTに重複のない データを抽出する。 "SELECT .sID,B.subject,B.D_time FROM (SELECT sID,Min(D_time) AS mtime ,subject FROM Reg1Data GROUP BY sID,subject) A INNER JOIN Reg1Data B ON A.sID=B.sID AND A.mtime=B.D_time GROUP BY B.sID,B.subject,B.D_time ORDER BY B.sID,B.subject;" *変更したいSQL* ある範囲の日付の中で(日付は、入力画面から抽出)日付が最も若いものでかつ、IDとSUBJECTに重複のないデータを抽出する。 "SELECT .sID,B.subject,B.D_time FROM (SELECT sID,Min(D_time) AS mtime ,subject FROM Reg1Data WHERE D_time <= & w_jyukobistart GROUP BY sID,subject) A INNER JOIN Reg1Data B ON A.sID=B.sID AND A.mtime=B.D_time GROUP BY B.sID,B.subject,B.D_time ORDER BY B.sID,B.subject;" 以上を実行すると、 [Microsoft][ODBC Microsoft Access Driver] クエリ式 'D_time <= & w_jyukobistart' の 構文エラー : 演算子がありません。 というエラーが出ます。 ちなみにw_jyukobistart はWEBの画面上に入力された抽出したいデータ範囲(from)です。 この変数の使い方に問題があるのか、それともSQL文自体に無理があるのか、最も良い方法をお尻の技術者の方、お答えいただけるとうれしいです。

  • recordsetが取得できなかった場合

    Access2003のVBAについて質問です。 recordsetが取得できなかった場合、どういった値が返されるのでしょうか? やりたい事は、recordsetが取得できた時、できなかった時でメッセージの表示を変えたいです。 ご教授よろしくおねがいします。 Public Sub Exsample() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Dim SQL As String '接続 Set CN = CurrentProject.Connection 'レコードセットを取得 Set RS = New ADODB.Recordset SQL = "SELECT * FROM 生徒名簿 WHERE クラス = 'TS'" RS.Open SQL, CN, adOpenKeyset, adLockOptimistic

  • オラクル11gでMAXを使うとエラーになった。

    お世話になります。 WIN7 Oracle11g の環境で dim rs as new adodb.recordset sql = "select max(sal) from file_name where pcname= '" & PCN & "'" rs.open sql,cn,adopenstatic,adlockoptimistic を実行すると ora-00937 のエラーになってしまいます。 oracle9iでは、エラーにならなかったのですが、なにか変ったのでしょうか。 どなたかご教授頂ければ助かります。

  • [Excel]ADODBでNull変換されてしまう

    お世話になります。 今、Office2003で次のようなマクロを作成しています。 マクロが保存されているブックM、 参照するデータが保存されているブックD、 出力先のブックOがあり、 ブックMにてADODBをつかって、ブックDからSQLによる条件でブックOへ出力します。 このとき、ブックDのセルではちゃんとデータがセットさせているのに 出力したブックOでは空になってしまうという現象が発生して困っています。 デバッグ等して確認してみたところ、 書式が標準のセルで、文字列型の数値(文字列型のセルから値コピーした場所)が入っていると RecordSetにとれた段階でNullに変換されてしまてしまっているように見えました。 この問題を解決するために何かよい方法はありますでしょうか? ソースコードの詳細は確認できないのですが こんな感じだったと思います。 ※ rs.Requeryにて、rsの中身を確認した時点でNullだったので QueryTablesによる取り込みは関係ないと考えています。 Set conn = CreateObject("ADODB.Connection") conn.Open ConnectString Set sql = CreateObject("ADODB.Command") sql.CommandType = 1 sql.ActiveConnection = conn sql.CommandText = SQL文(? とUNION含む) sql(0) = パラメータ設定 ... Set rs = CreateObject("ADODB.RecordSet") Set rs = sql.Execute With Sheet1.QueryTables.Add(rs, "A1") .AdjustColumnWidth = False .FieldNames = True .BackgroundQuery = False .Refresh False .Delete End With ...

  • ADODB.Recordsetを使用してExcelのデータを取得

    よろしくお願いします。 以下のコードで、最終行で「エラーを特定できません」というエラーが表示されるのですが、 エラーが表示される時とされない場合があります。 Dim ObjRS Set ObjRS = Server.CreateObject("ADODB.Recordset") Dim StrConn StrConn = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" &_ Request.ServerVariables("APPL_PHYSICAL_PATH") & StrFileName & ";" Dim StrSQL StrSQL = "SELECT * FROM " & EXCEL_DATA_RANGE_NAME ObjRS.Open StrSQL, StrConn, 0 最初に実行したときは、エラーも表示されず、期待した結果を得ることができるのですが、再度実行したら「エラーを特定できません」となり、 1分ほど時間をおくとまたエラーを起こさずに動作するという感じです。 まったく原因が分からず、困っております。 宜しくお願いいたします。

  • VB script 型が一致しません。: 'cdate'

    Microsoft VBScript 実行時エラー エラー '800a000d' 型が一致しません。: 'cdate' というエラーが出てコンパイルができません。 いろんなサイトでCDATEの使い方を調べたのですが、うまく できませんでした。 初歩的な質問ですが、ご回答いただけるとうれしく思います。 以下コードになります。 if (oRec_Q_Reg1Data.Fields("D_time") >= CDate( w_jyukobistart & "0:0:0")) Then do while not oRec_Q_W_Reg2Data.EOF oRec_Q_W_RegWData.addnew    oRec_Q_W_RegWData.Fields("Hantei") =  oRec_Q_W_Reg2Data.Fields("Hantei") end if oRec_Q_W_Reg1Data.Update    oRec_Q_W_Reg2Data.Movenext loop

  • Excel 2003 ADOの利用について。

    Excel 2003 ADOの利用について。 Excel 2003 ADOの利用について。 現在、ExcelのVBAからADOを利用して自分自身のシートよりデータの抽出を行うものを作っています。 Recordsetを取得する際に意味不明なエラーが発生し、原因が分からず悩んでおります。 コードは下記の様になっております。 SQL = "SELECT Col1 FROM [Sheet1$]" SQL = SQL & " WHERE" SQL = SQL & " Col1 > 10" SQL = SQL & " and Col5 like '" & TextBox1 & "%'" Set RS = New ADODB.Recordset RS.Open SQL, CN, adOpenStatic, adLockReadOnly TextBox1の値をCol5列に存在する値を入れてやると、エラーは発生せずRecordsetを 取得し値を得ることができるのですが、Col5列に存在しない値を入れると、RS.Open行で必ずエラーが出ます。 エラー内容は下記の通りです。 --------------------------------------- Run-time error '-2147217900 (80040e14)' 不明 --------------------------------------- どうぞよろしくお願い致します。

  • sql エラー

    エラーが出ます。どこかおかしな点はありますでしょうか。 エラー文 Call to a member function prepare() on a non-object ソース $page = 1; $limit = 2; $offset = $limit * ($page - 1); $sql='SELECT COUNT(*) FROM message WHERE memberid=? GROUP BY aid'; $stmt=$dbh->prepare($sql); $data[]=$memberid; var_dump($data); $stmt->execute($data); $dbh=null; $total=$stmt->fetchColumn(); $lastpage= ceil($total/$limit); $sql='SELECT aid,max(kaisyamei),max(day) FROM message WHERE memberid=? GROUP BY aid LIMIT '.$limit.' OFFSET '.$offset; $stmt=$dbh->prepare($sql); $stmt->execute($data); $dbh=null; ご教授お願いいたします。

    • ベストアンサー
    • MySQL