![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
コーディング設計の質問です。
Oracle10gのDBに以下のテーブルがあります。
テーブル名:TEST_TABLE
カラム名:CODE, NAME
これから値を取得する際以下の方法をとっているのですが、VBA的に変なやり方ではないでしょうか。
クラスモジュール:TestDao, TestBean
ExcelObjects-----------------
Set ArrayList = TestDao.GetSQLResult(Conn, "検索条件", "0")
For i = 1 To ArrayList.Count Step 1
Set Bean = New TestBean
Set Bean = ArrayList.Item(i)
Call Draw(Sheet, Bean, 1, 1)
Row = Row + 1
Set Bean = Nothing
Next i
描画メソッド--------
Private Sub Draw(ByVal Sheet As Object, _
ByVal Bean As Object, _
ByVal Row As Integer, _
ByVal Col As Integer)
Sheet.Cells(Row, Col).Select
ActiveCell.FormulaR1C1 = Bean.GetCode()
Sheet.Cells(Row, Col + 1).Select
ActiveCell.FormulaR1C1 = Bean.GetName()
End Sub
JAVAに触った方ならわかると思うのですが、
TestDaoにはSQL文を記述・実行し、取得した結果を格納する。
TestBeanにはテーブルのカラムのプロパティを配置しています。
VBAの場合、こういったクラスを作成する必要はありますでしょうか。
(より良いやり方はありますでしょうか)
No.1ベストアンサー
- 回答日時:
先ず、S2で言うDAOとVBAで言うDAOは全然別物です。
それにS2だからBeanを使える(S2がセッタを呼び出してくれる)ので
あって、S2を利用できない環境では誰がネタを仕込んでくれると言う
のでしょう?
ADOによるDBアクセスを参照する方が良いでしょう。
回答ありがとうございます。
>誰がネタを仕込んでくれると言うのでしょう?
S2DaoなどO/Rマッピングツールは使用していません。
BeanもDaoも全て自前で作りました。
>ADOによるDBアクセスを参照する方が良いでしょう。
的外れなことを言っていたら申し訳ありません。
色々調べたのですが、ADOはDB接続を簡単にしてくれるだけでDaoやエンティティといった思想はないですよね。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
(ADOの役割?)
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Provider=MSDAORA;" & "Data Source=" & _
oracle_sid & ";", oracle_user, oracle_password
'Set ResultSet = Conn.Execute(Sql)
'Set Bean = New TestBean
'Bean.SetCode = ResultSet(0).Value
'ArrayList.Add(Bean)
'Set ResultSet = Nothing
'Conn.Close
'Set Conn = Nothing
ですのでデータベース層とロジック層を切り分ける手段にどのようなものがあるのかと考え質問しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【access】複数のフィールドの...
-
アクセスで定数を利用したい。
-
ACCESS VBAでテーブル内の特定...
-
Access vbaで重複レコードの削...
-
ACCESS DCOUNTの抽出条件について
-
データがあれば○○なければのSQL
-
VBAでテーブル名とカラム名を動...
-
ACCESSのクエリ、SQLに変数を使...
-
重複した複数のレコードを1レ...
-
「ご処理進めて頂きますようお...
-
VBAでループ内で使う変数名を可...
-
メルカリのメルカードで買い物...
-
CloseとDisposeの違い
-
Excelシート上のマクロを登録し...
-
Accessでフォームから別フォー...
-
アクセスVBAのMe!と[ ]
-
Excel ラジオボタンのリセット...
-
VBA シート毎に画像挿入
-
レジ返品交換について(時間がか...
-
VBA エンターキーでイベントに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データがあれば○○なければのSQL
-
ACCESS DCOUNTの抽出条件について
-
ACCESS VBAでテーブル内の特定...
-
【access】複数のフィールドの...
-
Access vbaで重複レコードの削...
-
重複した複数のレコードを1レ...
-
SQLServer→Access インポート
-
ACCESSのクエリ、SQLに変数を使...
-
別のaccessファイルからデータ...
-
Accessで縦と横を入れ替えたい
-
ACCESSで実行時エラー3008
-
アクセスで定数を利用したい。
-
抽出条件でデータ型が一致しま...
-
テーブル作成クエリを実行した...
-
社員名簿から検索する関数
-
ACCESSで購入回数を表示する方...
-
Access から Excelのシートをイ...
-
DataGridViewで複数条件の抽出...
-
アクセスで連続データをテーブ...
-
VBAからADOを使ってクエリのク...
おすすめ情報