ASPのコード部分で、
いろんなファイル共通の処理(更新日付を表示用に編集する等)をまとめて一つの別ファイルに記述し、
各ファイルの処理内で、呼び出して使用したいのですが。

◎呼び出し側

<!--#include file="abc.asp">
として、aspコード内で、
call Change_Ymdhms(w_Tymd,w_Thms)

と書いてます。

◎呼び出される側

abc.aspの中では、
function Change_Ymdhms(w_Ymd,w_Hms)
dim w_Len
dim R_Ymdhms

w_Len = len(w_Tymd)
if w_len < 8 then
w_Ymd = string((8 - w_Len),"0") & w_Tymd
end if

w_Len = len(w_Hms)
if w_len < 6 then
w_Thms = string((6 - w_Len),"0") & w_Thms
end if

R_Ymdhms = mid(w_Ymd,1,4) & "/" & mid (w_Ymd,5,2) & "/" & mid(w_Ymd,7,2) & " " & _
mid(w_Yms,1,2) & ":" & mid(w_Yms,3,2) & ":" & mid(w_Yms,5,2)

end function

とファンクションが書いてあります。

呼び出し側のaspファイルを実行すると、
「ページを表示できません」となり、
「Subプロシージャを呼び出すときに括弧を使うことはできません」というエラータイプが表示されます。

本で探しても見つけられず、「こうすればどうか・・・」
と思い、書いてみましたが、上手くいきません。
(当たり前ですが・・・)

どなたかご存知でしたら、どうか教えてください。
よろしくお願いします。

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

ASP とは」に関するQ&A: URLの.aspとは??

A 回答 (1件)

こんにちは。

itohhといいます。

>「ページを表示できません」となり、
呼び出し側で次ページの作成はしていますか?
基本的にHTMLを出力しないaspファイルを次ページに指定することは出来ません。
あるいは、下記のエラーのためにcall文でaspが終了してしまったためかもしれません。

>「Subプロシージャを呼び出すときに括弧を使うことはできません」という
>エラータイプが表示されます。

これは、functionの場合、
>call Change_Ymdhms(w_Tymd,w_Thms)
では、文法エラーとなります。(Subの場合の呼び出し方です)

Dim Rtn
Rtn = Change_Ymdhms(w_Tymd,w_Thms)
とすれば、OKのはずです。
また、復帰値を返さなければいけません。
例。
>function Change_Ymdhms(w_Ymd,w_Hms)
>dim w_Len
>dim R_Ymdhms
Change_Ymdhms = 0

エラーの場合
Change_Ymdhms = 1

>end function



Function : 復帰値を呼び出し元に返す関数。
Sub : 復帰値を返さない関数。
    • good
    • 0

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

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

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

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

Q[ASP]If~Else If~End If 対 Case

こんにちわ。
ASPでWEBプログラミングをしております者です。
条件分岐の部分なのですが、結構なパターンで分岐させる予定です。

その際、Ifを使うのとCaseで分岐させるのではどちらが良いか?ということです。

サーバの負担の少ないのはどっちなんでしょうか?

どうお考えですか?

Aベストアンサー

条件のパターンと言うか組み合わせにもよりますね。
まぁ、私は2件以上の条件になればSELECT文を使用していますが…

以下簡単に、よく使われるであろうパターンを幾つか記述します。
以下の組み合わせで、大半のものは出来ると思います。多分…

例3や例4で記述している「Select Case True」と言う記述は、
通常の記述とは逆にCaseの条件式がTrueであるかという判定をします。
これは何かと使用に便利なので覚えておくといいかもしれませんね。

参考程度の如何でしょうか。


例1:「Aが1の時or2の時or3の時ならば…」
Select Case A
Case 1
Case 2
Case 3
End Select

例2:「Aが1の時orBが1の時orCが1の時ならば…」
Select Case 1
Case A
Case B
Case C
End Select

例3:「Aが1or2の時またはBが1or2の時ならば」
Select Case True
Case A = 1, A = 2
Case B = 1, B = 2
End Select

例4:「Aが1でさらに、Bが1の時or2の時or3の時ならば」
Select Case True
Case (A = 1) and (B = 1)
Case (A = 1) and (B = 2)
Case (A = 1) and (B = 3)
End Select
と言う風に、毎度(A = 1)を書くのもどうかと思うので
If A = 1 Then
  Select Case B
  Case 1
  Case 2
  Case 3
  End Select
End If
とする方法もありますね。

条件のパターンと言うか組み合わせにもよりますね。
まぁ、私は2件以上の条件になればSELECT文を使用していますが…

以下簡単に、よく使われるであろうパターンを幾つか記述します。
以下の組み合わせで、大半のものは出来ると思います。多分…

例3や例4で記述している「Select Case True」と言う記述は、
通常の記述とは逆にCaseの条件式がTrueであるかという判定をします。
これは何かと使用に便利なので覚えておくといいかもしれませんね。

参考程度の如何でしょうか。


例1:「Aが1の時or2...続きを読む

QASPとASP.NETとASP.NET2.0の違い

Web開発初心者です。

帳票をPDF表示するWebアプリケーションを開発することになり、
言語はASPを使用することになりました。

そこで
ASP
ASP.NET
ASP.NET2.0
の違いをご存知の方がいらっしゃいましたら教えていただけますでしょうか。
それぞれIIS以外に必要な実行環境、ツール等も教えていただけると助かります。

不明瞭な箇所がありましたら説明させていただきます。
すいませんがよろしくお願いします。

Aベストアンサー

ASP用のツールは、多分、無いですね・・・
#メモ帳でASPファイルを作成してサーバにコピーとか。

ASP.NET用の開発ツールは、Microsft社製の「VisualStudio」シリーズがあり、
ASP.NET(1.1)は、「VislaStudio 2003」で、
ASP.NET2.0は、「VislaStudio 2005」で開発できます。


「Visual Web Developer 2005 Express Edition 」は、
「Visual Studio 2005」のEditionの1つで、有料のパッケージ版(入門者つき)と無料のダウンロード版があります。
機能的には同じで、無料版だからといって、商用利用の制限等はありません。

(http://www.microsoft.com/japan/msdn/vstudio/express/faq/default.aspx)

「Express Edition を商用目的で使用することはできますか。」

また、「ASP.NET1.1用」の無料の開発ツールとして、3rdパーティ製ですが、
「Web Matrix 」と言うのがあります。

「ASP.NET Web Matrix Project 日本語版」
(http://www.microsoft.com/japan/msdn/asp.net/webmatrix/)

ASP用のツールは、多分、無いですね・・・
#メモ帳でASPファイルを作成してサーバにコピーとか。

ASP.NET用の開発ツールは、Microsft社製の「VisualStudio」シリーズがあり、
ASP.NET(1.1)は、「VislaStudio 2003」で、
ASP.NET2.0は、「VislaStudio 2005」で開発できます。


「Visual Web Developer 2005 Express Edition 」は、
「Visual Studio 2005」のEditionの1つで、有料のパッケージ版(入門者つき)と無料のダウンロード版があります。
機能的には同じで、無料版だからといって、商用利用...続きを読む

QASP Pageの孫継承のPage_Load

VisualStudio2010/.NET4.0で開発しています。

やりたい事
 ・以下のVBのC#版を作りたい。
  継承元のPage_Loadを実行させたい

Public Class Base
 Inherits System.Web.UI.Page

  Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   Response.Write("親Page_Load")
  End Sub

End Class


Public Class _Default
 Inherits Base

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   Response.Write("子Page_Load")
  End Sub
End Class

上記のaspは実行すると画面上に「親Page_Load子Page_Load」と表示される。
だが、以下のプログラムでは「子Page」としか表示されないので困っております。

public class Base : System.Web.UI.Page
{
 private void Page_Load(object sender, EventArgs e)
 {
  Response.Write("親Page");
 }
}

public partial class _Default : Base
{
 protected void Page_Load(object sender, EventArgs e)
 {
  Response.Write("子Page");
 }
}
よろしくお願いいたします。

VisualStudio2010/.NET4.0で開発しています。

やりたい事
 ・以下のVBのC#版を作りたい。
  継承元のPage_Loadを実行させたい

Public Class Base
 Inherits System.Web.UI.Page

  Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   Response.Write("親Page_Load")
  End Sub

End Class


Public Class _Default
 Inherits Base

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   Respons...続きを読む

Aベストアンサー

Page_LoadメソッドをPageクラスのLoadイベントに紐付ける必要がある。

VBは、Handles Me.Load で紐付けている。

_defaultクラスは、default.aspxファイルの AutoEventWireup="true" により自動的に紐付けられる。

> public class Base : System.Web.UI.Page

こちらは、紐付けていないのでコンストラクタで明示的に書く必要がある。

this.Load += Page_Load;

--
個人的には、親クラスでOnLoadメソッドのオーバーライドがお勧め。

public partial class Base : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
//Loadイベント発生前の処理をここに書く
base.OnLoad(e);
//Loadイベント発生後の処理をここに書く
}
}

