再クリーニング、recalc、更新、または再描画
アクセス2016
私はいくつかのサブフォームを持つ主な形をしています.
メインフォーム名:certinput
サブフォーム:[サブフォームProdInfo]と[サブフォームADDLINFO]
私は変数HDText
を作成しました[Subform ProdInfo]の[Lot NO]という名前のコントロールのOneXitでは、次のコードがあります.
nulltozero(フォーム!certinput![サブフォームADDLINFO]フォーム!text1)= 0
フォーム!CertInput![サブフォームAddLInfo] .form!text1= hdtext
フォーム!CertInput![サブフォームADDLINFO] .FORM.RECALC
エラーなしで実行されますが、フォーカスを[サブフォームaddtlinfo]に移動すると、値はフィールドtext1にあります.空白です.
あなたは助けることができますか?
返信リスト(回答:10)
Recalc、Requery、Refresh、Repaintではなく、これらのもののいずれかを実行する必要はありません.この変数HDTextはどこに定義されていますか?行にブレークポイントを設定してその値を確認しましたか.
フォーム!CertInput![サブフォームADDLINFO].form!text1= hdtext
そして、コードがブレークポイントで停止したときに、HDTextの値が何であるかを確認するときは?
応答10# ->にスキップ9 #NVMaxinはい、私は次のように変数を定義し、テストしました.
Variant
として薄暗いHDTEXThdtext= dlookup( "text1"、 "addtlinfoItems"、 "info= 'dfars'")
MsgBox HDText
ブレークポイントを管理する方法はわかりません.
応答8# ->にスキップ7 #NVMaxinOneXitコード全体は次のとおりです.
プライベートサブLOT_NO_EXIT(整数としてキャンセル)
の場合は終わります の場合は終わります
Variant As As Variant As
Forms![CERTINPUT]![NEWTEXT]= "YES"またはME.Newrecord
私!= Dlookup( "[熱番号"、 "Lot Nos"、 "[Lot No]=フォーム![CERTINPUT]![サブフォームProdInfo] [LOT NO]")
iSnullでない場合(私![熱番号])それから
私!= Dlookup( "Dfars"、 "Heat Nos"、 "Forme![CertInput]![サブフォームProdInfo]![HATH NO]」)
の場合は終了 私!= Dlookup( "[Size]"、 "Lot Nos"、 "[Lot No]=フォーム![CertInput] [Subform ProdInfo] [Lot NO]")
ME![仕様]= Dlookup( "[仕様]"、 "仕様"、 "[加熱NO]=フォーム![CERTINPUT]![サブフォームProdInfo]![熱番号]」)
の場合は終了 IF(フォーム![CERTINPUT]![NewText]= "YES"またはME.Newrecord)そしてMe!HEATDFARS= true
HDText= dlookup( "text1"、 "addtlinfoItems"、 "info= 'dfars'")
nulltozero(フォーム!certinput![サブフォームADDLINFO]フォーム!text1)= 0
フォーム!CertInput![サブフォームAddLInfo].form!text1= hdtext終了SUB
変数が作成され、有効です.それは問題ではありません.[TEXT1]コントロールの他のサブフォーム[サブフォームADDLINFO]に表示する変数の値が表示されます.
応答7# ->にスキップ5 #DirkGolフォーム/サブフォームセットアップの説明によると、わたしがわかる限り有効です.したがって、ステートメントが実行されていないか、変数HDTEXTにはNULLまたはブランク値があります.その実行を支配するIFステートメントが2つあります.
ブレークポイントを設定してコードをデバッグする理由はそれほど役に立ちます.このように、実行を追跡するために一時的にdebug.printステートメントを一時的に追加できます.IF(フォーム![CERTINPUT]![NewText]= "YES"またはME.Newrecord)そしてMe!HEATDFARS= true
debug.print "*** ifステートメントの場合は***"HDText= dlookup( "text1"、 "addtlinfoItems"、 "info= 'dfars'")
の場合は終わります の場合は終わります
debug.print "hdtext="&hdtext
nulltozero(フォーム!certinput![サブフォームADDLINFO]フォーム!text1)= 0
debug.print "***秒の場合は***"
"
フォーム!CertInput![サブフォームAddLInfo].form!text1= hdtextその後、コードをトリガーした後は、Immediatewindows を調べて、debug.printステートメントが表示されているものを確認できます.
NullToZero()関数が行い、NZ()関数との違いについて興味があります.引数値がテキストの場合でも、常に0を返しますか?
応答5# ->にスキップ6 #NVMaxinモジュールで:何年も前に私に書かれました.
関数NullTozero(Variant As Asabale)
isNull(anyValue)の場合
nulltozero= 0
NullTozero= AnyValue
の場合は終了 終了関数あなたが提案したようにコードを実行しました.どちらのdebug.printステートメントも、その両方が実行されたことを示しました.
応答3# ->にスキップ2 #DirkGol私が理解していないというあなたのセットアップについて何かがなければなりません.このデータベースを投稿することも、
OneDrive
またはDropboxのようなファイル共有サービスで、問題を証明できる最小限のversionで、OneDrive
またはDropboxにリンクしてください.またはそれがあれば
大きすぎませんので、あなたは私のWebサイトから取得できるアドレスで私に電子メールを送ることができます.
応答2# ->にスキップ1 #NVMaxin 1遅れて申し訳ありません.私は深呼吸をして別の角度からそれを見た.
サブフォームProdInfoに隠しフィールドtext1を作成し、値を付与しました.その後、サブフォームAddLInfoのメインフォームのCertInputから、その値をサブフォームAddLInfoのフィールドtext1に転送することができました.今ではAOKが機能しています.
プライベートサブLOT_NO_EXIT(整数としてキャンセル)
Forms![CERTINPUT]![NEWTEXT]= "YES"またはME.Newrecord
私!= Dlookup( "[熱番号"、 "Lot Nos"、 "[Lot No]=フォーム![CERTINPUT]![サブフォームProdInfo] [LOT NO]")
iSnullでない場合(私![熱番号])それから
私!= Dlookup( "Dfars"、 "Heat Nos"、 "Forme![CertInput]![サブフォームProdInfo]![HATH NO]」)
私の場合!HEATDFARS= true
me!text1= dlookup( "text1"、 "addtlinfoItems"、 "[info]=""DFARS" ")
私!TEXT1= NULL
の場合は終了
の場合は終了
の場合は終了 終了SUBプライベートサブサブフォーム_ADDLINFO_ENTER()
Forms![CERTINPUT]![NEWTEXT]= "YES"またはME.Newrecord
フォーム!CertInput![サブフォームADDLINFO]!TEXT1=フォーム!CertInput![サブフォームProdInfo]!text1
の場合は終了 終了SUBあなたの助けとガイダンスをありがとう.私はブレークポイントを見上げて、何か新しいことを学びました.
√