2017-11-20 16 views
-2

50個のコマンドボタンを統合したAccessフォームを作成し、それらのボタンを反復したいと考えています。もちろん、手でボタンを作成する(リボンのツールを使用する)ことは解決策ではありません。私は、これらのボタンをVBAコードを使用してループで作成したいと考えています。私はそれをどのようにすることができますか?あなただけのCreateControl(form.name、typeOfcontrolを、....)が必要ですフォームコントロールを追加するにはAccessフォームにコードを含むコマンドボタンを作成するにはどうすればよいですか?

+0

あなたの問題についての詳細とこれまでのところ、問題を解決して人々があなたをより良く助けることができるように、これまでの努力をしてください。 [良い質問をするにはどうすればいいですか?](https://stackoverflow.com/help/how-to-ask) – pirho

+0

ボタンの数が常に50の場合(つまり、ボタンを作成/ドロップするロジックがない私は手でそれをやるだろう。はい、それは迷惑で時間がかかりますが、コードを介してコントロールを配置することは苦痛でもあります。イベント処理も動的コントロールでは複雑です。 –

+0

[実行時にコントロールを作成する方法Access VB?](https://stackoverflow.com/questions/31301070/how-to-create-controls-at-run-time-access-vb)の可能な複製 – Andre

答えて

0

ので、コードは次のようになります。

Sub Add50Forms() 
Dim db As DAO.Database 
Dim frm As Form 
Dim newBt As Control 
Dim i As Long, j As Long 

Set frm = Application.Forms(1) 

For i = 0 To 1 
For j = 1 To 25 
    Set newBt = CreateControl(frm.Name, acCommandButton, Left:=100 + 3000 * i, Top:=500 * j) 
    Set newBt = Nothing 
Next j 
Next i 

End Sub 

私は2つのpropesedています簡潔にするためネストされたループですが、left:=およびtop:=という名前の引数については、いくつかのファンシーな表現で作ることができます。もちろん、これらのコードにいくつかのキャプションを追加するなどしたいと思います。コントロールの位置、大きさ、色はあなた次第です。

関連する問題