システムwiki

どのフォーム/サブフォームが開いているかに応じて変数を変更する

jorbrod 受付中 最終更新日:2021-06-15 23:34

私はメインフォーム-Medlemoplysningerfrm-メンバー情報(最初のタブ)とサブフォーム-請求書情報(3番目のタブ)を備えています.

メインフォームを開き、請求書タブをタブしているとき、ここには、Outlookを介して電子メールを送信するためのサブフォームのボタン(sendtiloutlook3)があります.
レポート名ここでは機能はとてもうまく機能します!

私はまた、メインフォームを介して直接サブフォームを開きたいです.私はもちろん障害メッセージ "MS Accessが" medlemoplysningerfrm "の形式を見つけることができません.

したがって、サブフォーム名を持つ新しい設定変数を作成しました.働くことはできません.

アクティブなフォームに応じて、これら2つの変数を切り替えるには、次の2つの変数を切り替えることができますか?

VBAコードは次のとおりです.

関数sendtiloutlook3()

ErrorではGoto sendtiloutlook3_err.
'この関数は既存のレポート名を変更し、SattachementNameとして "faktura ..."を変更します.
SEXISTINGREPORTNAMEを文字列としてDIM
文字列として薄暗いSattachmentName
DIM FAKTURAIDSTIはLONG LINE FAKTURAIDのための略語としての略語
Dim EfternavnStiとしての文字列 '略語efternavn-姓
DIM FORNAVNSTIとして文字列 'forkortelse for Den Lange Linje Til Fornavn-名
入力変数
fornavnsti= [フォーム] [MedlemoplysningerFrm] [Fornavn]
efternavnsti= [フォーム] [MedleMoplysningerfrm] [Efternavn]
Fakturaidsti= [Forms] [MedlemoplysningerFrm] [Fakturafrm Benderfululum] [フォーム] [Fakturaid]
'fornavnsti= [フォーム]![Fakturafrmundfrm]![fornavn]
'efternavnsti= [フォーム]![Fakturafrmundfrm]![Efternavn]
'Fakturaidsti= [フォーム] [Fakturafrmundfrm] [Faktureaid]
'送信するアクセスレポートオブジェクトの名前
SEXISTINGREPORTNAME= "FAKTURA1UNDRPT"
'Eメールの添付ファイルに使用される名前
SattachmentName= efternavnsti&"、"&fornavnsti&"faktura nr"&fakturaidsti
'それを起こすためのコード
CodeContextObjectを使用して
次のエラー再開について
DocMD.OpenReport SexistingReportName、AcViewPreview、 ""、 ""、 "[Fakturaid]="&NZ(.Fakturaid、0)、ACHIDDIDEN
レポート(SexistingReportName).caption= sattachmentName.
際に終わる
'レポートキャプションを変更することで、名前を効果的に変更します.
'.sendObjectメソッドの添付ファイルに使用されます
CodeContextObjectを使用して
次のエラー再開について
docMD.SendObject AcsendReport、sexistingReportName、 "PDFFormat(*.PDF)"、.navnsammensat&iif(NZ(.[Eメール])<>""、_
""、 "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"KārefycMedlem"&Vbcrlf&"Ermed FremSendesvedhāftedefaktura".&VBCRLF&「ヒルセン」&「Bogholderiet」、True、 ""
docmd.close Acrope、SexistingReportName.
(.macroError.number<>0)の場合、
ビープ
msgbox .macroError.description、vbokonly、 ""
終わり
際に終わる
sendTyoutlook3_exit:
出口機能
sendtiloutlook3_err:
MSGBOXエラー$
sendtiloutlook3_exitを再開します
エンド機能

返信リスト(回答:2)

1 #
ScottBD

これを扱う方法は、メインフォームが開いているかどうかをテストし、IFステートメントを使用してサブフォームからの値を入力します.こんな感じ:
isExists(MainFormName)がある場合
MainFormを参照するコード
そうしないと
コード参照サブフォーム.
終わり
これでさらに明確にする必要がある場合は、お気軽にお問い合わせください.

2 #
Imb

こんにちはjorgen、

それはあなたの全プログラムロジック上で少し依存しており、それはまだ私にとってまだ完全に明確ではありません.

この瞬間の最も簡単な解決策は、この関数に3つのパラメータを追加することによって、SendTiloutLook3をフォームに依存しているように思われます.

sendTyoutlook3(fornavnsti、文字列としてのefternavnsti、fakturaidstiとして、文字列として)

IMB、