2016-11-02 1 views
0

ログフォームや履歴ビューなど、メインフォームに入力されている現在のマテリアル情報をリストするサブフォームを持つフォームがあります。更新可能なサブフォームは、編集時にハイパーリンクフィールドの末尾に「#http://#」を追加します。

サブフォームには、製品が割り当てられたスキッドを指定するフィールドがあります。このフィールドをハイパーリンクにして、OnClickイベントを使用してレポートを起動し、適切な要約を生成するために必要な行情報を抽出できるようにしました。

これはうまくいきました。サブフォーム内からスキッド番号を編集しようとするまで、それは完了したと思いました。

サブフォームでの編集を許可することは、プロジェクトの要件です。ハイパーリンクされたフィールドでスキッド番号を編集すると、自分のコードが壊れます。アクセスは自動的に#http://#をセルに入力した値の末尾に追加し、この文字列でテーブルを更新します。その行は、スキッド番号からキーを離しているため、レポートから省略されます。設計上、このハイパーリンクにはパスやアドレスはありません。単に、どの行がクリックされているかを判断するために使用します。

「ハイパーリンクですか?」プロパティを「はい」にしている間に、Accessが#http://#を追加しないようにするにはどうすればよいですか。この振る舞いを設定する別のプロパティがあるか、AfterUpdateイベントを使用して追加を元に戻す必要がありますか?これはリソースの浪費のようです。

私がアクセス2010

答えて

1

長く、非常に徹底した記事hereが、私はコピーしないことがありますを実行しています;)それは精巧にその悪い考えでも、ハイパーリンクフィールドを使用する理由を述べていると何をすべきかにハイパーリンクフィールドなしで必要なものと同じ結果を得ることができます。 基本的に、ハイパーリンクフィールドの主なポイントは、あなたが何もすることができない卑劣なことです。それはあなたがプログラマとして望むものではありません。 ハイパーリンクフィールドは内部的に3つの部分から構成されています:テキスト部分、リンク部分およびツールチップ部分。個別にアクセスすることはできますが、アクセスは常にリンクを作成しようとします。

あなたが内部的に使用される形式(DisplayText#Address#SubAddress)で持っているデータをフォーマットしようとすることができますが、私はそれはあなたが必要なものはないと思う...

は、だから私は、あなたが最良のフィリップスのアドバイスを取り、あなたのフィールドタイプを変更すると思います。

+1

私のデータ型はテキストで、サブフォーム "ハイパーリンクは"プロパティが "はい"に設定されています。私はそれを「いいえ」に変更し、「ハイパーリンクとして表示」を「画面のみ」に設定しました。フィールドの編集時にURLを追加することがなくなりました。なぜ私はOnClickイベントが常に利用可能であることに気付かなかったのかは完全な謎です。私をまっすぐにしてくれてありがとう – MoondogsMaDawg

関連する問題