ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Polytech Developersコミュのカリさん、番長に質問

  • mixiチェック
  • このエントリーをはてなブックマークに追加
VB6.0 でSQL の「コネクションの作成」と「レコードセットの作成」をそれぞれクラス化して、そのレコードセットをモジュール内でインスタンス化して操作しようとしているのですが、どうやってもモジュールの中では使用できないメソッドがあります。

対処方法を知っていたら教えてください。

・レコードセットをオープンしているのは、クラス内です。
・接続に使用しているオブジェクトは ADO です。
・クラスからはレコードセット型をモジュールに返しています。

例:
クラス内処理(クラス名:ClsSQLRecordset):
Private Set m_Sql_RecordSet As ADODB.Recordset
------------------------------------------
public Function m_SQL_RS(ByVal strConn As String) AS ADODB.Recordset
Set m_Sql_RecordSet = New ADODB.Recordset
.
.
.
Sql_Sql_RecordSet.Open strSource, strConn ,adOpenSta tic
Set m_SQL_RS = Sql_Sql_RecordSet 'モジュールに返信
End Function

モジュール内処理:
Dim Sql_Get_Rs as ClsSQLRecordset
Set Sql_Get_Rs = New ClsSQLRecordset
.
.
.
.
Sql_Get_Rs.Fiels.Count '←これはカラム数が取れる。
Sql_Get_Rs.RecordCount '←これはレコード数が取れない。
Sql_Get_Rs.Fiels(0) '←これは値が取れる。?
Sql_Get_Rs.MoveNext '←これはできていない。
Sql_Get_Rs.Fiels(0) '←これは?の値と一緒。。

上記のように動作可能なメソッドとそうでないメソッドがあります。

因みに、現時点での対処方法は、モジュール内であらたなレコードセットを作成して、クラス内で作成した(オープンしていない)レコードセット・オブジェクトをモジュール内のレコードセットで開いています。



コメント(5)

>Private Set m_Sql_RecordSet As ADODB.Recordset
Private m_Sql_RecordSet As ADODB.Recordset としてください。

コピペみすりました。
正確には

Sql_Get_Rs.m_SQL_RS(strConn).Fiels.Count
Sql_Get_Rs.m_SQL_RS(strConn).RecordCount
Sql_Get_Rs.m_SQL_RS(strConn).Fiels(0)
Sql_Get_Rs.m_SQL_RS(strConn).MoveNext
Sql_Get_Rs.m_SQL_RS(strConn).Fiels(0)

です。本文は面倒くさいんで省略しました。
これって、レコードセットを自動生成するのですね。

RecordCountはメタ的に使うのでは無くて、セット後、Filter等で抽出を実際に実行してからレコード数を算出します。

Sql_Sql_RecordSet.Open strSource, strConn ,adOpenSta tic
の後に
Sql_Sql_RecordSet.Filter="カウントしたい条件"
とやらないとVBAではカラム数は数えてくれません。


それか、RecordCountにこだわるのなら、新しいレコードセットを作成して走らせるので正しいのではないかと思います。

それ以外だと、RecordCountを使用するのでは無くて、コントローラー側で表示時にEOF等で終端設定するのがいいのかな?


と大して詳しくない私が言ってみるテスト
>かなにゅうりょくさん

どうもでつぅ!!

やっぱVB職人じゃないのにそれなりの解答を与えてくれるのがすごいっす!!



、あぁーまた明日から会社だよ。。。
>はちゅぴぃ さん

実は、これについてはVBAで少し悩んだことがあります。だから偶然回答できただけですよ。 しかも正しいかどうかww


お仕事がんばってください〜 
私も来月からデスマーチに入る予定ですので^^;
一緒に死にましょうww

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Polytech Developers 更新情報

Polytech Developersのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。