dポイントプレゼントキャンペーン実施中!

JScriptを使用してDBへの接続方法を教えて下さい。

var conn = Server.CreateObject("ADODB.Connection");
var rs = Server.CreateObject("ADODB.Recordset");

conn.Open;

rs.Open("sheet2", "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ =" + Server.Mappath("tes.xls"));

sSQL = "SELECT * FROM sheet2";

からの接続がうまくいきません。
どこがいけないのでしょうか?

それとも、全てがいけないのでしょうか?

よろしければ、どなたかご教授下さい。
お願いします。

A 回答 (2件)

サーバ側のスクリプトとクライアント側のスクリプトがごっちゃになってませんか?


名前ボタンのイベントで指定している btn_onclick2 関数は、サーバ側の関数なので呼べません。

名前ボタンを押したら、エクセルの"sheet2"のレコードを取ってきて、テキストエリアに表示としたいのでしょうか?
ならば、以下のようにすればどうでしょう。

<%
function btn_onclick2() {
var conn = Server.CreateObject("ADODB.Connection");
var rs = Server.CreateObject("ADODB.Recordset");
conn.ConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ=" + Server.Mappath("tes.xls");
conn.Open;

sSQL = "SELECT * FROM [sheet2$]";
rs.Open(sSQL, conn)

var str = "名前\n";

while (!rs.EOF) {
str += rs.Fields('name') + "\n";
rs.MoveNext();
}

Response.Write(str);

rs.Close;
conn.Close;
}

%>
</head>
<body>
<div class="base">
<form name="frm" method="post" action="#">
<table>
<tr class="tdb"><td colspan="2"><input type="submit" value="名前" name="S1"></td></tr>
<td colspan="2"><textarea name="txt" rows="10" cols="60" ID="Textarea1"><%

if (Request.Form.Count > 0) btn_onclick2();

%></textarea></td>
</table>
</form>
</div>
    • good
    • 0
この回答へのお礼

ご教授ありがとうございます。
表示することができました。
今後は、書き込み・削除・検索の勉強をしていこうと思っています。

クライアント側で試しに作ってみて、
サーバ側にもっていくやりかたをしていたもので、
自分でも混乱していました。

ASPでのJScriptの使用を解説しているものが少ないので、
非常に助かりました。
また、宜しくお願い致します。
忙しいところ、早急に回答していだだき
ありがとうございました。

お礼日時:2005/07/26 16:40

こんな感じでどうでしょう?



var conn = Server.CreateObject("ADODB.Connection");
var rs = Server.CreateObject("ADODB.Recordset");

conn.ConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ=" + Server.Mappath("tes.xls");
conn.Open;

sSQL = "SELECT * FROM [sheet2$]";

rs.Open(sSQL, conn);

この回答への補足

ご教授ありがとうございます。助かります。
上記記述を使用し、下記のように作成したのですがエラーが起こってしまいました。

<%
function btn_onclick2() {
var conn = Server.CreateObject("ADODB.Connection");
var rs = Server.CreateObject("ADODB.Recordset");

conn.ConnectionString = "DRIVER={Microsoft Excel Driver(*.xls)};DBQ=" + Server.Mappath("tes.xls");
conn.Open;

sSQL = "SELECT * FROM [sheet2$]";
rs.Open(sSQL,conn)
var str = "名前\n";
while (!rs.EOF) {
str += rs.Fields('name') + "\n";
rs.MoveNext();
}
document.frm.txt.value = str;
rs.Close;
conn.Close;
}
%>
</head>
<body>
<div class="base">
<form name="frm" method="post" action="tes2.asp">
<table>
<tr class="tdb"><td colspan="2"><input type="submit" value="名前" onclick="btn_onclick2()"></td></tr>
<td colspan="2"><textarea name="txt" rows="10" cols="60" ID="Textarea1"></textarea></td>
</table>
</form>
</div>

長文なってすみませんが、このような使用はできないのでしょうか?
お忙しいところ申し訳ありませんが、ご教授下さい。

環境は、windows xp sp2 IISを使用しています。

補足日時:2005/07/26 14:30
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!