文書番号: 401672
最終更新日: 1998/02/10
SQLOpen #N/A(2042) 接続に失敗 SQLExecQuery #N/A(2042) クエリーを実行できない #VALUE(2015) 接続 ID が有効でない SQLRrtrieve #N/A(2042) 結果を検索できない、待機中の結果がない 0 データが見つからない #VALUE(2015) 接続 ID が有効でない SQLClose #VALUE(2015) 接続 ID が有効でないこのリターン値をそれぞれ検査することによって失敗した時の判定をすることが
SQL Server プログラム実行環境 サーバー SQLServer ODBC ドライバ SQLServerODBC ドライバ (Excel5.0 添付) データソース名 TstSQL TstSQL の内容 サーバー名 serversql1 ユーザー ID sa データベース pubs パスワード ExcelXLODBC アドイン関数を使用したサンプル モジュールは次の通りです。
'以下の 2 行は改行せずにコードを入力してください。 '上の 2 行は改行せずにコードを入力してください。
Dim site As String Sub GetErrorSQL() Dim con As Variant Dim execresult, retriresult, closeresult As Variant 'データソースとの接続 '以下の 2 行は改行せずにコードを入力してください。 con = SQLOpen("DSN=TstSQL;SERVER=serversql1;UID=sa;DATABASE=pubs; PWD=Excel", , 1) '上の 2 行は改行せずにコードを入力してください。 If IsError(con) Then site = "接続": ErrorCheck (con): Exit Sub 'クエリーの実行 execresult = SQLExecQuery(con, "SELECT * FROM 書店") If IsError(execresult) Then _ site = "クエリー実行": ErrorCheck (execresult): Exit Sub '結果の取得と貼り付け retriresult = SQLRetrieve(con, Range("Sheet2!A1"), , , True) If IsError(retriresult) Then _ site = "クエリー結果取得": ErrorCheck (retriresult): Exit Sub 'データソースとの接続を切断 closeresult = SQLClose(con) If IsError(closeresult) Then _ site = "切断": ErrorCheck (closeresult): Exit Sub End Sub 'エラーチェック Sub ErrorCheck(CheckValue As Variant) Dim errmsg As Variant MsgBox "エラー処理開始" errmsg = SQLError() 'SQLError で 3 つのフィールドのエラーが返った時の処理 If UBound(errmsg, 1) = 3 Then MsgBox "発生した場所: " & site & Chr(10) _ & errmsg(1) & Chr(10) & errmsg(2) & Chr(10) & errmsg(3) 'それ以外の個別のエラー判定処理 Else Select Case site Case "接続" If CInt(CheckValue) = 2042 Then MsgBox CStr(CheckValue) & Chr(10) & "発生した場所 :" _ & site & Chr(10) _ & "データソースとの接続が取り消されました" End If 'Exit Sub Case "クエリー実行" If CInt(CheckValue) = 2042 Then MsgBox CStr(CheckValue) & Chr(10) & "発生した場所 :" _ & site & Chr(10) & "クエリーを実行できません" ElseIf CInt(CheckValue) = 2015 Then MsgBox CStr(CheckValue) & Chr(10) & "発生した場所 :" _ & site & Chr(10) _ & "データソースとの接続 ID が有効ではありません" End If Case "クエリー結果取得" If CInt(CheckValue) = 2042 Then MsgBox CStr(CheckValue) & Chr(10) & "発生した場所 :" _ & site & Chr(10) _ & "データソース上で結果を検索できないか" _ & Chr(10) & "待機中の結果がありません" ElseIf CInt(CheckValue) = 0 Then MsgBox CStr(CheckValue) & Chr(10) & "発生した場所 :" _ & site & Chr(10) & "データが見つかりません" ElseIf CInt(CheckValue) = 2015 Then MsgBox CStr(CheckValue) & Chr(10) & "発生した場所 :" _ & site & Chr(10) _ & "データソースとの接続 ID が有効ではありません" End If Case "切断" If CInt(CheckValue) = 2015 Then MsgBox CStr(CheckValue) & Chr(10) & "発生した場所: " _ & site & Chr(10) _ & "データソースとの接続が有効ではありません" End If End Select End If End Sub
SQLServer 「 Microsoft Query 」の [?]-[目次] コマンド - [リファレンス ODBC ドライバ] - [SQL Server] - [上級ユーザー向け 接続文字列 (上級)] その他 ODBC ドライバ メーカーにお問い合わせ下さい
Keywords: KBINFO KB401672
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch