• 締切済み

ASPのSession変数を配列にしたいのですが。。。

ASPのSession変数を配列にして使用したいのですが、どのように表記すればいいのでしょうか? Do Until rs.EOF ID=Session("ID(i)") i=i+1 rs.MoveNext Loop という感じに使用したいのですが。。。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

もしくは、 ID=Session("ID" & i) としてしまうかですかね? 本当はこれは配列ではないですけど。

Rubellite
質問者

お礼

ご回答ありがとうございました。書き込みをしたのち、色々調べていて配列への入れ方がわかりました。 参考までに例を。。。 ------ <% Dim TestID() For i=0 to 9 Redim Preserve TestID(i) TestID(i)=i+1%> 配列にした変数「Test」の値:<%=TestID(i)%><BR> <% Next Session("Test")=TestID %> <HR> <% For i=0 to 9 %> Session変数「Test」の値:<%=Session("Test")(i)%><BR> <% Next %>

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

Session変数に配列を入れてください。 たとえば Session("ID") = Array(1,2,3,4,5) Dim intIDArray intIDArray = Session("ID") Response.Wite intIDArray(0) Response.Wite intIDArray(1) intIDArray(2) = 22 Session("ID") = intIDArray

関連するQ&A

  • VB6.0DataGridでのUpdate文で疑問?

    ADOの勉強したばっかりで、あまり詳しくありませんのでよろしくお願いします。 DataGridを使ってある条件で抽出しています。その抽出したものを更新したいのですが、 Do rs!分類ID = text1 rs.Update rs.MoveNext Loop Until rs.EOF という命令を書くと、いいような気がするのですが、なぜか抽出したデータが一個おきに書き換わります。 でも、 Do rs!分類ID = text1 rs.Update rs.MoveNext  if rs.EOF then rs.Previous END IF Loop Until rs.EOF と命令するとすべてのデータが書き換わります。 なぜなんでしょうか?疑問です。 VB6.0、ACCESS2000です。

  • ASPの変数の値をJAVA Script内で使用したいのですが

    vfunction ShainSet(){ parent.frmMain.location.href="./Nipo_Calendar.asp?dbID=<ココ>&tNow=<ココ>"; } //--> -------------- 上記のようなJAVA Script内でaspファイルの引数として指定している、dbIDとtNowという変数に対して、 同じASPファイル内(下の方に続いている部分)で取得する値を代入したいのですが、ASPの変数の値をどのようか形でJAVAで記述すればいいかわかりません。 -------------- Set cn = Server.Createobject("ADODB.Connection") ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db\nipo.mdb" Call cn.Open(ConnectionString) MySql="SELECT T_社員マスター.社員ID,T_社員マスター.氏名,T_社員マスター.現場ID " _ & "FROM T_社員マスター " _ & "WHERE T_社員マスター.現場ID= '" & sel & "'" _ & "ORDER BY T_社員マスター.社員ID ;" Set rs = cn.Execute(MySql) Do While Not rs.EOF Response.Write "<Option Name=Shain Value=""" & rs("社員ID") & """>" & rs("社員ID") & ":" & rs("氏名") rs.MoveNext Loop tNow = Now() dbID = rs("社員ID") %> <FORM> <INPUT type="button" value="選択" onClick="ShainSet()"> </FORM> ---------- <%=変数名%>などのように、JAVAの内部に<%%>でくくったASPの変数を使用してもうまく動かないのですが、 何か別の表記方法があるのでしょうか? <ココ>かかれた場所に、ASP内で使用している変数を使いたいのですが。。。

  • AccessのDAOでフィールド名を配列に格納して・・・

    Access2000のDAOで下記のようなコードで複写元テーブルから複写先テーブルにデータを追加するとします。 Set Rs1 = Db.OpenRecordset("複写元", dbOpenTable) Set Rs2 = Db.OpenRecordset("複写先", dbOpenTable) Do Until Rs1.EOF Rs2.AddNew Rs2!FL1 = Rs1!名前 Rs2!FL2= Rs1!性別 Rs2!FL3= Rs1!郵便番号 Rs2!FL4= Rs1!住所    ・    ・ Rs2! FL50= Rs1! 50番目 Rs2.Update Rs1.MoveNext Loop 複写元のフィールドが50フィールドもあると、いちいちRs1!名前とかRs1!性別とか記述するのが大変ですし、ものすごく長いコードになります。そこで、配列にしてやったらどうだろうかとこんなことをしてみましたがだめでした。 Dim I Dim FieldsName FieldsName=Array("名前","性別",・・・"50番目")            ・            ・ Do Until Rs1.EOF Rs2.AddNew For I=0 To 49 Rs2!フィールド(I) = Rs1!FieldsName(I) Next Rs2.Update Rs1.MoveNext Loop じゃあTebleDifのTd.Fields().Nameを使って・・・・やっぱり失敗しました。 For I=0 To 49 Rs2!フィールド(I) = Rs1!Td.Fields(I).Name Next やりたいこと分かっていただけますでしょうか?要するにフィールド名を配列の様なもので格納しておいて、レコードの追加時に50回ループさせてRS2のフィールドにいれたいのです。何か良い方法は無いでしょうか。

  • access vbでループ処理

    レコードセットでテーブルの内容をフォームのテキストボックスに表示 させたいのですが、vbの知識が無く困ってます。以下の処理をループ処理で 簡単に出来ないでしょうか。 ' PASU1 = rs!PASU ' rs.MoveNext ' PASU2 = rs!PASU ' rs.MoveNext ' PASU3 = rs!PASU ' rs.MoveNext ' PASU4 = rs!PASU ' rs.MoveNext ' PASU5 = rs!PASU ' rs.MoveNext ' PASU6 = rs!PASU レコードセットは, Do Until rs.EOF   loop を用いれば繰り返し出来ると解っているのですがフォームの, PASU[1,2,3,,,]の数字の部分を指定することが出来ずにいます。 変数など駆使すれば出来ると思うのですが良くわかりません。 どなたか教えてください。

  • レコードセットのループ処理でエラー・・・

    簡単なことだと思うのですが、解決できなくこまっております。お助けください。 以下のコーディングで、データの取得は出来ているのですが、「Do Until rs1.EOF」でエラーとなります。 SOURCE----------------------------------------- sql = "Select No from t01" Recordset.Open sql, dbc, 3 If rs1.EOF Then Response.Write "データナシ<BR>" ←表示されません。 else Do Until rs1.EOF ←この行でエラーとなります。 Response.Write "No=" & rs1("No").Value rs1.MoveNext Loop end if Error-------------------------------------------- ADODB.Field (0x80020009) BOF と EOF のいずれかが True になっているか、または現在のレコードが削除されています。要求された操作には、現在のレコードが必要です。 因みに、Do Untilを使用せず  Response.Write "No=" & rs1("No").Value  rs1.MoveNext  Response.Write "No=" & rs1("No").Value と記述すると正常にデータが表示されます。 「Do Until rs1.EOF」で発生するエラーの回避方法を御教示願います。

  • Do Untilで途中で抜け出る方法は

    Do Until rs.EOF myCtr = myCtr + 1 If myCtr > 5 Then brake End If Debug.Print rs!品番, rs!品名 rs.MoveNext Loop こんな感じでできませんか 実行してみると brakeのところでエラーになります ACCESSの中のVbでADOを使っています

  • ASP Session変数名の取得

    ASP(VBScriptにて)現在使用されているセッション変数の一覧を変数名(Key)と共に取得したいです。 どのようにすればできますか?

  • 複数レコードを1変数にセットするには

    以下、ご回答、よろしくお願いします。 ストプロで、カーソルに格納したレコードを、1変数にセットしたく思います。 (この変数を本文にして、メールをはき出します。) AccessVBAでは -------------------------- Do Until rs.EOF   strBody = strBody & rs!受注コード & ":" & rs!明細コード & vbCrLf   rs.MoveNext Loop -------------------------- とするところを、sqlのストプロで -------------------------- WHILE @@FETCH_STATUS = 0 BEGIN  select @strBody = (@受注コード + @明細コード) + char(13) + char(10)  FETCH NEXT FROM cur_cust  INTO @受注コード, @明細コード end -------------------------- 等としても、1レコード分のデータしか渡りません。(あたり前ですね。) 現在に手詰まりの状態です。 ご教授、よろしくお願いします。

  • 命令を変数に応じて変化させるには?

    「テーブル1」というテーブルの「データ」というフィールドにA~Jまで10個データが格納されていたとします。 このデータを変数 DATA01~DATA10 にそれぞれ格納したいと思っています。 下記ソースでは、レコードの終端までループしても、DATA01に「テーブル1」の1レコード目の値、"A"しか格納できませんが、これをDATA02に"B",DATA03に"C"・・・と順々に格納するにはどうしたら良いのでしょうか? それぞれの変数に応じた命令を一つ一つ書くのではなく、Countの値に応じて命令そのものを変化させて行いたいと思っています。他の言語ではわかるのですが、VBではどうするのかわかりません。 ご指導程お願い致します。 Private Sub テスト_Click()   Set DB = CurrentDb   Set RS = DB.OpenRecordset("テーブル1")   Count = 1   Do Until RS.EOF    DATA01 = RS!データ    RS.MoveNext    Count = Count + 1   Loop   End Sub

  • C#でDBの特定列をUpdate

    初歩的な質問ですいません。C#でテーブルを指定して、特定列のみ変更するにはどうすれば良いんでしょうか。 VBでしたら、下記のコードで行けますが、どなたか教えてください。 rs.Open "売上", cn Do Until rs.EOF rs.Update "売上額", rs!売上額 * 1.05 rs.MoveNext Loop

専門家に質問してみよう