掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
構造体のメンバについて (ID:87063)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
さきほどの書きかけ誤送信分の訂正です。^^; /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ GetRowsの前に普通にレコードセットは作ったのですよね? 今VB5の環境がないのでVB6での話しで書きます。 上の例で言うとarrayのところの変数を例えば Dim RsArray As Variant として宣言しておきます。 あと、ADO使うのだったら普通にADOコネクションをOpenしておきます。 DAOでは試してないのでなんなのですが、 とりあえずADOでの説明でご勘弁を。 ・・でもってまずは普通にレコードセット作ります。 Dim Rs As ADODB.Recordset Dim SQL As String '(ここに取得したいSELECT文のSQL文を書きます) SQL = "Select なんてらかんてら〜" Set Rs = New ADODB.Recordset 'Rs作成 '※下記CnはADOコネクションの意味(オープンするコードは略) Rs.Open SQL, Cn, adOpenStatic, adLockReadOnly, adCmdText If Rs.EOF Then 'どうのこうののエラー処理 Exit Sub End If でここまでは普通のレコードセット作りの部分ですね。 で、次にこれをやるわけです。 RsArray = Rs.GetRows() 'いったんRsArrayに格納したのですみやかにRsをクローズしておく Rs.Close: Set Rs = Nothing で、それで、いったいどー使うのか?をお聞きになりたいのですよね? RsArrayの説明: 1)RsArrayは発行されたSelect文に基づくRsを下記Rs.GetRows()でそっくり 配列にしたものです。 2)RsArrayの1次元目はSelect文で選択したフィールドデータが入るが 1番目のフィールドを0から数えます。 3)RsArrayの2次元目はSelect文で選択されたレコード数、つまりロー数を 意味します。 ということなのです。 だから、あ、もうレコードを意のままに操作できるのがみてとれますね。 わかりましたか? えーーー、 でもどーやって動的にボトムのデータとかを(行数が変動するのにどうやって) 読むのか?質問が来そうですね。 それについてですが、そういうのはLBoundやUBoundを使えばOKなの。 例えば UBound(RsArray, 2) + 1 とすればそれはレコード数を意味します。 これってまだASPで書いてる方なんかも恩恵ありです。 ASPとASPのルーチン間の連絡なんかに むりむりPOSTでがんばんなくてもスマートだし、いろいろな局面で応用きくと 思いますよ。 今回の案件には無関係だったにしてもまずはお試しあれ。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.