プロが教えるわが家の防犯対策術!

教えてください。
AccessのVBAで、標準モジュールに作ったサブルーチンに1つの引数を渡して、複数の戻り値(例えば「果物」を渡して、「りんご」「みかん」「いちご」をそれぞれ受け取る)を取得したいのですが、どのようにしたらよいのでしょうか?
よろしくお願いします。

A 回答 (3件)

s_husky です。



複数のフォームから一つの検索フォームを開く。
検索結果を、それぞれのフォームの任意のテキストボックスに表示する。
この場合、一番簡単なのは、

DoCmd.OpenForm stDocName, , , stLinkCriteria, , , "フォーム名,テキストボックス名"

と OpenArg sを利用することです。

検索フォームでは、

Dim strOpenArgs()

Sub Form Load()
  strOpenArgs()=Split(OpenArg s,",")
End Sub

これで

strOpenArgs(0)="フォーム名"
strOpenArgs(1)="テキストボックス名"

となります。

後は、

Forms(strOpenArgs(0)).Controls(strOpenArgs(1))="XXXX"

とすれば、呼び出し元のテキストボックスに代入することができます。

※私も、たった一人で独習している単なるスーツのデザイナーに過ぎません。
※頑張って下さい。
    • good
    • 0
この回答へのお礼

こんなにも早くご回答がいただけるとは思いませんでした。本当に感謝しています。
いろいろ本などを調べながら独学していますが、なかなか思った内容を見つけることができず、困っていました。
丁寧な解説でとっても分かりやすく、これで問題も解決しました。
本当に有り難うございました。

お礼日時:2006/03/09 11:07

以下のは、グループ名に対するメンバーを返す関数の例です。


配列変数を ByRef で渡しています。
関数自体は、メンバー数を戻しています。

Option Compare Database
Option Explicit

Private Sub コマンド0_Click()
  Dim I      As Integer
  Dim N      As Integer
  Dim strMember() As String
   
  N = 該当するメンバーを戻す("果物", strMember())
  For I = 0 To N
    Debug.Print strMember(I)
  Next I
End Sub

Public Function 該当するメンバーを戻す(ByVal GroupName As String, ByRef strMember() As String) As Integer
  Select Case GroupName
    Case "果物"
      strMember() = Split("りんご,みかん,イチゴ", ",")
    Case "車"
      strMember() = Split("乗用車,パトカー,消防自動車,救急車", ",")
    Case "玩具"
      strMember() = Split("ぬいぐるみ,犬,旦那", ",")
    Case Else
      strMember() = Split("", ",")
  End Select
  該当するメンバーを戻す = UBound(strMember())
End Function
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。とっても参考になりました。問題も解決しそうです。
ところで、今回の質問と直接関係ないのですが、私はACCESSでVBAを初めて間がないので、変な質問かもしれません。周りに聞く人もいないので済みません。
例えば、フォームA、B、Cなど複数のフォームで商品名を入力しようとしたとき、その商品を検索するためにフォームZの検索画面で条件をいれて検索させ、その結果の商品名や商品コードなどを元のフォームのテキストボックスなどに表示させるときは、一般的にどういうやりかたをするのでしょうか?
今回の質問のように、引数と戻り値でするのか、または別の簡単なやり方があるのか…。
また、お時間のあるときにでも教えてください。
よろしくお願いします。

お礼日時:2006/03/09 10:01

テーブル構造をそのようにすればよいのですが、



例えば八百屋さんで売っているものをテーブルにする際、

フィールドとして
・ID
・種別
・品名
などを用意すれば
1   果物   りんご
2   果物   みかん
3   果物   いちご
4   野菜   とまと
5   野菜   きゅうり
・・・・・・・・
種別のコードを渡して、クエリの形でこのテーブルを検索すれば、果物のリストをレコードセットとして得ることができます。 
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。参考になりました。

お礼日時:2006/03/09 09:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す