初めての投稿です。
ぜひ、おしえてください。

隠しフィールドのデータを次のページ(VBScript)での受取り方法がお聞きします。

default.aspファイルに下記を記述しています:
<FORM NAME="MyForm" method=Post Action="./sub.asp">
<INPUT TYPE=Hidden VALUE="<% Response.Write MyData %>" Name="MyData">
<INPUT type="submit" name="cmdSend" value="送る">
</Form>

sub.aspファイル(次ページ)に下記を記述しています:
<SCRIPT LANGUAGE="VBScript">
Dim temp
temp = MyForm.MyData.Value
</SCRIPT>

上記の記述文では、データの引渡しができませんが、
(sub.aspページでMyFormがエラーになります)
どなたか、正しい書き方を教えてもらえませんか?

すみませんが、よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

> <SCRIPT LANGUAGE="VBScript" RUNAT="Server">


> </SCRIPT> の間で受取ったデータを
> <SCRIPT LANGUAGE="VBScript">
> </SCRIPT> の処理の間に渡したいんですが、
> できますでしょうか。

サーバーサイドとクライアントサイドの処理の違いを理解していれば簡単な話ですが・・・

<SCRIPT LANGUAGE="VBScript">
Dim temp
temp = <%= Request.Form("MyData")%>
</SCRIPT>

この回答への補足

ご回答ありがとうございました。
IISのことがまだよくわかりません、
これから勉強するところです。
もうしわけありません。

で、temp = <%= Request.Form("MyData")%>
の行でエラーは発生しました。
「ステートメントの末尾が不正です」というエラーです。
もう少し自分で調べてみるべきなんですが、
もし、良ければアドバイスをいただけませんでしょうか。

本当にすみません。

補足日時:2001/10/31 16:33
    • good
    • 0

<SCRIPT LANGUAGE="VBScript">


</SCRIPT>

という処理はクライアントサイドの処理ですので
サーバーサイドスクリプトで動作することを明示するために

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
</SCRIPT>

または先頭行に

<%@ LANGUAGE="VBScript" %>

と記述します。
つまりktyoさんが要望される処理を行うには

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Dim temp
temp = Request.Form("MyData")
</SCRIPT>

または

<%@ LANGUAGE="VBScript" %>
Dim temp
temp = Request.Form("MyData")

と記述する必要があります。
参考までに

この回答への補足

ご回答ありがとうございます。
「RUNAT="Server"」でデータの受取ができました。
ありがとうございました。
大変恐縮ですが、もう一つをお聞記したいんですが。
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
</SCRIPT> の間で受取ったデータを
<SCRIPT LANGUAGE="VBScript">
</SCRIPT> の処理の間に渡したいんですが、
できますでしょうか。
本当にすみません、
よろしくお願いいたします。

補足日時:2001/10/31 11:16
    • good
    • 0

default.aspからsub.aspを呼び出すのですね。


ということは、sub.asp内のコードのtemp=MyForm.MyData.Valueのところを、temp=Request.Form("MyData")と書き直してやればよいと思います。(temp=Request.Form("MyData").valueかも・・・お試しください)
呼び出し元(=Request)のフォーム内オブジェクト、ということです。
微妙に間違ってたらごめんなさい。試してませんので。
ただ、呼び出し元から何かを受け取るとき、Requestを使用する、ということはASPの基本的なことですし、ktyoさんのコードの最大の間違いです。
がんばってください。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelのVBAからVBScript

ExcelのVBAからVBScriptを操作(使う)ことってありますか?また、逆にVBScriptから、Excelを操作(操作)する必要ってありますか?
VBScriptの本を買って勉強していると、そのようなサンプルが描かれていたのですが、単に使えるだけって感じもしますが・・?
実際にこのように使っているって例があれば教えてください。
よろしくお願いいたします。

Aベストアンサー

こんばんは。

以下のページで VBA + VBScript 活用の事例が紹介されていますよ。
http://www.vbasekai.com/vbscript.html

