2

Access 2K7 データベースでもう少し一般的なものを作ろうとしています。OpenArgs を使用して情報を渡すフォームがあります。フォーム名、サブフォーム名、フィールド名を渡しているので、フィールドに入力できます。

フィールドへの参照を「再構築」する際に問題が発生しています。私は次のことを試しましたが、VBAはそれを好きではありません:

Dim strForm, strField, strSubForm As String
Dim frm As Form

strForm = Left(Me.OpenArgs, InStr(Me.OpenArgs, "|") - 1)
Brk1 = Mid(Me.OpenArgs, InStr(Me.OpenArgs, "|") + 1)
strField = Left(Brk1, InStr(Brk1, "|") - 1)
strSubForm = Mid(Brk1, InStr(Brk1, "|") + 1)

X = "Forms!" & strForm
Y = X & "!" & strSubForm
Z = Y & "!" & strField
frm(Z) = Me.Calendar0.Value

この演習の目的は、カレンダーの値 (Me.Calendar0.Value) をサブフォーム (Forms!strForm!strSubForm!strField) のフィールドに渡すことです。VBAが受け入れる方法でそれを書く方法がわかりません。「オブジェクト変数または With ブロック変数が設定されていません」というエラーが表示されます。

4

2 に答える 2

2

あなたが持っている ...

Dim frm As Form

...しかし、後でfrm最初にフォームインスタンスに設定せずに使用しようとします。そのため、オブジェクト変数が設定されていないというエラーが発生します。

しかし、あなたを悩ませているかもしれない別の問題があります。フォームにはサブフォーム コントロールを含めることができ、そのコントロールの名前は含まれるフォームの名前と同じではない場合があります。サブフォームコントロールの名前を使用していることを確認してください。

strSubFormサブフォームコントロールの場合、これは機能するはずです...

Forms(strForm).Controls(strSubForm).Form.Controls(strField) = Me.Calendar0.Value
于 2013-05-20T14:56:53.677 に答える