QVS2005のASP.NETの開発で_1がつく

VS2005のASP.NETの開発画面で
起動してみたら、
既存のプロジェクトのアドレスが、
http://localhost/project
のはすが、
http://localhost/project_1
のように_1がすべてのサイトに追加されてしまっています。

なぜ勝手に_1が追加されてしまうのでしょうか?

これを元のサイトに修正しようとしても、
また_1に勝手になります。

元のサイトに修正することは可能でしょうか?

Aベストアンサー

Webサイトでの開発ですよね?

以前、自分が経験したときは、ソリューションファイル(.suo)を新しく作ったら、直りました。

話題が違っていたらごめんなさい。

Q.NETを使用せずに、ASP・VBScriptで前のレコードボタン環境:(WinXP_pro、IIS、ACCESS)

お世話になってます。
前頁で検索した後、ACCESSのデータベースに接続し次のレコードまたは前のレコードを表示するボタンを設けたい

<%@ Language="VBScript" %>
<%
pickup = Request.Form("uID")
'MS Access Database Filename
MSACFN = Server.MapPath("db名.mdb")
'Data Source Name
DBFile="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MSACFN
'Data Output
Set DBCon = Server.CreateObject("ADODB.Connection")
DBCon.Open DBFile
sql="select * from table名 where uID = '"&pickup&"'"
Set DBexe = DBCon.Execute(sql)
%>
<HTML>
<BODY>
<title>データ変更</title>
<form method="POST" action="接続先.asp">
<table width="519" border="0">
<tr><td width="200">ID </td><td width="280"><%= DBexe("uID") %> </td></tr>
<tr><td>氏名 </td><td><input type="text" size="70" name="NAME" value="<%= DBexe("NAME")%>"></td></tr>
<tr><td> </td>
<td align="right">
<input type="submit" value="登録" onClick='return checkForm()'>
<input type="reset" value="リセット"></td></tr><br>
</table>
<INPUT TYPE="button" name="movefirst" onClick="ShowPrev()" value="先頭のレコード">
<INPUT TYPE="button" name="moveprevios" onClick="ShowPrev()" value="前のレコード">
<input TYPE="button" name="movenext" onClick="ShowNext()" value="次のレコード">
<input TYPE="button" name="movelast" onClick="ShowNext()" value="最終のレコード">
</form>
<input name="uID" type="hidden" id="uID" value="go"><br>
<input type="hidden" name="form" value="go">
<br>
</body>
</html>

お世話になってます。
前頁で検索した後、ACCESSのデータベースに接続し次のレコードまたは前のレコードを表示するボタンを設けたい

<%@ Language="VBScript" %>
<%
pickup = Request.Form("uID")
'MS Access Database Filename
MSACFN = Server.MapPath("db名.mdb")
'Data Source Name
DBFile="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MSACFN
'Data Output
Set DBCon = Server.CreateObject("ADODB.Connection")
DBCon.Open DBFile
sql="select * from table名 where uID = '"&pickup&...続きを読む

Aベストアンサー

</form> の位置が違うような気がします。
<input TYPE="button" name="movelast" onClick="ShowNext()" value="最終のレコード">
</form>
<input name="uID" type="hidden" id="uID" value="go"><br>
<input type="hidden" name="form" value="go">
<br>
ではなく
<input TYPE="button" name="movelast" onClick="ShowNext()" value="最終のレコード">
<input name="uID" type="hidden" id="uID" value="go"><br>
<input type="hidden" name="form" value="go">
</form>
<br>


おすすめ情報