ここから本文です

Excel2010VBAのレコードセットソースに指定したSQL文でユーザー定義関数を使用でき...

nay********さん

2012/7/1110:22:08

Excel2010VBAのレコードセットソースに指定したSQL文でユーザー定義関数を使用できますか?

いろいろと検索していたのですが、思うような内容にヒットしなかったので質問させて
いただきました。

環境は、Windows7、Excel2010、Accessなし です。

列数5、行数10万超のInteger型データを作成し、テキストファイルに出力しています。
これを基データとして、「1列目と2列目がXとYを抽出」など、レコードセットで処理して
おります。
この抽出処理において、1列目から5列目の値を合計したり、平均したりするのであれ
ば、集計関数で実行できますが、集計関数にない処理は、Functionプロシージャで
ユーザー定義関数を作成し、戻り値を使用せねばと思っておりました。
Accessが使える環境でAccessで処理していた内容なのですが、Accessなしの環境
になってしまったため、Excelでどうにか、と思っております。

レコードセットのSQL文にユーザー定義関数を入れて実行すると「未定義関数~があ
ります」のエラーになってしまいます。
使用できないのであれば、作業用の一時ファイルを出力し、そこから処理することに
なるかと思っておりますが、一時ファイルの出力にかかる時間を削りたかったので
質問させていただきました。

補足porihikoletskunさん ご回答ありがとうございます。
回答を踏まえて補足させていただきますと、
1 レコードセットのSQL文にユーザー定義関数を使用することはできないか?
2 1が「できない」場合は、mdbファイルのQuerydefを操作することになると考えていますが、いかがでしょうか?
質問を閲覧してくれている方がいらっしゃるようなので、ここまで確認させていただければと思っております。

閲覧数:
451
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

por********さん

編集あり2012/7/1115:19:43

こんにちは。
accessがなくても、mdbファイルは、adoxコントロールでできます。
そのmdbファイルにあるデータを処理するようにしたら、少しは扱いやすいものができるかと。

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_050.html
この、accessを扱うページに、詳しくあるので、ご参考に。

>補足より
sqlサーバーで行なうストアドプロシジャーの仕組みが、MDBでできるか?ということになりますが、
難しいかと。
2ですが、Querydef・・は、クエリですよね、ADODBのSQLで、まず、作ってみたらと思います。
MDBにいろいろなオブジェクトを追加したり、というのは、MSのページでも、そんなに丁寧に教えていないので、
ACCESSアプリができる部分を手動での情報そのものが、少ないです。

質問した人からのコメント

2012/7/11 17:23:46

porihikoletskunさんの回答を参考に、いろいろ調べながらやってみます。
ありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる