重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

フォーム間でtxtbox値の渡しで教えてください!
いつもお世話になっております。今回もいきずまり皆様のお力をお貸ください。

フォーム1からフォーム2を開く時にOpenArgsでtxtboxの値を複数渡し、フォーム2の開くときに分解しようと考えています。
下記コードでやってみたのですが、txtboxの値では無く"txtコード"と"txt性別"2つの文字列を渡しているようです。
txtboxの中の値を渡すにはどのようにしたらよいのか教えてください。

フォーム1のcmdクリック時
DoCmd.OpenForm "フォーム2", , , , acFormReadOnly, , "txtコード/txt性別"

フォーム2の開く時
Dim n As Integer
Dim strコード As String
Dim str性別 As String

n = InStr(Me.OpenArgs, "/")

strコード = Left(Me.OpenArgs, n - 1)
str性別 = Mid(Me.OpenArgs, n + 1)

Me!txtコード = strコード
Me!txt性別 = str性別

・・・で結果は
txtコードに"txtコード"
txt性別に"txt性別"となってしまいます。アドバイス宜しくお願いいたします。

A 回答 (2件)

何の言語か分かりませんが、



フォーム1のcmdクリック時
DoCmd.OpenForm "フォーム2", , , , acFormReadOnly, , txtコード & "/" & txt性別

では?
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
説明不足で申し訳ありませんでした!
xp
access2003
で作成しております、nag0720さんの記述で出来ました。
大変助かりました、ありがとうございます。

過去ログで"値1/値2"の記述で複数の値を渡していたので鵜呑みにしていました!
また宜しくお願いいたします。

お礼日時:2010/08/31 16:59

VBAはほとんど知りませんが



>DoCmd.OpenForm "フォーム2", , , , acFormReadOnly, , "txtコード/txt性別"
と書けば OpenArgs は "txtコード/txt性別" と云う文字列になりますから、結果は当然と思われます

DoCmd.OpenForm "フォーム2", , , , acFormReadOnly, , me.txtコード + "/" + me.txt性別

などは当てずっぽうですが、工夫してみては?
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
nag0720さんに教えて頂いた記述でできました!
自分でも "で囲めば文字列だわな・・・っとは思っていましたが、過去ログで調べた所その記述だったもので・・・
また機会がありましたら宜しくお願いいたします。

お礼日時:2010/08/31 17:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!