Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2122 / 2272 ツリー ←次へ | 前へ→

【3829】関数についてですが yamada 04/11/10(水) 10:33 質問[未読]
【3830】Re:関数についてですが Gin_II 04/11/10(水) 11:37 回答[未読]
【3831】Re:関数についてですが yamada 04/11/10(水) 12:45 質問[未読]
【3832】Re:関数についてですが Gin_II 04/11/10(水) 13:02 回答[未読]
【3833】Re:関数についてですが yamada 04/11/10(水) 13:38 質問[未読]
【3834】Re:関数についてですが Gin_II 04/11/10(水) 14:18 回答[未読]
【3835】Re:関数についてですが yamada 04/11/10(水) 17:52 質問[未読]
【3837】Re:関数についてですが Gin_II 04/11/10(水) 23:58 回答[未読]
【3841】Re:関数についてですが yamada 04/11/11(木) 16:30 お礼[未読]

【3829】関数についてですが
質問  yamada  - 04/11/10(水) 10:33 -

引用なし
パスワード
   はじめまして、yamadaといいます。
Access2000を使用して、ツールを作成している仕事を任され、
関数についてわからないことがあり、困っているので質問させていただきます。

Public Function test(配列データ() as String) as String

ほしいデータを配列に加工
結果(例)
配列データ(0) = 1
配列データ(1) = 2
配列データ(2) = 10

end sub

配列データを作成、それをコンボボックスに関数として格納したいのですが
戻り値が違うのか何も戻ってきません。コンボボックスには =test()
と指定してあります。
配列を関数の戻り値として使うのは無理なのでしょうか?
また、関数で作成した配列をコンボボックスに入れるにあたり、いい方法は
ありませんか?

よろしくお願いします。

【3830】Re:関数についてですが
回答  Gin_II  - 04/11/10(水) 11:37 -

引用なし
パスワード
   >配列を関数の戻り値として使うのは無理なのでしょうか?

関数の引数としてってことでしょうか?
でしたら、ParamArray キーワードをヘルプで確認してください。


>また、関数で作成した配列をコンボボックスに入れるにあたり、いい方法は
>ありませんか?

関数の戻り値を、値リストの文字列として返すようにすれば大丈夫だと思います。

Microsoft Access でのコンボ ボックス コントロールとリスト ボックス コントロールのプログラミング
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnofftalk/htm/office03022000.asp

こちらも参考になるかな?

【3831】Re:関数についてですが
質問  yamada  - 04/11/10(水) 12:45 -

引用なし
パスワード
   ▼Gin_II さん:
>
>関数の引数としてってことでしょうか?
>でしたら、ParamArray キーワードをヘルプで確認してください。
>
>関数の戻り値を、値リストの文字列として返すようにすれば大丈夫だと思います。
>

大変参考になりました、普通に配列として設定しただけでは駄目なんですね〜。
早い対応、ありがとうございました。

便乗して、またわからないことが出てきてしまったのですが・・・

このツールはoracle9.0のDBからいくつかのテーブルを取得して
その抽出条件を返すものです。 コンボボックスは加工した日付を配列として
設定してます。
問題なく、動く予定だったのですが、環境に依存してしまう恐れが出てきてしまい
テーブルにテーブルのリンクを張り、そこから条件流してデータを取得してと
言われ、調べていますが・・・

フォームのテキストやリストボックスにSQLで絞ったリンクしたテーブルの
データを入れることは可能なのでしょうか?

便乗しての質問、申し訳ありません。

【3832】Re:関数についてですが
回答  Gin_II  - 04/11/10(水) 13:02 -

引用なし
パスワード
   >フォームのテキストやリストボックスにSQLで絞ったリンクしたテーブルの
>データを入れることは可能なのでしょうか?

テキストボックスなら、DLookup 関数などを使ってください。
リストボックスなら、SQL文を使えます。

【3833】Re:関数についてですが
質問  yamada  - 04/11/10(水) 13:38 -

引用なし
パスワード
   ▼Gin_II さん:
>
>テキストボックスなら、DLookup 関数などを使ってください。
>リストボックスなら、SQL文を使えます。

さらに早い助言ありがとうございます。リストで頑張ってみたいと思いますが
lst_test.RowSource = "select A from A,B,C where..."
として、fromで テーブルのリンクでリンクしたテーブルA,B,Cを
指定できるのでしょうか? 今、ADOを使ってODBC接続をしているのですが
接続部分から変えないといけなくなるのでしょうか?

【3834】Re:関数についてですが
回答  Gin_II  - 04/11/10(水) 14:18 -

引用なし
パスワード
   >fromで テーブルのリンクでリンクしたテーブルA,B,Cを指定できるのでしょうか?

リンクテーブルとしてあるのなら、普通に FROM で指定できるはずです。

【3835】Re:関数についてですが
質問  yamada  - 04/11/10(水) 17:52 -

引用なし
パスワード
   ▼Gin_II さん:
>リンクテーブルとしてあるのなら、普通に FROM で指定できるはずです。

無事できました、テーブル名が違っていたみたいです(汗)
教えていただいたように、リストボックスにRowSourceでSQLを指定し表示させた
のですが、ひとつの列しか表示されませんでした。
select a,b,c と項目があったら、a,b,cの列を表示したいのですが
aの列しかリストには出てきませんでした。
RowSourceを仕様すると、こういうことは出来ないのでしょうか?
addItem等があればいいのですが、無いようですので・・・
よろしければ助言をいただければと思います。

【3837】Re:関数についてですが
回答  Gin_II  - 04/11/10(水) 23:58 -

引用なし
パスワード
   >select a,b,c と項目があったら、a,b,cの列を表示したいのですが
>aの列しかリストには出てきませんでした。

リストボックスのプロパティが間違っているのでは?


>addItem等があればいいのですが、無いようですので・・・

Access2002からは、AddItem も使えるとは思いますけど。

【3841】Re:関数についてですが
お礼  yamada  - 04/11/11(木) 16:30 -

引用なし
パスワード
   ▼Gin_II さん:
>>select a,b,c と項目があったら、a,b,cの列を表示したいのですが
>>aの列しかリストには出てきませんでした。
>
>リストボックスのプロパティが間違っているのでは?
>
>Access2002からは、AddItem も使えるとは思いますけど。
>
プロパティを確認したところ、無事出力されました。
今、使用しているのは2000なんですよ><

長々とありがとうございました。とても助かりました。

2122 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078265
(SS)C-BOARD v3.8 is Free