DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Microsoft SQL Server 2005について

環境/言語:[XP SP3/VISTA VB2005]
分類:[.NET]

環境:XP SP3/VISTA VB2005

プログラムの作成をしているのですが、自分のパソコンだとエラーが出ないのに、他のパソコンだとエラーが出てしまいます。
XlsデータをData Grid Viewで表示するようにしているのですが、これが原因のようです。

「規定の設定がリモート接続を許可しないように設定しないようになっている・・・」

たしかに自分のパソコンにはMicrosoft SQL Server 2005がインストールされています。

これだと自作ソフトを配布し、XlsデータをData Grid Viewで表示する場合は、Microsoft SQL Server のインストールが条件ということになってしまうのでしょうか?
> これだと自作ソフトを配布し、XlsデータをData Grid Viewで表示する場合は、Microsoft SQL Server のインストールが条件ということになってしまうのでしょうか?

  これだけでは、何もどうしようもありません。

  まず、エクセルファイルとアクセスするに、OleDb使っているので
  しょうか?
  その接続させる為の設定は?

  で、何故、SQL Server 2005なのか・・・
  SQL Serverにリンクテーブル設定追加してExcelファイルを参照す
  る設定になっているのか・・・

  設定・構成が解らないので、コメントできません。

以上。
すみません。

コードを記入します。

エラー内容は、

Microsoft .NET Framework

サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005に接続しているときにこのエラーが発生した場合は、SQL Serverの規定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。


*このエラーが出て、続行ボタンを押すと、Data Grid Viewが表示されなくて立ち上がります。


-------------------------------------

Dim con As OleDbConnection
Dim cmd As OleDbCommand

Dim da As OleDbDataAdapter
Dim ds As DataSet

Dim strCurrentDir As String = System.IO.Directory.GetCurrentDirectory()

'接続文字列
Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & My.Application.Info.DirectoryPath & "\honarara.xls;" _
& "Extended Properties=""Excel 8.0;HDR=YES"""

'OleDbConnectionの生成
con = New OleDbConnection(sConnectionString)

'接続
con.Open()

'OleDbCommandの生成
cmd = New OleDbCommand("SELECT * FROM [Sheet1$]", con)

'OleDbDataAdapter作成
da = New OleDbDataAdapter
da.SelectCommand = cmd

'DataSetの生成
ds = New DataSet
da.Fill(ds, "Excel")

'GridViewに配置、DataBind
DataGridView1.DataSource = ds.Tables(0).DefaultView


'接続を閉じる
con.Close()

-------------------------------------
> '接続文字列
> Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
> & "Data Source=" & My.Application.Info.DirectoryPath & "\honarara.xls;" _
> & "Extended Properties=""Excel 8.0;HDR=YES"""

  この接続文字列には、SQL Server に接続する為の情報は
  ありません。

  動作しないPCのMy.Application.Info.DirectoryPathの
  パス(EXEが起動されるフォルダ)に、エクセルファイル
  があるのでしょうか?

以上。
>
>   この接続文字列には、SQL Server に接続する為の情報は
>   ありません。
>
>   動作しないPCのMy.Application.Info.DirectoryPathの
>   パス(EXEが起動されるフォルダ)に、エクセルファイル
>   があるのでしょうか?
>
> 以上。


レス有り難うございます。

はい、EXEファイルと同じ場所にhonarara.xlsを置いています。

いろいろ調べているのですが、いまだに原因が分かりません。
> はい、EXEファイルと同じ場所にhonarara.xlsを置いています。
> いろいろ調べているのですが、いまだに原因が分かりません。

  残るは、権限の問題・・・

  XPでは動作して、VISTAでは異常になると言うこと
  ですか?

  その場合、VISTAでデバッグできませんか?
  .Openでエラーしているなら、EXEとエクセルファイル置いて
  あるフォルダの権限?・・・

※ 私は開発環境がVISTAで、デバッグと言うか動作確認にXP使
  っているので、逆に大抵の問題はVISTA上で潰せてますので
  今回のケースは、なんとも・・・

※ VISTAにJET OLE DB 4.0のドライバーが入っていないならば
  別のエラーになるし〜・・・