VBA + VBScript の組み合わせは、実際のところ私はほとんど使う
ことがありません(^^;

ただ、VBScript 自体は活用してます。

例えば、フォルダ内のファイル一覧をメモ帳に出力するスクリプトを
書いて、SendTo フォルダにおきます。こうすると、フォルダ上の
右クリックメニューで[送る]からファイル一覧が簡単に調べられたり
とか(・∀・)

VBA で書いた場合、Excel などのアプリケーションが起動している
ことが前提となるし、EXE を作るほどのモノでもないし、、、
こういったときお手軽で良いのです。

工夫次第...といったところでしょうか?

Aベストアンサー

gotoPageFromAA011
という関数は、JavaScriptの関数です。

書き方や呼び出し方云々の問題ではなく、直接実行はVBScriptで行える場所にはありません。

Call gotoPageFromAA011()
↑よってこの部分は不要です。


要は、ログインボタンエレメントを取得して、クリックさせてあげると、中で勝手にJavaScriptが実行します。


gotoPageFromAA011をコメントアウトし、以下のコードを追加してください。

'Call gotoPageFromAA011() ← コメントアウト

'↓以下追加
Call SubmitFunctionCall(objIE.Document)

Sub SubmitFunctionCall(p_doc)
Dim l_divLogin
Set l_divLogin = p_doc.getElementById("loginForms")

Dim l_divSec
Set l_divSec = l_divLogin.ChildNodes(0)

Dim l_htmTbl
Set l_htmTbl = l_divSec.ChildNodes(0)

Dim l_htmTblRow
Set l_htmTblRow = l_htmTbl.Rows(0)

Dim l_htmTblCell
Set l_htmTblCell = l_htmTblRow.Cells(1)

Dim l_htmBtn
Set l_htmBtn = l_htmTblCell.ChildNodes(0)
Call l_htmBtn.Click()
End Sub


ってかこの手の質問は、「ASPカテゴリ」ではなく、「JavaScriptカテゴリ」か「VBカテゴリ」に質問した方が素早い回答を得られますよ。

gotoPageFromAA011
という関数は、JavaScriptの関数です。

書き方や呼び出し方云々の問題ではなく、直接実行はVBScriptで行える場所にはありません。

Call gotoPageFromAA011()
↑よってこの部分は不要です。


要は、ログインボタンエレメントを取得して、クリックさせてあげると、中で勝手にJavaScriptが実行します。


gotoPageFromAA011をコメントアウトし、以下のコードを追加してください。

'Call gotoPageFromAA011() ← コメントアウト

'↓以下追加
Call SubmitFunctionCall(objIE.Document)

Sub Subm...
続きを読む

QCreateObject("Excel.Application")でVBScript実行時エラー

ActiveServerPage(サーバーサイド)でExcelを起動させ
データベース(SQLServer)より取得したデータをExcelに貼付け
保存させたいのですが。

2台のPCでは正常に動作するものの、もう1台のPCで実行すると
以下エラーが発生します。
----------------------------------------------
Microsoft VBScript 実行時エラー
エラー'800a01ad'
ActiveXコンポーネントはオブジェクトを作成できません。
:'Excel.Application'
/××/××/××.asp 行705
----------------------------------------------
↓705行目
<%
..
set ○○ = CreateObject("Excel.Application")
..
%>

Microsoftサポート技術情報の
[IIS]ASPがVBScript実行時エラー"800a01ad"を返す
http://support.microsoft.com/default.aspx?scid=kb;ja;JP194801
レジストリを確認しましたが、3台とも同じ設定でした。
またExcelファイルのアクセス権をEveryOneフルコントロールに設定し
実行してみましたが状況が変わらず・・・。

クライアントサイドのVBScriptでExcelを起動させて
見た所、問題なく起動終了しました。
IISの問題なのでしょうか?

ちなみに環境はWinNT4.0、IIS4.0(SP6)、Excel2000(SR-1)です。

同様のケースで過去に解決された方、または良い案がある方。ご教授下さい。

ActiveServerPage(サーバーサイド)でExcelを起動させ
データベース(SQLServer)より取得したデータをExcelに貼付け
保存させたいのですが。

2台のPCでは正常に動作するものの、もう1台のPCで実行すると
以下エラーが発生します。
----------------------------------------------
Microsoft VBScript 実行時エラー
エラー'800a01ad'
ActiveXコンポーネントはオブジェクトを作成できません。
:'Excel.Application'
/××/××/××.asp 行705
----------------------------------------------
↓705行目
<...続きを読む

Aベストアンサー

set ○○ = Server.CreateObject("Excel.Application")

ではどうですか?

Q と <% %>は違うの??

ASP開発をしています。

あるASPでIncludeファイルで配列宣言
Dim gsABC(10)を宣言します。

Includeファイルの中身
<Script Language="VBSCRIPT" RUNAT="SERVER">
Dim gsABC(10)
</script>

そして、ASPファイルでその変数gsABC(0)を
使おうとするとエラーが発生します。

けれども、Includeファイルの中身を
<%
Dim gsABC(10)
%>

にすると正常に動きます。
2つは同じものだと思っていたのですが、
これによって違うものなのかと認識するように
しなければと思ってますが・・・

どこが違うのか分かりません。

どなたか分かりやすく簡単でいいですから
説明して頂けないでしょうか?
よろしくお願いします。

Aベストアンサー

おすすめは後者の 「 <% Dim gsABC(10) %> 」です。
Includeでしたら別に構いませんが、前者だとASPやHTMLに拡張子を決めてしまうとソースが丸見えです。
開発でもやりましたが、VB系のソースは基本的に後者だと思っています。

参考URL:http://tryasp.winscom.co.jp/sample/

QVBScriptでエクセル印刷モード起動

おせわになります。
表題の通り、VBScriptを使ってあるエクセルブックを印刷モードで起動したいと思っています。
印刷モードで起動とは、例えばエクセルブックのアイコンをマウスで右クリックして「印刷」を選んだ時と同じ動作です。

ちなみに下記の方法でエクセル起動は出来ました。

' Excel起動
Set obj = CreateObject("Excel.Application")
Set WSHShell = CreateObject("Wscript.Shell")
WSHShell.Run "EXCEL.exe " & strCsvFilename
'印刷
WSHShell.sendkeys "%FP"

ただ、この方法では一度エクセルブックを開いて印刷ダイアログが表示されるまでなのです。
エクセルブックを開かずに印刷実行する方法をご存じの方どうぞアドバイス下さい。

Aベストアンサー

CreateObjectでExcelアプリケーションを作成しているのなら、そのままWorkbookとしてCsvファイルをOpenして、印刷を実行すればいいはずですよ。

ちなみにWin2000、Office2000環境で下記で印刷できました。

Set obj = CreateObject("Excel.Application")
Set WSHShell = CreateObject("Wscript.Shell")
Set objWkBk = obj.Workbooks.Open("D:\TEST.csv")
obj.ActiveWindow.SelectedSheets.PrintOut()
obj.quit()
Set obj = Nothing


#CreateObjectした後にRunすると、CreateObjectで作成したExcelのタスクが残ってしまいますよ。

Qvalue="<%=date25(25は変数です)%>"値を変数にしてデータを受け取りたい

いつもお世話になっております。
ASPのプログラミングの最中、データの受け取りを関数で行おうとした所
ソースの記述が分からなくなったので質問した次第です。
お手数をおかけしますが、アドバイスお願いいたします

※質問概要
 あらかじめ入力していたデータを
 value="<%=date値%>(値=1~26)で受け取り、内容をHTMLに表示しようと思っています。
値の変数は「num」
 一件だけならば value="<%=date10%>" と入力して
 「2008/08/29」日付を取得、HTMLに記述させられるのですが
 関数で、複数件(26件)処理するとなると

 変数名1~26の処理をnumに置き換えて
 26個のテキストBOXにそれぞれのデータを出力したいのですが
 どの様に記述すればいいでしょうか?
(value="<%=date<%=num%>%>"にしましたが、データの取得は出来ませんでした。
 value="&lt;%=date<%=num%>%&gt;"も
 テキストBOXに<%=date1%>~26出力されて取得できませんでした)


 説明不足の点がありましたら、即追加いたします。
 以上、よろしくお願いいたします。



ソースを記載いたします

<!-- カレンダー設置関数 -->
<% Function cal(num)
  Dim a
  Dim str %>
  <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%  a = 2
   Do Until a > 26
    if a <> num then
%>
     cal<%=a%>.hide();
<%   Else
    End if
     a = a + 1
    Loop
    Response.Write str
    Response.Write " "" "
%>
   onChange="ca<%=num%>.getFormValue(); cal<%=num%>.hide();" value="&lt;%=date<%=num%>%&gt;"【問題の箇所です】>
    <br>
    <div id="caldiv<%=num%>"></div>
<% End Function%>

いつもお世話になっております。
ASPのプログラミングの最中、データの受け取りを関数で行おうとした所
ソースの記述が分からなくなったので質問した次第です。
お手数をおかけしますが、アドバイスお願いいたします

※質問概要
 あらかじめ入力していたデータを
 value="<%=date値%>(値=1~26)で受け取り、内容をHTMLに表示しようと思っています。
値の変数は「num」
 一件だけならば value="<%=date10%>" と入力して
 「2008/08/29」日付を取得、HTMLに記述させられるのですが
 関数で、複数...続きを読む

Aベストアンサー

VBScriptなら Eval関数を使って変数の値を <%= で出力しましょう

value="<%= Eval("date" & num ) %>">

といった具合にします

QVBScriptで32ビットIEの起動のさせ方

Windows7 Professional 64ビット版を使用しております。

VBScriptのCreateObjectで32ビット版のIEを起動させたいのですが、
CreateObject("InternetExplorer.application")
では、64ビット版のIEが起動されてしまいます。

CreateObjectで32ビット版のIEを起動するには、
引数のProgIDに何を記述すれば良いのでしょうか?

ご存じの方、宜しくお願いします。

Aベストアンサー

64bit と 32bit 環境は完全に分離されていますので、64bit の VBScript (cmd.exe)から 32bit の EXE を起動する事はできません。
32bit の cmd.exe 上で 32bit の VBScript を動かしてください。
32bit の cmd.exe は、下記の手順で起動できます。

スタートメニューをクリックし、「プログラムとファイルの検索」ボックスに
%windir%\SysWoW64\cmd.exe
と入力します。

32bit の cmd.exe であとはいつもどおりに VBScript を起動します。
cscript xxxx.vbs

Q"<%=date変数%>" を "<%=date18(←仮数字)%>"とHTML上で表示させたい

いつもお世話になっております。
現在ASPでプログラムを作成していますが。

<%= %> で囲まれた中に更に変数(<%= %>)を入れることになりました。
どの様にすれば
HTMLソースに value="<%=date変数%>"と表示出来ますか
アドバイスお願いいたします。

以下ソースを記載します。

<!-- カレンダー設置関数 -->
<% Function cal(num)
   Dim a
   Dim str
%>
   <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%
   a = 2
   Do Until a > 26
    if a <> num then
%>
     cal<%=a%>.hide();
<%
    Else
    End if
    a = a + 1
   Loop
   Response.Write str
   Response.Write " "" "
%>
   onChange="ca<%=num%>.getFormValue(); cal<%=num%>.hide();" value="<%=date<%=num%>%>"【←問題の箇所です】>
   <br>
   <div id="caldiv<%=num%>"></div>
<%End Function%>

いつもお世話になっております。
現在ASPでプログラムを作成していますが。

<%= %> で囲まれた中に更に変数(<%= %>)を入れることになりました。
どの様にすれば
HTMLソースに value="<%=date変数%>"と表示出来ますか
アドバイスお願いいたします。

以下ソースを記載します。

<!-- カレンダー設置関数 -->
<% Function cal(num)
   Dim a
   Dim str
%>
   <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%
   a = 2
   ...続きを読む

Aベストアンサー

実際に試したわけじゃないですけど、普通に &lt;%=date変数%&gt; で
できませんか。
(実体参照)

QVBScriptでノートパッド起動

HTMLのボタン押下イベントで、VBScriptの関数を呼んで
その中でノートパッドを開いてます。
VBScriptの関数は、

<Script language = "VBScript">
Sub showReport(FILEPATH)

Dim intRtn
Dim objShell

Set objShell = CreateObject("WScript.Shell")
intRtn = objShell.Run("notepad " & FILEPATH, 1, True)
Set objShell = Nothing

EndSub
</Script>

です。
ファイルのフルパスを引数で渡して、ノートパッドから開いてます。

この処理を行うと、起動して最初の1回だけ
「このページのActiveXコントロールは、安全ではない可能性があり、ページのほかの部分に影響する可能性があります。ほかの部分に影響しても問題ありませんか?」
というダイアログが表示されてしまいます。
一度「はい」を選択すると、ウィンドウを閉じるまでは出なくなりますが、
また起動した場合はダイアログが表示されます。
このダイアログを表示しない方法を教えていただけますでしょうか?
プログラムの記述が悪いのでしょうか?

IE6のSP1です。
よろしくお願いします。

HTMLのボタン押下イベントで、VBScriptの関数を呼んで
その中でノートパッドを開いてます。
VBScriptの関数は、

<Script language = "VBScript">
Sub showReport(FILEPATH)

Dim intRtn
Dim objShell

Set objShell = CreateObject("WScript.Shell")
intRtn = objShell.Run("notepad " & FILEPATH, 1, True)
Set objShell = Nothing

EndSub
</Script>

です。
ファイルのフルパスを引数で渡して、ノートパッドから開いてます。

この処理を行うと、起動して最初の1...続きを読む

Aベストアンサー

WindowsXP SP2でしょう?
原因はActiveXのセキュリティの強化です。
回避策は・・・ないです。
HTAで作ると出ないらしい。

Q<%@ language="VBScript" %>

下記質問、よろしくお願いいたします。

<%@ Language="VBScript" %>
<%


%>

という記述と、

<Script Language="VBScript">
<!--


-->
</Script>

という記述の違いって何でしょうか。
1つわかっているのは、イベントハンドラを
<%
Sub btnButton1_OnClick
End Sub
%>
と記述しても認識してくれはしませんでした。
ネットをいろいろ調べましたが、「<%@・・」の
記述を調べられず困ってます。
どうぞよろしくお願いします。

Aベストアンサー

こんにちは。

<%@ Language="VBScript" %>
はサーバにVBScriptで記述しますと教え、
アクセスがあった場合に、処理を行った後、結果としてHTML等を返します。

<script・・・
はブラウザにVBScriptで記述しますと教え、
ブラウザ上で実行されます。

なので、
<%
Sub・・・
%>

とした場合、サーバ上で全て処理されますので、ボタンを押したとか
はわからないので使用することが出来ません。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング