私はMySysObjects
からその行ソースを取得し、DBのフォームの完全なリストを示すコンボボックスを持っています。 フォーム名はコンボボックスから選択され、VBAを使用して文字列として関数に渡されます(その文字列をFormに変換する方法がわからないため)。だから、 、フォームの文字列値が、私は今、私がものを行うことを望む形式の文字列変数を持つ関数に渡されたら... 私が通常使用する:MS Accessリファレンス文字列変数によるフォーム
Function MyFunction()
Dim frmForm as Form
Set frmForm = form("MyForm")
DoCmd.OpenForm frmForm.Name, acDesign, , , , acHidden
With frmForm
Do stuff...
End With
End Function
しかし!私は、関数に文字列変数を渡されてきたように - など:
Function MyFunction(strFormName as String)
Dim frmForm as Form
Set frmForm = Form(strFormName) 'THIS DOESN'T WORK
DoCmd.OpenForm frmForm.Name, acDesign, , , , acHidden
With frmForm
Do stuff...
End With
End Function
私の質問は、私はForm
オブジェクトを返すようにSet
ステートメントを使用しない方法ですか? フォーム上のコンボボックスの値を変換し、Form
オブジェクトを関数に渡すか、コンボボックスの値を関数に変換し、Set
などを使用して変換することができます。 私はそれが簡単な構文の質問であることを望んでいますが、私が知っているすべてを試したので、私は試していないその謎めいた答えが必要です!
Set frmForm = Form(strFormName)
ファーストコレクションの名前がForms
、ないForm
です:
返信ありがとうございます! はい、私はいくつかのタイプミスをしたことがわかります! フリーハンドを入力するだけで、大文字の問題や欠落した文字(特に 's')を見落としたことがわかりました。 基本的に、これまでに何度も読んだことがあります(フォームが開かれるまでは、何も設定できなくなりました!)が、実際にこれまで使用したことがないので、基本的な点を無視する! 問題が修正されました。そして私はそれについても数時間研究したと思っています!一度あなたが知っている。ええと! – TimesMoney
... ありがとう! 感謝! – TimesMoney