以上。
>   残るは、権限の問題・・・
>
>   XPでは動作して、VISTAでは異常になると言うこと
>   ですか?
>
>   その場合、VISTAでデバッグできませんか?
>   .Openでエラーしているなら、EXEとエクセルファイル置いて
>   あるフォルダの権限?・・・
>
> ※ 私は開発環境がVISTAで、デバッグと言うか動作確認にXP使
>   っているので、逆に大抵の問題はVISTA上で潰せてますので
>   今回のケースは、なんとも・・・
>
> ※ VISTAにJET OLE DB 4.0のドライバーが入っていないならば
>   別のエラーになるし〜・・・
>
> 以上。



xpでもVISTAでも、自分以外のパソコンで同一のエラーが出るんですよね。

自分の環境と他のパソコンの違いは、VB2005がインストールとSQL Server2005がインストールされてるかの違いだけだと思います。


せっかく完成したと思ったら、配布が出来ずに、非常に困っています。
> xpでもVISTAでも、自分以外のパソコンで同一のエラーが出るんですよね。

  そのエラーの発生する箇所は?
  プログラムの何行目?

  そこが明確にならないと、どうにもできませんヨ!

※ 因みに、開発用以外のPCには、JET 4.0 のドライバー
  インストールされているんですか?
  .NET ランタイムだけでは、動作しませんヨ!
  無い場合は、別途インストールする必要があります。

以上。

>   そのエラーの発生する箇所は?
>   プログラムの何行目?
>
>   そこが明確にならないと、どうにもできませんヨ!
>


前記で示してるとおり、VB2005のインストされてるパソコンではエラーが出ないので分かりません。
> 前記で示してるとおり、VB2005のインストされてるパソコンではエラーが出ないので分かりません。

  あなたが環境の相違を調査しなくて、どうやって解決するのでしょうか。

以上。
>
>   あなたが環境の相違を調査しなくて、どうやって解決するのでしょうか。
>
> 以上。


まず、レスを付けて頂くのはうれしいのですが、最低文章の内容は目を通すようにしてください。
そうじゃなければ、話がかみ合わないし、この掲示板の意味が無くなると思いますよ。
誰でもいいから文句言いたいだけ?


本来の趣旨と違うレスが付くようになったので、これで終了とさせて頂きます。(質問の回答と違う文章が続いても意味がないので)
解決済み!
この掲示板では問題が解決されたときのみ「解決済み」を付け、スレッドを閉じる目的では使用しない決まりになっています。さらに、「Microsoft SQL Server 2005について」というタイトルも厳密にはルール違反になります。必ず「書き込みのルールについて」をご確認いただけますように、お願いいたします。

http://dobon.net/vb/bbs/index.html

さて、山広さんがご不満に思っている点について、私なりの考えも書かせていただきます。山広さんはすでに書いたことを何回も聞かれることに怒っているのだと理解しています。確かにすでに書いていることを何回も聞かれるのは嫌ですし、私も最後の最後には怒ると思います。しかし、このスレッドの投稿を拝見する限り、多く見積もってもすでに書かれていることを聞かれたのは2回だけではないでしょうか。たった2回の間違いで怒られてしまうのであれば、誰が回答をしようと思うでしょうか。

もしこれ以上すでに書いていることを聞かないで欲しいと思ったならば、いきなりキレるのではなく、まずはそのことを回答者に伝えるべきではなかったでしょうか。例えば、すでに書いたことをもう一度説明した上で、「このことは前の投稿ですでに説明していたのですが、説明の仕方が悪かったでしょうか?」のように付け加えておけば、角が立たずに相手にすでに書いてあることを質問したことを伝えられるでしょう。

回答者の立場からすると、すでに書いてあることをまた聞いてしまう理由も分かるような気がします。「書き込みのルールについて」では、情報を小出しにせずに、はじめの投稿で分かっていることを全て書いてくださいとお願いしています。このスレッドのように、はじめの投稿では情報が少なく、後で小出しにされると、全ての投稿を読んでつなげるのが大変で、読み飛ばしをしたり、関連が分からなくなってしまったりします。私個人の意見としては、そのような状況の中でも返信をし続けたオショウさんは大変だったのではないかと思います。

ここはあくまで助け合いの掲示板ですので、もう少し寛大に対応していただければ幸いです。
管理人さんのご指摘により、私も少々反省しております。

山広さん、申し訳なかったです。

問題解決に頑張って下さい。

以上。
管理人さん、オショウさん、不愉快な書き込みをしてすみませんでした。

以後、気をつけたいと思います。

DOBON.NET | プログラミング道 | プログラミング掲示板