掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
孫階層まであるレコードセットをつくるには? (ID:126500)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
早速のご返答ありがとうございます。 >> 葉月さん おぉ、これならチェックボックスもできるしいいかも。 ありがとうございます。 あとは値段との相談です。。 >> 魔界の仮面弁士さん わかりにくい表現で申しわけありません。 > えぇと。れは子が無いのに孫がある、という状況でしょうか。 いえ、子(見積)がなければ孫(商品)はない状況です。 Form_Loadでレコードセットを作っています。 たとえば案件が3つあり、最後に登録した案件(仮に案件3とします)に見積が登録されておらず、案件のみ登録してある場合、 次回起動時に孫レコードセットを作る際に「BOFまたはEOFがTrue・・・」のエラーが出ます。 案件3に見積が登録されておればエラーを出さずに起動します。 ちょっと長いのですがForm_Loadのコードを転記させていただきます。 ※下記にある「案件別仕様」とは「商品」のことです。 Private Sub Form_Load() Set cn = New ADODB.Connection cn.Provider = "MSDataShape" cn.ConnectionString = "Data Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:"DBまでのパス";Persist Security Info=True" cn.Open '案件一覧レコードセット生成 Set rsMatterManagement = New ADODB.Recordset With rsMatterManagement .CursorType = adOpenStatic .LockType = adLockPessimistic .CursorLocation = adUseClient End With strSQLShape = " SHAPE {select * from 案件管理 order by 案件ID DESC} AS MatterManagement" strSQLShape = strSQLShape & " APPEND (( SHAPE {SELECT * FROM 見積管理 ORDER BY 見積ID DESC} AS ESTManagement APPEND ({select * from 案件別仕様管理 order by 案件別仕様ID ASC} AS CategoryList" strSQLShape = strSQLShape & " RELATE '案件ID' TO '案件ID','見積ID' TO '見積ID') AS CategoryList) AS ESTManagement" strSQLShape = strSQLShape & " RELATE '案件ID' TO '案件ID') AS ESTManagement" rsMatterManagement.Open strSQLShape, cn '見積一覧レコードセット生成 Set rsESTManagement = New ADODB.Recordset With rsESTManagement .CursorType = adOpenStatic .LockType = adLockPessimistic .CursorLocation = adUseClient End With Set rsESTManagement = rsMatterManagement.Fields!ESTManagement.Value '案件別仕様管理レコードセット生成 Set rsCategoryList = New ADODB.Recordset With rsCategoryList .CursorType = adOpenStatic .LockType = adLockPessimistic .CursorLocation = adUseClient End With Set rsCategoryList = rsESTManagement.Fields!CategoryList.Value End Sub 一部省略(他のレコードセットなど)していますが、上記のようになります。 上記では最終行の Set rsCategoryList = rsESTManagement.Fields!CategoryList.Value にて「BOFまたはEOFがTrue・・・」のエラーが出ます。 > たとえば、Updata / UpdateBatch は > おのおのの内部レコードセットそれぞれに対して適用しなければ > なりませんが、その点は大丈夫でしょうか 説明不足で申し訳ありません。登録時ではなく画面(DataGrid)への表示の時点(DataGridへ連結するレコードセットの生成)で問題が発生しております。 ちなみにデータの登録時にはSQLでUPDATEしcn.Execute後、rsMatterManagementをrequeryしています。 あと、DBのフィールドですが、 案件管理:案件ID 見積管理:案件ID,見積ID 案件別仕様管理:案件ID,見積ID,案件別仕様ID がそれぞれ主キーになっています。 # VBを触り始めたばかりで、DelphiにおけるDataSetのMasterFieldsと同じ動作を期待してShapeを使ってみたのですが、 # 根本的に使い方を間違っているんでしょうか・・ お手数をおかけいたしますが、よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.