- ベストアンサー
ADODCでデータベースに接続する際のエラーを拾うには?
WindowsXP,VB6,SP6,SQL2005にて開発しています。 ADODCを使って、データベースに接続しているのですが、 何らかのエラーが発生した場合、 こちらの指定したエラーメッセージを表示させたいのです。 なので、ADODC1_Errorにて試してみたのですが、 fCancelDisplay=0にしても、ErrorNumber=0にしても、 Scode=0にしても、Description=""にしても、 メッセージボックス(表示は何もない)が表示されてしまうんです。 それを出さないようにするには、どうしたらよいのでしょうか? どうぞ、ご教授よろしくお願いしますm(_ _)m
- KOHEI_JAPAN
- お礼率19% (58/305)
- Visual Basic
- 回答数2
- ありがとう数0
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
SQL Sever 2000+Access の場合ですが、基本は同じだと考えて・・・。 Public Sub ErrMessage(ByVal CnnErrors As ADODB.Error, ByVal strSQL As String) MsgBox "ADOエラーが発生しましたので処理をキャンセルします。" & Chr$(13) & Chr$(13) & _ "・Err.Description=" & CnnErrors.Description & Chr$(13) & _ "・Err.Number=" & CnnErrors.Number & Chr$(13) & _ "・SQL State=" & CnnErrors.SQLState & Chr$(13) & _ "・SQL Text=" & strSQL, _ vbExclamation, " ADO関数エラーメッセージ" End Sub Public Function CnnExecute(ByVal strSQL As String) As Boolean On Error GoTo Err_CnnExecute Dim isOK As Boolean Dim cnn As ADODB.Connection isOK = True Set cnn = CurrentProject.Connection With cnn .Errors.Clear .BeginTrans .Execute strSQL .CommitTrans End With Exit_CnnExecute: On Error Resume Next cnn.Close Set cnn = Nothing CnnExecute = isOK Exit Function Err_CnnExecute: isOK = False If cnn.Errors.Count > 0 Then ErrMessage cnn.Errors(0), strSQL cnn.RollbackTrans Else MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _ vbExclamation, " 関数エラーメッセージ" End If Resume Exit_CnnExecute End Function *単なるデザイナですので外していたらスミマセン!
その他の回答 (1)
- trajaa
- ベストアンサー率22% (2662/11921)
ん~言ってることがわかるような分からないような。。。 ・ADO接続でDB使っています。 ・ADO接続でエラーが発生した場合に、VBが出すエラーMSGではなく、自前の処理を行いたい。 ・エラーで使用されるオブジェクト等をクリアしても、標準のエラー処理が動いてしまう。 と言うことですか? エラートラップ掛けていますか? 関数の頭で On Error GoTo ErrHandler と呪文を唱え 関数の尾部で、 'エラー処理 ErrHandler: といった感じでラベルを宣言し、その中で自前の処理をすればよいのでは? この説明で理解できますか?
関連するQ&A
- VBからSQLServer2005のデータベースを最適化するには?
WindowsXP,VB6.0.SP6にて開発しております。 タイトルの通りですが、SQLServer2005のデータベースを最適化したいのです。 色々調べましたところ、ACCESSでの最適化は見つかるのですが、 SQLサーバーでのやり方が見つかりませんでした。 どうか、ご存知の方いらっしゃいましたら、 ご教授よろしくお願いしますm(_ _)m
- ベストアンサー
- Visual Basic
- VB2005よりSQLServer2005への接続
VB2005 Express版とSQL Server 2005製品版をインストールしました。 VB2005のデータベースエクスプローラよりデータベースの追加で 作成済みのSQLデータベースに接続しようとした所以下のエラーメッセージが出て接続出来ません。 ちなみに、メッセージの出ているリモート接続は確認しました。 リモート接続(TCP/IP及び名前付きパイプを使用する。) (エラーメッセージ) サーバーへの接続を確立している時にエラーが発生しました。SQL Server 2005に接続している時にこのエラーが発生した場合はSQL Serverの既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。(provider:SQLネットワークインターフェイス,,error:26 - 指定されたサーバー又はインスタンスの位置を特定しているときにエラーが発生しました) どなたか、解決の為のアドバイスを下さい。 当方、VBおよびSQLも今回初めて使用します。
- 締切済み
- SQL Server
- データベースの扱い方について
使っている環境はVB6.0です。 もともとデータベースが用意されていて、リストボックスにデータベースのデータを表示させたいのですが、どこでどのようにSQLの文を使ったら良いかなど全くわかりません・・・なので誰かわかる方お願い致します。
- 締切済み
- Visual Basic
- グリッドにデータベースの更新を反映させるには?
VB6.0SP5で開発しています。 単純なデータベースの更新プログラムなんですが、 更新した後にRefreshやRebindしても更新内容が反映されません。 ADODCをつかってグリッドに内容を表示しているのですが、 グリッドをクリックして選択した行のレコードを削除します。 そのあとに、ADODCをRefreshしてもグリッドをRefreshしても反映されないんです。 データは削除されています。 DataGrid,TDBGridの二つのグリッドで試したんですが、 どっちもだめでした。 みななんどうやって反映させているのでしょうか? どうぞ、よろしくお願いしますm(_ _)m
- ベストアンサー
- Visual Basic
- ネット上どこからでも、SQLサーバに接続してデータを取得するには?
WINDOWSXP,VB6,SP5で開発しています。 ネット上ならどこからでも、指定したSQLサーバからデータを取得して、 表示させるみたいなプログラムを作っています。 今まではVBWEBというのをつかっていたのですが、 会社も開発も終わっているみたいで、使い方もいまいちよくわからないので、 違う方法で接続できたらなあと思っています。 普通はどういう方法で接続するのでしょうか? どうぞ、よろしくお願いしますm(_ _)m
- ベストアンサー
- Visual Basic
- VBでADODCを使ってパスワード付ACCESSに接続する方法
VB6.0SP5でプログラム作っています。 ADODCを使ってパスワード付のアクセスデータベースに接続したいのですが、 全然出来ません(--;) ADODCのプロパティの接続タブで、 パスワードのところに、設定したパスワードを入力しても ダメでした。 ユーザー名は、あるのかすらわからないので空欄です。 ためしにアクセスのパスワード設定を解除してみると、接続できました。 エラーは プロバイダの初期化中にエラーが発生したため、接続のテストに失敗しました。 アプリケーションを起動できません。システムデータベースが存在しないか、 またはほかのユーザーが排他的にシステムデータベースを開いています。 です。 排他的に開いていたりしないし、パスワード設定を解除すれば接続できるので、???です。 どうしてもADODCを使って接続したいのです。 接続する方法はないのでしょうか?
- ベストアンサー
- Visual Basic
- VBからOracle接続
VB6.0からサーバのOracle8.1.7に接続し、表示させるプログラムを作って います。 VBのDataGridとAdodcを使いテーブル内容を表示させることは できたのですが、行の削除を行うとエラーになってしまいます。この対処 方法または意味が分かれば教えて下さい。 エラーになる箇所とエラーのメッセージは以下のようになっています。 SqlStr = "DELETE from emp where empno = 1" Adodc1.RecordSource = SqlStr Adodc1.Refresh ↑ ここで、「オブジェクトが閉じてる場合は操作は許可されません」 というエラーがでます。 (DELETE文をSELECT文にするとエラーはでません)
- ベストアンサー
- Visual Basic
- クライアントからVB2005 .netアプリでSQL Serverに接続できない
プログラムの配布で困っています。 ■環境 【開発環境兼サーバー】 ・WindowsXP Professinal SP2 ・SQL Server 2005 Express ・Visual Basic 2005 Express ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 【クライアントA】 ・WindowsXP Professinal SP2 ・SQL Server 2005 Express ・Visual Basic 2005 Express ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 【クライアントB】 ・WindowsXP Home SP2 ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 上記環境でプログラムを作成し、VBの 発行ウィザードで 配布プログラムを作成し、クライアントで実行してみました。 .netも無事インストールされ、プログラムを起動すると、 .net Frameworkから 「System.Data.SqlClient.SqlException: SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: SQL ネットワーク インターフェイス, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました)」 とでて起動できません。 開発環境兼サーバーではもちろんローカルのSQL Serverに接続できます。 クライアントAから開発環境兼サーバーへも接続できます。 クライアントBから開発環境兼サーバーへは接続できません。 ちなみに、クライアントBからODBCに設定もエラーで出来ませんでした。 データベースにはADO.netで使用してます。 いろいろとネットで検索して調べてみましたが、解決には 至りませんでした。 クライアントに何か足りないものがあるのでしょうか。 長くなりましたが、どうぞよろしくおねがいします。
- 締切済み
- Visual Basic
- SqlDataAdapterからSqlServerに接続できない
VB.netでSqlDataAdapterを貼り付け、データアダプター構成ウィザードを使ってSqlサーバーへの接続を作成しようとしたところ、メッセージボックスが表示されます。 データベースに接続できません。 このVersionのVisualStudioを使った場合に限り、 SQL Server DeskTop Engine データベースおよび MicrosoftAccessデータベースに接続することができます。 とメッセージが表示され先に進むことができません。 データリンクプロパティで、接続のテストをすると 成功とでますので、SQLサーバーを認識しているようですが・・・ もしかしてこれは、VB.NETからはSQLサーバーに接続できない、VisualStudio.netでないとSQLサーバーに接続できないということなのでしょうか。ASP.NETをやってみたくてVB.NETをさわってみているんですが… ご存知の方がいらっしゃいましたら、なにとぞご教授くださいませ。
- 締切済み
- Visual Basic