人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Accessのフォームで住所の表示された部分をgoogle mapに値(住所)を引き渡して地図表示しているのですが、どうもブラウザの調子が悪いようで、たまにエラーを起こします。

Private Sub 住所_DblClick(Cancel As Integer)
Const nu As String = vbNull
Dim ret As Long
Dim url As String
url = "http://local.google.co.jp/maps?hl=ja&f=l&safe=off&pws=0&q=" & Me!住所
ret = ShellExecute(0, "open", url, nu, nu, 0)

ここの
http://local.google.co.jp/maps?hl=ja&f=l&safe=off&pws=0&q=
の部分をgoogle以外のサービスで表示したいと思っています。

Private Sub 住所_DblClick(Cancel As Integer)
Const nu As String = vbNull
Dim ret As Long
Dim url As String
url = "http://map.doko.jp/m/at=" & Me!住所
ret = ShellExecute(0, "open", url, nu, nu, 0)
End Sub

現在 http://map.doko.jp/m/at=
のサイトは見つけたのですが
そのほかに、日本語の文字列で値を渡せるサイトは
ありますでしょうか?

マピオンも試してみたのですが
うまくいきませんでした。

よろしくお願いいたします。


●質問者: dreamworks
●カテゴリ:コンピュータ
✍キーワード:access as const Google MAP
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● goog20090901
●30ポイント

はずしてたらごめんなさい。

住所なのですが、エンコードはされてるでしょうか?

IEの場合、エンコードしなくても動作するのですが、エンコードしてないと

正しく値がわたらないことがあります。

標準のブラウザをIEからFireFoxとかに代えて検証されてはどうでしょうか?

◎質問者からの返答

回答ありがとうございます。

エンコードはしていませんでした。

UrlEncodeというモジュールがあるみたいですね。

ブラウザについてですが、会社のPCで

あるため、勝手にソフトインストールできません。

今はIE6で試しています。

あと

http://www.geocoding.jp/

見つけました。


2 ● ardarim
●40ポイント

エンコーディングを適切に指定してやれば問題ないはずです。

以下、シフトJISで送信するサンプルです。

Sub test()

 Dim url As String
 
 url = BuildQueryString("東京都渋谷区渋谷")
 ret = ShellExecute(0, "open", url, nu, nu, 0)

End Sub

Function BuildQueryString(ByVal queryWord As String) As String

 Dim i As Long
 Dim c As String
 Dim queryUrl As String
 
 queryUrl = "http://local.google.com/maps?hl=ja&f=l&safe=off&pws=0&output=html&ie=Shift_JIS&"
 queryUrl = queryUrl & "q="
 For i = 1 To Len(queryWord)
 c = Mid$(queryWord, i, 1)
 If Asc(c) >= 32 And Asc(c) < 128 Then
 queryUrl = queryUrl & c
 Else
 c = StrConv(c, vbFromUnicode)
 queryUrl = queryUrl & "%" & Right$("0" & Hex$(AscB(LeftB$(c, 1))), 2) & "%" & Right$("0" & Hex$(AscB(RightB$(c, 1))), 2)
 End If
 Next i

 BuildQueryString = queryUrl

End Function
◎質問者からの返答

回答ありがとうございます。

早速試してみたいと思います。

すみません、今ダミーデータで試してみたのですが

シフトJISでうまくいきましたが

レコードごとに変わる住所を適用するには

Sub test()

Dim url As String

url = BuildQueryString("東京都渋谷区渋谷")

ret = ShellExecute(0, "open", url, nu, nu, 0)

End Sub

の部分の東京都渋谷区渋谷をどうすれば良いのでしょうか?

よろしくお願いします。


3 ● ardarim
●56ポイント ベストアンサー

失礼しました。

例題に合わせると、url= の部分を

Private Sub 住所_DblClick(Cancel As Integer)
 Const nu As String = vbNull
 Dim ret As Long
 Dim url As String
 url = BuildQueryString(Me!住所)
 ret = ShellExecute(0, "open", url, nu, nu, 0)
End Sub

としてください。

後は同じです。


※コメント欄を開放しておくとフォローができますので便利ですよ。

◎質問者からの返答

回答ありがとうございました!

無事できました!

早速明日、会社のDBに組み込みたいと思います。

この度は本当にありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