プロが教えるわが家の防犯対策術!

商品マスターフォーム内(s-master_f)でコントロール名「seet」というテキストBOXにハイパーリンクを張り付けています。
生産フォーム(se-ma_f)にテキストBOX「seet」テキストBOXを配置しています。
そのフォーム内にボタン「コマンド667」を配置し、そのボタンを押すと、リンクされたファイルが開くのは

If Me!seet <> "" Then
Me!コマンド677.HyperlinkAddress = Mid(Me!seet, 2, Len(Me!seet) - 1)

で開くようになりました。
しかしまだハイパーリンクが張られていなくても(「seet」内が空白)、前回表示したファイルが開いています。
そこで、空白の場合メッセージを出すのは

If IsNull(Me!seet) Then
MsgBox "チェックシートがありません"
Exit Sub

これで大丈夫なのですが、
空白の場合はメッセージを出して次の命令を行わない。
ファイルアドレスが入っている(何かしら入力されている)場合はファイル呼び出しを実行するようにできないでしょうか?

単純なIF文は本読みながら理解できるのですが、

If Me!seet <> "" Then
Me!コマンド677.HyperlinkAddress = Mid(Me!seet, 2, Len(Me!seet) - 1)

自体はNETで同じような事例があったのでほぼコピーです。

if文をつなげてみたら、空白の場合メッセージが表示されるまではいいのですが、その後前回表示したファイルが呼び出されてしまいます・・・

よろしければご教授いただければ幸いです。
よろしくお願いいたします。

A 回答 (2件)

消さなければ ボタンの HyperlinkAddress は残ったままですから


何度でも飛んでしまいます。

こんな感じでしょうか。

If Me!seet <> "" Then
Me!コマンド677.HyperlinkAddress = Mid(Me!seet, 2, Len(Me!seet) - 1)
Else
Me!コマンド677.HyperlinkAddress = ""
MsgBox "チェックシートがありません"
End If


> seet」というテキストBOXにハイパーリンクを張り付けています。

これがどのようにしているか分れば、

コマンドボタンのハイパーリンクを使わなくても

Me!seet.Hyperlink.Follow
とか
Application.FollowHyperlink Mid(Me!seet, 2, Len(Me!seet) - 1)
などが使えそうです。

これらの方法なら、わざわざ消さなくても大丈夫です。
    • good
    • 0

If Me!seet <> "" Then


Me!コマンド677.HyperlinkAddress = Mid(Me!seet, 2, Len(Me!seet) - 1)
Else
MsgBox "チェックシートがありません"
Exit Sub
End If
    • good
    • 0

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