Access VBA質問箱 IV

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

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


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

【9857】collectionの指定方法をおしえてください BLUELION 07/9/19(水) 13:57 質問[未読]
【9859】Re:collectionの指定方法をおしえてください hatena 07/9/19(水) 14:51 回答[未読]
【9860】Re:collectionの指定方法をおしえてください BLUELION 07/9/19(水) 14:58 質問[未読]
【9861】Re:collectionの指定方法をおしえてください hatena 07/9/19(水) 19:02 回答[未読]
【9862】Re:collectionの指定方法をおしえてください BLUELION 07/9/19(水) 23:02 お礼[未読]

【9857】collectionの指定方法をおしえてください
質問  BLUELION  - 07/9/19(水) 13:57 -

引用なし
パスワード
   簡単な質問で申し訳ありません

エクセルのシステムをアクセスに移行していますが
VBAがわからず苦戦しております

指定されたコネクションの名前の文字列をつかって
そのコネクションに属するコントロールに
指定値をセットしたいのです

function dataset(grpname as string ,setdata as integer)

  dim aaa as access.control

  For Each aaa In grpname <==== 文字列grpnameをつかってコレクションを指定したい
   AAA.Value = setdata
  Next

end function

grpnameをcollectionにすれば簡単なのですがどうしても文字列でつくりたいのです

お知恵を貸してください

エクセルのユーザーフォームをアクセスに移行するにあたり参考にできるHPありましたら
あわせて教えて下さい

【9859】Re:collectionの指定方法をおしえてくださ...
回答  hatena  - 07/9/19(水) 14:51 -

引用なし
パスワード
   >指定されたコネクションの名前の文字列をつかって
>そのコネクションに属するコントロールに
>指定値をセットしたいのです

コネクションってなんのことでしょうか。

ADO、DAO の Connection のこと?
とすると、Connection に属するコントロールって?


この関数を使用するときのコードも出してもらった方が
理解しやすいかも。
grpname引数をどのように設定するかが分かれば、やりたいことが
推測しやすいです。

【9860】Re:collectionの指定方法をおしえてくださ...
質問  BLUELION  - 07/9/19(水) 14:58 -

引用なし
パスワード
   すみません説明がたりませんでした
 
  call dataset("GRP_bp16",7)
  txt単価2とtxt単価3に7をセットしたいのです


  dim GRP_bo16 as new collection
  dim GRP_bp16 as new collection
  dim GRP_bq16 as new collection


  GRP_bo16.Add txt単価1
  GRP_bp16.Add txt単価2
  GRP_bp16.Add txt単価3    
  GRP_bq16.Add txt単価4

【9861】Re:collectionの指定方法をおしえてくださ...
回答  hatena  - 07/9/19(水) 19:02 -

引用なし
パスワード
   >  call dataset("GRP_bp16",7)
>  txt単価2とtxt単価3に7をセットしたいのです
>
>
>  dim GRP_bo16 as new collection
>  dim GRP_bp16 as new collection
>  dim GRP_bq16 as new collection
>
>
>  GRP_bo16.Add txt単価1
>  GRP_bp16.Add txt単価2
>  GRP_bp16.Add txt単価3    
>  GRP_bq16.Add txt単価4

なぜ、

function dataset(grpname as collection, setdata as integer)

というように collection で渡してはダメなのでしょうか。

その理由が分からないので、外しているかも知れませんが、
下記のようなコードを考えてみましたが、目的に合致しますでしょうか。

Dim Cl_GRP As New Collection

Private Sub コマンド8_Click()
  Cl_GRP.Add New Collection, "GRP_bo16"
  Cl_GRP.Add New Collection, "GRP_bp16"
  Cl_GRP.Add New Collection, "GRP_bq16"
  
  Cl_GRP("GRP_bo16").Add Me.txt単価1
  Cl_GRP("GRP_bp16").Add Me.txt単価2
  Cl_GRP("GRP_bp16").Add Me.txt単価3
  Cl_GRP("GRP_bq16").Add Me.txt単価4

  dataset "GRP_bo16", 1
  dataset "GRP_bp16", 2
  dataset "GRP_bq16", 3
End Sub

Function dataset(grpname As String, setdata As Integer)
  Dim aaa As Access.Control

  For Each aaa In Cl_GRP(grpname)
   aaa.Value = setdata
  Next

End Function

コントロールのcollection自体を、collection に格納してみました。

【9862】Re:collectionの指定方法をおしえてくださ...
お礼  BLUELION  - 07/9/19(水) 23:02 -

引用なし
パスワード
   ありがとうございました

必要性としては 
もっといい方法があるかもしれませんが

DIM GRP_A1 AS NEW COLLECTION
DIM GRP_A2 AS NEW COLLECTION
DIM GRP_A3 AS NEW COLLECTION
DIM GRP_A4 AS NEW COLLECTION
DIM GRP_A5 AS NEW COLLECTION

DIM EXCEL_POS_STR AS STRING
DIM SETDATA AS INTGER

select case EXCEL_POS_STR

case "A1" CALL DATASET(GRP_A1,SETDATA)
case "A2" CALL DATASET(GRP_A2,SETDATA)
case "A3" CALL DATASET(GRP_A3,SETDATA)
case "A4" CALL DATASET(GRP_A4,SETDATA)
case "A5" CALL DATASET(GRP_A5,SETDATA)

END SELECT


CALL DATASET(EXCEL_POS_STR,SETDATA)という
一行にしたかったからです

たとえば A1を参照しているエクセルのユーザーフォームのコントロールに一気にデータセットしたかったからです


▼hatena さん:
>>  call dataset("GRP_bp16",7)
>>  txt単価2とtxt単価3に7をセットしたいのです
>>
>>
>>  dim GRP_bo16 as new collection
>>  dim GRP_bp16 as new collection
>>  dim GRP_bq16 as new collection
>>
>>
>>  GRP_bo16.Add txt単価1
>>  GRP_bp16.Add txt単価2
>>  GRP_bp16.Add txt単価3    
>>  GRP_bq16.Add txt単価4
>
>なぜ、
>
>function dataset(grpname as collection, setdata as integer)
>
>というように collection で渡してはダメなのでしょうか。
>
>その理由が分からないので、外しているかも知れませんが、
>下記のようなコードを考えてみましたが、目的に合致しますでしょうか。
>
>Dim Cl_GRP As New Collection
>
>Private Sub コマンド8_Click()
>  Cl_GRP.Add New Collection, "GRP_bo16"
>  Cl_GRP.Add New Collection, "GRP_bp16"
>  Cl_GRP.Add New Collection, "GRP_bq16"
>  
>  Cl_GRP("GRP_bo16").Add Me.txt単価1
>  Cl_GRP("GRP_bp16").Add Me.txt単価2
>  Cl_GRP("GRP_bp16").Add Me.txt単価3
>  Cl_GRP("GRP_bq16").Add Me.txt単価4
>
>  dataset "GRP_bo16", 1
>  dataset "GRP_bp16", 2
>  dataset "GRP_bq16", 3
>End Sub
>
>Function dataset(grpname As String, setdata As Integer)
>  Dim aaa As Access.Control
>
>  For Each aaa In Cl_GRP(grpname)
>   aaa.Value = setdata
>  Next
>
>End Function
>
>コントロールのcollection自体を、collection に格納してみました。

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