2016-07-01 3 views
0

これはちょっとした問題ではないようですが、これまでのところ答えが見つかっています...ms-accessハイパーリンクの#リテラルの構文?

私は、共有のファイルへのハイパーリンクを格納するアクセスデータベースを持っていますネットワークドライブ。リンクターゲットは、適切なURL( "http://domain.ext/link")ではなく、単純なファイルパス(例: "G:\ directoryname \ filename.ext")として指定されています。

これは一般的に問題なく動作しますが、最近「#」文字が含まれるファイル名に関する問題が発生しました。 (#文字を削除するファイル名を変更するオプションはありません)

"G:\ directoryname \ ExampleFile#24.pdf"のようなリンクを設定しようとすると、Accessは#ハイパーリンクを定義するときに一般的に行うように、ファイル名に使用します。結果として得られるターゲットはちょうど "G:\ directoryname \ ExampleFile"であり、問​​題の "#"の後に続くリンクの部分は単に切り捨てられます。

リンクターゲットが通常のURLだったのは明らかです。

ここで私がそれを行うと、ネットワークファイルの操作が失敗するという問題があります。なぜなら、通常のファイルを開くときと違ってブラウザからURLを取得すると、ネットワークは%23を#と認識しません(「G:\ディレクトリ名\ ExampleFile%23 24.pdfを開くことができません」というエラーが表示されます)。

ms-accessを使用するより直接的な方法はありますかリテラル#文字を含むリンクターゲットを記録しますか?

+0

「をOfficeプログラム内のハイパーリンクのファイル名でポンド文字を使用することはできません」あなたのテーブルにハイパーリンクを設定しようとしましたか?フィールドに直接入力するだけですか? –

+0

ハイパーリンクは、最初はVBAコードで保存されます。 VBAはすべての文字を適切に処理するように見えるので、テーブルに格納されたリンクは目的の宛先(「G:\ディレクトリ名\ ExampleFile#24.pdf」)を示すようになります。厄介な方法で#が解析されるようなフォームやテーブルのリンクをクリックするだけで、ファイルに移動する必要があります。 VBAで定義されたときに手動でハイパーリンクを編集すると、同じ動作が発生します。 –

+0

ファイルハイパーリンクの '#'は特別な意味を持ち、#の後に続くすべてがサブアドレスであると解釈されます。例えば。 'file:// C:\ path \ Document.docx#myBookmark'はDocument.docxを開き、ブックマーク「myBookmark」にジャンプしようとします。しかし、私はあなたの問題を助けることはできません。 – Andre

答えて

1

まあ、これは確かにあなたを助けていませんが、ここであなたの答えは次のとおりです。

どう

https://support.microsoft.com/en-us/kb/202261

+0

実際は答えのようです。 :)もう一度あなたの助けをありがとう! –

関連する問題