プロが教える店舗&オフィスのセキュリティ対策術

ASPを勉強しているのですが、分からないことがあります。
宜しければ教えてください。
いまいち分かってないみたいなので。

objRS.Fields.Count - 1

A 回答 (2件)

なぜ 減算するのかは Fieldsコレクションの Itemは0ベースだからです



Fieldsに8個のフィールドがある場合 Countプロパティは8を返します
ここのフィールドにアクセスするのには
objRS.Fields[n] または objRS.Fields(n) などといった記述をします
# 前者がJavaScript、後者はVBScript
この場合の nの値域(許容される値の範囲)は 0,1,2,3,4,5,6,7の8個です

VBScriptでFor文などでフィールドをアクセスするのに
for n = 0 to objRs.Fileds.Count -1
といった具合に使います
JavaScriptの場合
for( n = 0; n < objRS.Fields.Count; n++ )
といった具合です

JavaScriptやC言語などは Forの終了条件に関係演算子の式が使えます
Basic系の言語の多くは 初期値から終了値といった指示なので個数が返されるコレクションで最初の要素の添え字が0で始まる物は個数-1を終了値にするといった手法になります

ExcelのWorksheetsやWorkbooksなど添え字が1から始まるような場合はCountプロパティをそのまま使いますよ
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。
参考になりました。
つまり、初期値から終了値といった指示の場合、最初の要素の添え字が0で始まる物は個数-1を設定することで処理を終了してくれることを意味するのですね。(間違ってたらまた指摘ください。)

-1にすることである値までCountされ、ループが処理を終了してくれるという
ことでしたか。

お礼日時:2008/05/11 14:37

objRSが何のオブジェクトなのかをソースで追いかけましょう



どこかで
Set objRS = CreateObject("ほげほげ")
といった命令が記述されていると思います
この『ほげほげ』に Filesというプロパティ(またはコレクション)があって
そのプロパティのCountプロパティを参照してその値から1減算している
といった事になります

多分 objRSはADOのRecordset型なのだろうともいます
そのレコードセットに読み込まれるテーブルデータの列数-1 を取得したいのでしょう

この回答への補足

ありがとうございます。
とても参考になりました。
しかし、なぜCountプロパティを参照してその値から1減算しているのでしょうか?因みに1増算してみたらエラーが表示されてしまいました。
1減算することでどのような処理が行なわれているのかを理解してないみたいです。
宜しければその理由とRecordset型についてを教えてください。

補足日時:2008/05/10 22:53
    • good
    • 0

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