- PR -

■Dlookup関数に変わる関数はありますか

1
投稿者投稿内容
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-08-29 21:37
WIndowsXP VB2005_ExpressEditionを使っている新人です。

社員名簿DataSet に接続された m名簿テーブルがあり、その主キーフィールドID
が”001”であるレコードの氏名フィールドから氏名を参照する方法で、次のような
処理をしています。

Me.m名簿TableAdapter1.Fill(Me.社員名簿DataSet.m名簿)
Dim 社員名 As String
Dim dr As DataRow
dr = 社員名簿DataSet.m名簿.FindByID("001")
社員名 = dr.氏名

ご指導いただきたいのは、ACCESS のDlookup関数のようなシンプルな処理方法が
あるのでは、と思っていますが、いい方法があれば、教えてください。

参考 → Dlookup ("氏名","m名簿","ID = '001'")

また、コード記述がシンプルであればソースが読みやすく、また覚えやすいことに
つながりますが、シンプルなことは処理速度も早いのでしょうか。
以上よろしくお願いします。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-08-29 21:50
引用:

だんじりさんの書き込み (2007-08-29 21:37) より:
WIndowsXP VB2005_ExpressEditionを使っている新人です。

社員名簿DataSet に接続された m名簿テーブルがあり、その主キーフィールドID
が”001”であるレコードの氏名フィールドから氏名を参照する方法で、次のような
処理をしています。

Me.m名簿TableAdapter1.Fill(Me.社員名簿DataSet.m名簿)
Dim 社員名 As String
Dim dr As DataRow
dr = 社員名簿DataSet.m名簿.FindByID("001")
社員名 = dr.氏名

ご指導いただきたいのは、ACCESS のDlookup関数のようなシンプルな処理方法が
あるのでは、と思っていますが、いい方法があれば、教えてください。

参考 → Dlookup ("氏名","m名簿","ID = '001'")

また、コード記述がシンプルであればソースが読みやすく、また覚えやすいことに
つながりますが、シンプルなことは処理速度も早いのでしょうか。
以上よろしくお願いします。



Dlookupはしらないけど簡略化が目的だったらメソッド書けばいいじゃん。自分で。
既存のFrameworkの方がわかりやすいと思うんだけどねぇ。
あとシンプルなことと処理速度は関係ない。
慣れないことに頭使うよりコンパイラの最適化を信じたほうが賢明。
_________________
質問する前にググレカス
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-08-29 22:49
ぶさいくろうさん、いつもありがとうございます。

「簡略化が目的だったらメソッド書けばいいじゃん。」と言われること
は何かピッタリなメソッドあるのでしょうか。少し検討してみまっす。

ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-08-29 23:35
引用:

だんじりさんの書き込み (2007-08-29 21:37) より:

また、コード記述がシンプルであればソースが読みやすく、また覚えやすいことにつながりますが、シンプルなことは処理速度も早いのでしょうか。


どちらも一概に言えません。 シンプルなのが読みやすい / 覚えやすいのであれば、オブジェクト指向という考え方そのものが成り立ちません。 また処理速度に関しても一概には言えません。 今回も、

引用:

dr = 社員名簿DataSet.m名簿.FindByID("001")
社員名 = dr.氏名


こちらの方が早いでしょう。 Dlookup みたいな書き方ですと一部コンパイル解決できていません。 その上、動作保証がなされる部分も多く安全です。 Dlookup に置き換えると劣化します。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-08-30 09:23
じゃんぬねっとさん、いつもご指導感謝しています。

シンプルな関数は読みやすく、覚えやすいがオブジェクト指向ではない。
あらかじめオブジェクトを宣言して、そのオブジェクトのプロパティや
メソッドを使うほうが体系的にソースを記述出来るということでしょうか

処理速度に関しても一概には言えづ、今回の場合はDlookupよりも早いと
おもわれること、了解しました。まだオブジェクト指向に戸惑っていて
つい昔のACCESSの容易さを考えてしまいます。

大変ありがとうございました。今後ともよろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-08-30 14:49
引用:

だんじりさんの書き込み (2007-08-30 09:23) より:

シンプルな関数は読みやすく、覚えやすいがオブジェクト指向ではない。


ここの結びがちょっと違います。 私の書き方がまずかったかもしれませんが、私がオブジェクト指向の話を出したのは 「シンプル == 絶対的にわかりやすい」 と断言していることに反論するためです。

私が "オブジェクト指向" を引き合いに出したのは、シンプルがベストならばオブジェクト指向という考え方は流行らないでしょう。 という意味です。 実際、記述も一昔前の構造化言語に比べて複雑になっています。 ですが流行っています。 私もこちらの方が読みやすくわかりやすいと感じています。 多くの方が同じように思っているのでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-08-31 09:27
じゃんぬねっとさん、ありがとうございます。

確かに「シンプル == わかりやすい」と考えがちですが、クラスをインスタンスして
そのプロパティやメソッドを使うほうがわかりやすく覚えやすいのかもしれませんね

ところが初心者にとっては、インスタンスに対して体系的な理解が不十分で、
1.Asの後に記述したデータ型はどこから来たのか?
2.Newの後ろはどのように記述するのか?

クラスからオブジェクトを作成し、プロパティやメソッドを利用する……
といったことがおぼろげながらにも分かった気になっていますが、記述されたコード
の文法をもっと体系的に理解しておきたいと思っています。さらに各種の実例を見る
とモヤモヤの部分がますます増え、消化不良を起こして胃や腸を痛めてしまいます。

こんなことから、インスタンスからプロパティやメソッドまでのコードを丸暗記して
いるような状況で、私にとっては、「シンプル == 覚えやすい」になってしまいます。
もう少しオブジェクト指向に慣れ親しめるようにがんばります。
これからもよろしくお願いいたします。



[ メッセージ編集済み 編集者: だんじり 編集日時 2007-08-31 11:02 ]
1

スキルアップ/キャリアアップ(JOB@IT)