2016-04-07 19 views
1

これまで、私は手作業でレポートのコントロールを有限数(12)作成し、ユーザーの選択した数に基づいてコードをオンまたはオフ(正常)にしました。 私のクライアントは、レポート上のコントロールの数に "制限なし"を設定したいと考えています。VBA経由でアクセスレポートのコントロールを作成するにはどうすればよいですか?

私の戦略は、コントロールを削除し、必要な番号をオンザフライで(コードを介して)作成することです。 ただし、コントロールを作成しようとすると、実行時エラー2450「参照されたフォームが見つかりません」が表示されます。 スニペット:

DoCmd.OpenReport "My_report", acViewDesign 
    Dim ctl As Control 
    Set ctl = CreateControl(FormName:="My_report", ControlType:=acTextBox, _ 
      Section:=acDetail, left:=2880, top:=0, width:=967, height:=312) 
    ' ... here lies code that adjusts attributes of the controls 
    DoCmd.OpenReport "My_report", acViewReport 

実行がCreateControl行に一時的に停止させます...参照フォームのMy_report」を見つけることができません。 (作業している場合、実際のCreateControlコードは変数に置き換えループ形状パラメータになります。)

私が見てきたすべての議論はフォームに関係なく、CreateControl Methodでドキュメントが最初のパラメータがの「名前であると言います開いているフォームまたはレポートを作成するコントロールを作成する "ので、レポートの場合にも機能するはずです。 レポートは、がデザインモードで開いていることに注意してください。私が間違っていることは何か考えていますか?

+0

私は、必要な関数 'CreateReportControl()'がページiのリファレンスで言及されていると言うのは恥ずかしいです! –

答えて

1

オンラインヘルプ/ドキュメントは、残念ながら間違っているか、少なくとも誤解を招くことがあります。

これには別の方法CreateReportControl()があります。