MS Access Tips/Sample and VBA and Blog customize etc...

住所を元に Googleマップ で地図やルートを表示する

顧客管理DBなどで、住所入力テキストボックスの横にコマンドボタンを配置して、クリックするとその住所地の Googleマップ をブラウザで表示する、あるいは、自社からのルートを表示する、なんてできたら便利ですね。簡単に実現できますので、紹介します。

Googleマップ表示ボタン

難易度:

MAP表示関数、ルート表示関数

標準モジュールに下記の関数を作成します。

標準モジュール

自社住所 は「自社情報」テーブルの「住所」フィールドに格納されているとします。

車でのルートを表示します。それ以外の場合は下記を参考にしてください。
dirflg=d 車
dirflg=t 電車
dirflg=w 徒歩

使用例

住所テキストボックス名 txt住所

住所表示コマンドボタンのクリック時に下記のように設定。

=ShowMap([txt住所])

ルート表示コマンドボタンのクリック時に下記のように設定。

=ShowRoute([txt住所])

URLエンコード

Chrome や IE10 でテストした限りでは上記のコードでOKでしたが、古いIEだと表示されないかもしれません。その場合は、住所をURLエンコードするといいでしょう。

拍手する

6 Comments

教えてください→出来ました! says..."エンコードの仕方"

こんにちは。いつも参考にさせて頂いています。
このEncodeURLというのはアクセスの関数でしょうか?私の環境で実行すると、うまく行きません。この関数らしきもののところで止まります。
よろしくお願いします。
これについては、hatenaさんの別の投稿で見つけました。ありがとうございます。うまくいきました!

2014.12.02 15:04 | URL | #mQop/nM. [edit]
eika says..."地図表示ができなくなりました。"

 お世話様です。いつも参考にさせていただいております。
会社のパソコンがWindowsXPからWindows7に変更になりました。Access2010を利用して上記のエンコードを入力して利用していましたが、Windows7(64ビット)に変更したとたん??
実行時エラー429
アクティブコンポーネントはオブジェクトを作成できません
デバック
と表示されるようになりました。
ご教授いただければ幸いです。

2016.07.04 10:30 | URL | #sQdihsf6 [edit]
hatena says..."re:地図表示ができなくなりました。"

> 会社のパソコンがWindowsXPからWindows7に変更になりました。Access2010を利用して上記のエンコードを入力して利用していましたが、Windows7(64ビット)に変更したとたん??
> 実行時エラー429
> アクティブコンポーネントはオブジェクトを作成できません
> デバック

そのときデバッグボタンをクリックした時に
反転表示されるコードの前後をコピーして貼り付けてもらえますか。

エラーメッセージからこの関数とは別の部分でエラーが起きているような感じです。

2016.07.04 16:34 | URL | #5uE6dEgY [edit]
eika says..."re:地図表示ができなくなりました。"

そのときデバッグボタンをクリックした時に
反転表示されるコードの前後をコピーして貼り付けてもらえますか。

エラーメッセージからこの関数とは別の部分でエラーが起きているような感じです。 Private Function EncodeURL(ByVal sWord As String) As String
With CreateObject("ScriptControl")⇒黄色く反転表示
.Language = "JScript"
EncodeURL = .CodeObject.encodeURIComponent(sWord)
End With
End Function

'MAP表示関数
Public Function ShowMap(Address)
If Address <> "" Then
FollowHyperlink "http://maps.google.co.jp/maps?f=q&hl=ja&q=" & EncodeURL(Address)
End If
End Function

'ルート表示関数
Public Function ShowRoute(Address)
Dim MyAddress As String
If Address <> "" Then
MyAddress = EncodeURL(DLookup("住所", "自社情報"))
FollowHyperlink "http://maps.google.co.jp/maps?hl=ja&dirflg=d&saddr=" _
& MyAddress & "&daddr=" & EncodeURL(Address)
End If
End Function

よろしくお願いします。



2016.07.05 09:09 | URL | #sQdihsf6 [edit]
hatena says...""

Windows7にインストールされている Office は 64bit版ですか。
だとしたら
CreateObject("ScriptControl")
は使えませんね。

別の手段を探すことになります。
下記のリンク先に詳細な解説がありますのでご参考に。

Office 2007/2010・リボンのカスタマイズ 初心者備忘録
http://www.ka-net.org/office/of32.html

2016.07.05 15:37 | URL | #5uE6dEgY [edit]
eika says..."地図が表示できなくなりました。"

おかげさまで出来ました。
ご教授、ありがとうございました。

2016.07.06 16:39 | URL | #sQdihsf6 [edit]

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/384-3120b47e
該当の記事は見つかりませんでした。