• ベストアンサー

ACCESS acDialogで検索画面を開く

ACCESSで商品コードの検索フォームをacDialogで開いて、商品を選んだあと検索フォームを閉じてpublicの引数をメインフォームで受取っていますが、検索フォームを開いたままにしたい。 今は DoCmd.OpenForm "FM_商品検索", , , , , acDialog Me.商品コード = glbRecstrNo ”FM_商品検索”を開いたままで、メインフォームに商品コードを受け取る方法はありますか? 宜しくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.1

検索フォームの商品を選んだあとのイベントで メインフォームの商品コードに検索フォームの商品コードを代入する を実行すればいいと思います。

yuyu4247
質問者

お礼

やってみます。ありがとうございます

関連するQ&A

  • ACCESS 別フォームから別フォームの処理を

    ACCESSでメインフォームから別フォームを 【メインフォーム】 DoCmd.OpenForm "FM_商品検索", , , , , acWindowNormal 【商品検索フォーム】 検索画面でJANコードを選んだらJANコードをセットして、商品マスタの読込等の処理をしたい Forms!F_仕入!F_仕入sub.Form!JANコード = Me.JANコード ↑これは動く Forms!F_仕入!F_仕入sub.JANコード_BeforeUpdate ↑これがエラーになります 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」 でエラーになります。 Forms!F_仕入!F_仕入sub.JANコード_BeforeUpdate Public Sub JANコード_BeforeUpdate(Cancel As Integer) 何がおかしいのでしょうか? 宜しくお願いします

  • access vba 引数

    ACCESS VBA 引数取得について テキストボックスが横に3つ並んでいてその3つは同じデータのレコードで、 例えば | No | Name  |    Tel    |   ボタン  | |~~1~~|~~~山~~~~|~~99-9999-9999~~| |__更新__| | |~~2~~|~~~川~~~~|~~88-8888-8888~~| |__更新__| | |~~3~~|~~~空~~~~|~~77-7777-7777~~| |__更新__| | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ となっていて、ボタンを押して別のフォームを開いてデータの更新をしたいのですが、その押したレコードのNoを引数にして別のフォームを開きたいのです。どのようにコードを書いていいのか分かりません。 今のところ引数はほかにもあるのでそれは取れていて 変数名 = (引数にしたい項目1) 変数名 = 変数名 & (引数にしたい項目2) 変数名 = 変数名 & (引数にしたい項目3) DoCmd.OpenForm "フォーム名", , , , , acDialog, 変数名  (↑openArgs) までは書けています。 押したレコードのNoを引数に加えるというところがどのようにすればいいか分かりません。 教えてください。 よろしくお願いします。m(_ _)m

  • accessの検索で・・・

    お世話になっております。 今、OfficeXPで、Accessを使ってデータベースを作っています。 そこで、フィルタについて教えていただけないでしょうか(TへT) まずは、こんな感じでVBAを書いてみたのですが・・・ Private Sub kensaku_Click() Dim rsql1 As String Dim rsql2 As String Dim keys As String keys = InputBox("キーワードを入力してください", "キーワード検索") If keys = "" Then Exit Sub End If rsql1 = "select tel from master where dairi_code = keys" rsql2 = "select tel2 from master where contact_tel = keys" If rsql1 <> "" Then Me.Filter = "tel = '" & keys & "'" Me.FilterOn = True DoCmd.OpenForm "form_tel", acNormal, , "[tel] = '#" & key & "#'", acFormEdit, acDialog ElseIf rsql2 <> "" Then Me.Filter = "tel2 = '" & keys & "'" Me.FilterOn = True DoCmd.OpenForm "form_tel2", acNormal, , "[tel2] = '#" & key & "#'", acFormEdit, acDialog Else: MsgBox "該当するデータはありません", vbOKOnly End If End Sub と、いう感じです。 したいことは、2つのそれぞれのテーブルに検索をかけ、一致したのがあったらそれに対応するフォームを開くと言う感じにしたいです。 ロジック的に穴がありすぎると思いますが、どうかよろしくお願いいたします。

  • [Access2000] フォーム間で値の受け渡し

    フォームから、DoCmd.OpenFormを使って、 別のフォームを子画面として開くようにしています。 そのときフォーム間で、Functionの引数と戻り値のような感覚で 値の受け渡しをしたいと思っています。 値をわたす方は、OpenFormの引数のいちばん最後にある OpenArgsを使うことでうまく解決できたのですが、 値を返す方のやり方がイマイチわかりません。   DoCmd.OpenForm "フォーム名",,,,OpenArgs     (カンマの数が間違ってるかも…とりあえずテキトーです) という記述方法の他に、   DoCmd.OpenForm("フォーム名",,,,OpenArgs) という記述もできるようなんですが、そのようにすると 「=」をつけろ、というようなエラーがその場で出ます。 MsgBoxでも同じようなことが起こりますが、 MsgBoxだと「vbOk」やら「vbCancel」やらを返してくれるので OpenFormでも似たようなことができるのかな…と思うのですが。

  • Accessの検索フォーム

    以前にも似たような質問をして、その時は解決したのですが、また同じようなことでつまづいて、以前の回答をみて、 そのとおりにやってるつもりなのに、できなくて…。 テーブル1とフォーム1・フォーム2があります。 フォーム1に入力された情報をもとに、テーブル1の内容を検索して、フォーム2に表示するものを作成しています。 テーブル1には「***.***.**.☆」(情報)という形の情報が入っています。 *の部分の桁数は固定で☆は不定形です。(テキスト形式) フォーム1に入力された情報は「(***.***.)**.*」(検索1)や「(***.***.)**.**」(検索2)などです。 ※()内は入力せず テーブル1の情報の9文字目以降と、フォーム1に入力された情報を比べたくて、以下のようなものを作成しました。 (多少省略等があります) condKensaku = "(Mid(Val(テーブル1.情報),9) between " & Val(Me!検索1.Value) & " and " & Val(Me!検索2.Value) & ")" wherecond = condKensaku DoCmd.OpenForm "フォーム2", acNormal, WhereCond これを実行すると 実行時エラー '2501': OpenForm アクションの実行はキャンセルされました。 と出て、デバッグを押すと、 DoCmd.OpenForm "フォーム2", acNormal, WhereCond の行が黄色になります。

  • OpenFormがACCESS2000でエラー

    メニューのフォームで使っているOpenFormがACCESS2000で次のエラーがでます。OFFICE365では出ません。 「selectステートメントが間違っている予約語や引数を含んでいるか、区切り記号が正しくありません」 例えば次のコードです。 Private Sub 受注入力_Click() DoCmd.OpenForm "受注入力" End Sub 同じようなコードでも次のコードではなぜか出ていません。 Private Sub 受注入力B_Click() DoCmd.OpenForm "受注入力B" End Sub このフォームは何年も変更しておらずエラーは出なかったのですが、1か月前あたりから出るようになりました。 なぜかお分かりの方がおられましたらご教示願えませんでしょうか。

  • Accessの検索で「~以外」

    VBAで検索フォームを作成しています。 普通は「○○にあてはまるもの」という検索ですが、 「○○以外のものを検索」というようにしたい場合はどのようにすればいいのでしょうか? 通常の検索はこんな感じです。 If Me!検索値.Value <> "" Then condKey = "(T_マスタ.フィールド like '*" & Me!検索値.Value & "*')" WhereCond = WhereCond & tempOper & condKey End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果", acNormal, , WhereCond access2000です。

  • Access DoCmd.OpenFormの引数

    現在Access VBAを勉強中の者です。 DoCmd.OpenForm については、同じQ&Aがありますが回答内容の意味が理解できず応用が利きません。 具体的には、 DoCmd.OpenForm "フォーム名", , , "商品番号 = '" & Me!商品番号 & "'" における、Where句の「"」と「'」の使い方です。 私の情報収集では、   (1)文字列は「"」で囲む。   (2)Where句は「"」で囲む。   (3)「"」の囲みが重複したら内側を「'」に変更する。 なのですが、(2)と(3)は上記の例からでは理解に苦しみます。 DoCmd.OpenForm のWhere句の「"」と「'」の使い方についてその仕様を教えて下さい。

  • フォームのOPENとCLOSE(ACCESS VBA)

    ACCESS VBAでフォームA(親)→フォームB(子)→フォームC(孫)とフォームを開いています。 今までは順調に動いていたのですが急にフォームCを閉じると、親フォームのオブジェクトを見つけれないという実行時エラー7874が表示されるようになってしまいました。 デバッグをするとフォームBでフォームCを開いた↓ DoCmd.OpenForm "フォームC", , , , acFormAdd, acDialog の部分にエラー原因があるようです。 なぜこの部分にエラーがでるのかよくわかりません。 しかも何度もやっているうちに(何もプログラムの内容はかわっていません)また動くようになりました。 ひとつわかったのは動く時にはフォームCを閉じた時に フォームBのDoCmd.OpenForm "フォームC", , , , acFormAdd, acDialogの部分の次に帰っているということです。 とりあえず動いてはいますが、原因がわからず困っています。どなたか理由がわかりましたら教えてください。

  • Access2010クエリ結果をデータシートビュー

    いつもお世話になっています。access超初心者です。 いろいろまちがっているかもしれませんが、よろしくお願いします。 クエリの検索結果をデータシートで表示させるフォームをつくりました。 フォームをナビゲーションウィンドから動作させると、データシートで表示されるのですが、メインフォームをつくってそこにボタンを置きクリックすると、単票フォームで表示されてしまいます。 ボタンクリックの際、「DoCmd.OpenForm "フォーム_クエリ"」としているのですが、 この部分になにか引数が必要なのでしょうか? それとも、サブフォームをつくって表示させるしかないのでしょうか?

専門家に質問してみよう