Access2010で入力した住所地をGoogle Mapsで表示させる方法

このQ&Aのポイント
  • Access2010で入力した住所地をGoogle Mapsで表示させる方法について教えてください。
  • また、ネットに接続されていない場合のエラー処理についても教えてください。
  • エラー処理から戻ると、グローバルな変数がクリアされてしまいます。
回答を見る
  • ベストアンサー

Access2010で入力した住所地をGoogle Mapsで表示させ

Access2010で入力した住所地をGoogle Mapsで表示させる方法 下記の回答を参考にさせて頂いています。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1124264086 うまくいくのですが、もしPCがネットに接続されていない時のエラー処理を教えてください On Error GoTo エラー ~ ~上記回答のコード ~ Exit Function エラー: MsgBox "ネット接続を確認して下さい。" & Chr(13) & _ "エラーナンバー:" & Err.Number & Chr(13) & _ "エラー内容:" & Err.Description, vbOKOnly End としたのですが、エラー処理から戻ってくると、グローバルな変数がクリアされてしまいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

最後の End ステートメント で グローバル変数がクリアされます。 VBA では、End ステートメント の出番はほぼありません。 On Error GoTo エラー ~ ~上記回答のコード ~ 出口:  Exit Function エラー:  MsgBox "ネット接続を確認して下さい。" & Chr(13) & _  "エラーナンバー:" & Err.Number & Chr(13) & _  "エラー内容:" & Err.Description, vbOKOnly  Resume 出口 End Function こんな感じのコードで、エラーもクリアされます。

situmonnsya
質問者

お礼

>End ステートメント の出番はほぼありません 了解しました。Resumeを使わないとダメなんですね。 ありがとうございました。

関連するQ&A

  • VBAのキャンセル処理

    下記のVBAでファイルを出力することはできるようになったのですが、 出力するときに[キャンセル]を押しても"MsgBox :Excelファイルへの出力が完了しました。"が表示されてしまいます。 「キャンセル」した場合は、このメッセージが表示されないようにできないでしょうか? Private Sub Image_Export_Click() On Error GoTo Err_FileDialog_Click 'ファイル出力 Dim strFileName As String Dim ExpFileName As String ExpFileName = "T_master_" & Format(Now(), "yyyymmdd") strFileName = GetFileName(False, "MicrosoftExcel ブック (*.xls)|*.xls", "", ExpFileName & ".xls") If Len(strFileName) = 0 Then 'キャンセルボタンが押されたときの処理を記述 MsgBox "キャンセルが押されました。" Else DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "T_master", strFileName & ".xls", True End If MsgBox "Excelファイルへの出力が完了しました。", , "出力完了" Exit_FileDialog_Click: Exit Sub Err_FileDialog_Click: MsgBox "予期せぬエラーが発生しました" & Chr(13) & _ "エラーナンバー:" & Err.Number & Chr(13) & _ "エラー内容:" & Err.Description, vbOKOnly End Resume Exit_FileDialog_Click End Sub

  • EXCELVBAでのFunctionプロシージャの戻り値について

    こんにちは。EXCELVBAの本を見てわからないことがあったので、教えてください。 まず、ソースコードは↓です Function P_OpenDatabase() As Integer On Error GoTo Err_Proc   Cn.ConnectionString=P_CnString()   Cn.Open Err_Proc:   If (Err.Number <> 0) Then     Call MsgBox(Err.Description)     Call MsgBox("データベースに接続できません")   End If   P_OpenDatabase = Err.Number…★ End Function で、わからないところは★の部分です 本の解説は↓です。 「プロシージャの戻り値を設定します。Errオブジェクトの「Number」プロパティにはエラーの番号が設定されているので、そのまま戻り値とします。処理が正常に行われたときには、Errオブジェクトの「Number」プロパティは「0(ゼロ)」になるので、戻り値も「0(ゼロ)」になります。」 僕が疑問に思っているのは処理が正常にされたとき(エラーがなかったとき)は、Err_Procの中の処理はされないので、戻り値には0が入らないのでは?と思ってしまうのですが。。 どうなんですかね?わかる方は教えてください。よろしくお願いします。

  • 二つのエラーを発生させたい

    ひとつのプロシージャー内で、 二つのエラートラップを仕掛ける事は出来ないのでしょうか? Sub エラーが発生した時にエラーが発生したら() Dim i As Long On Error GoTo Err1 i = "a" Exit Sub Err1: MsgBox "Err1のエラー: " & Err.Description On Error GoTo Err2 i = "b" Exit Sub Err2: MsgBox "Err2のエラー: " & Err.Description End Sub を行うと、 i = "b" で2回目のエラーが発生した時は、 実行時エラーになってしまいます。 i = "b" で2回目のエラーが発生した時に、 「Err2のエラー: 型が一致しません。」 と表示させるにはどうすればいいでしょう? Sub エラーが発生した時にエラーが発生したら() Dim i As Long On Error GoTo Err1 On Error GoTo Err2 i = "a" Exit Sub Err1: MsgBox "Err1のエラー: " & Err.Description i = "b" Exit Sub Err2: MsgBox "Err2のエラー: " & Err.Description End Sub にすると、 i = "a" のエラーで、 「Err2のエラー: 型が一致しません。」 へ移動してしまいます。

  • On ErrorでエラーNoが0

    On ErrorでエラーをトラップしてエラーNOとエラー内容をダイアログに表示させています。 Private Sub pv_sample() Dim errno as Long On Error GoTo ERR_END ' 処理内容略 Exit Sub ERR_END: errno = Err.Number MsgBox "システムエラー エラーNO(" & errno & ") 内容(" & Err.Description & ")" End Sub エラーが発生した場合はErr.Numberには0以外がセットされるはずですが 「システムエラー エラーNO(0) 内容()」 というメッセージが表示されることがあります。 On Eroorで飛んできたときにエラーNoが0になってしまうことはありえるのでしょうか。

  • シートモジュールからのErr.Raiseについて

    Excel(Office 2007)で以下のようにシートモジュールで 発生したエラーの詳細を標準モジュール側で取得しようとしたところ SourceとDescriptionで指定した文字列が取得できませんでした。 どうすれば指定した元の文字列を取得することができるでしょうか。 どなたかお知恵をお貸しください。 【シートモジュール(Sheet1)内のソースコード】 Public Sub Hoge()     Err.Raise Number:=1000, Source:="Fugo", Description:="Fuga" End Sub 【標準モジュール内のソースコード】 Public Sub Piyo()     On Error Goto Error1     Sheet1.Hoge     Exit Sub Error1:     MsgBox "Num=" & Err.Number & ", Src=" & Err.Source & ", Dsc=" & Err.Description End Sub 【MsgBoxの表示結果】 Num=1000, Src=VBAProject, Dsc=アプリケーション定義またはオブジェクト定義のエラーです。  

  • Access VBA エラートラップでの終了処理

    お世話様です。 Access2003 VBA にて、各プロシージャに貼ったエラートラップで、 メッセージを出力した後にAccessを終了したいと考えております。 ここで、通常終了時(フォームの×ボタン押下時)の 終了確認メッセージをForm_Unloadイベントで記述しているのですが、 エラートラップでの終了時にも、このメッセージが表示されてしまいます。 エラートラップでの終了時は、終了確認メッセージを表示させたくないので、 標準モジュールにパブリック変数のエラーフラグを用意し、 それで判断しようと考えたのですが、 エラートラップ内でエラーフラグに値を設定しても保持されず、 Form_Unloadイベントで終了確認メッセージがどうしても表示されてしまいます。 何か良い方法はありますでしょうか?よろしくお願いいたします。 例: '***ボタンAクリックイベント******************* Private Sub btn_A_Click() On Error GoTo ERR_LINE   <何らかの処理> Exit Sub ERR_LINE:   MsgBox "予期せぬエラーが発生しました。終了します。" & Chr(13) & _       "エラー番号: " & Err.Number & Chr(13) & _       "エラー内容: " & Err.Description, vbCritical + vbOKOnly, "例外エラー"   bl_ErrFlg = True 'エラーフラグ設定←保持されない   Application.Quit End Sub '***フォームアンロードイベント******************* Private Sub Form_Unload(Cancel As Integer)   If bl_ErrFlg = False Then     Cancel = MsgBox("終了します。よろしいですか?",vbQuestion + vbYesNo, "終了確認") = vbNo   End If End Sub

  • ダイアログボックスを表示したい。

    下記処理コードを実行したときに、 ファイル選択のダイアログ表示をさせるのにファイル名を決まった形にしないと駄目みたいです。 (例)strLookupFileName = "abcms_E000_H*.csv;" ファイル名に関係なくダイアログを表示させるにはどうしたら良いのでしょうか? 今現在、ファイル名を適当なものに変えると「キャンセルされました。」のメッセージボックスが表示されます。 例:strLookupFileName = "abc明細.xls"←エラー(これでも可に) (処理コード) 'ファイル選択 strFileName = FileNameGet(Me.Hwnd, strHomeDirectory, strLookupFileName, "CSV ファイル", "ファイル選択") If strFileName = "" Then MsgBox "キャンセルされました。", vbInformation + vbOKOnly, " " Exit Sub End If ↓ Public Function FileNameGet(Owner As Variant, DefaultDirectory As String, DefaultFilter As String, DefaultFilterName As String, Title As String) As Variant On Error GoTo Err Dim dlg As OPENFILENAME Dim rslt As Long dlg.hwndOwner = Owner dlg.hInstance = 0 'dlg.nFilterIndex = 0 dlg.lpstrTitle = Title & Chr(0) & Chr(0) dlg.lpstrFileTitle = Space(256) & Chr(0) & Chr(0) dlg.lpstrInitialDir = DefaultDirectory & Chr(0) & Chr(0) dlg.lpstrFile = DefaultFilter & Space(256) & Chr(0) & Chr(0) dlg.lpstrFilter = DefaultFilter & Chr(0) & Chr(0) dlg.nMaxFile = Len(dlg.lpstrFile) dlg.nMaxFileTitle = Len(dlg.lpstrFileTitle) dlg.lStructSize = Len(dlg) rslt = GetOpenFileName(dlg) If rslt = 0 Then FileNameGet = "" Exit Function End If 'ファイル名チェック If IsNull(dlg.lpstrFile) Or dlg.lpstrFile = "" Then MsgBox "ファイル名が取得できませんでした。", vbInformation + vbOKOnly, " " FileNameGet = Null Exit Function End If 'FileNameGet = StrConv(MidB(StrConv(dlg.lpstrFile, vbFromUnicode), 1, (dlg.nFileExtension + 3)), vbUnicode) FileNameGet = Left$(dlg.lpstrFile, InStr(dlg.lpstrFile, vbNullChar) - 1 On Error GoTo 0 Exit Function Err: MsgBox Err.Description End Function

  • 入力した値が不正というよりイベントが違いそうなので教えてください!

    入力した値が不正というよりイベントが違いそうなので教えてください! 今までの質問等で社員管理システムの社員マスタサブフォームのコードに 以下を入力することはできました。 Private Sub 開始日_AfterUpdate() On Error GoTo エラー処理 '値を削除した場合は何もしない If IsNull(開始日) Then GoTo 終了処理 '『開始日』の前日の日付を『終了日』に設定 '(割り算扱いされるのを避けるため「#」で括る) Me!終了日.Value = "#" & DateAdd("d", -1, 開始日) & "#" 終了処理: Exit Sub エラー処理: MsgBox Err.Number & ":" & Err.Description, , Me.Name & "開始日" Resume 終了処理 End Sub Private Sub 終了日_AfterUpdate() On Error GoTo エラー処理 '値を削除した場合は何もしない If IsNull(終了日) Then GoTo 終了処理 '『終了日』の翌日の日付を『開始日』に設定 '(割り算扱いされるのを避けるため「#」で括る) Me!開始日.Value = "#" & DateAdd("d", 1, 終了日) & "#" 終了処理: Exit Sub エラー処理: MsgBox Err.Number & ":" & Err.Description, , Me.Name & "終了日" Resume 終了処理 End Sub これで終了日に日付を入力すると 2113:このフィールドに入力した値が不正です。 となるのを直したいです。 開始日と終了日は共に データ型 日付/時刻型 書式 yyyy/mm/dd です。 このイベントを作成する前はエラーにならなかったので 入力した値が不正というよりイベントが違いそうなので教えてください!

  • ACCESS エラーメッセージ表示されない理由

    ACCESSのエラーメッセージ表示について教えてください。 ACCESS2000でマクロを作成しました。 あるデータを読み込み、テーブルへ反映させるマクロです。 マクロを直接実行すると、データが存在しないとき、当然、エラーメッセージが表示されます。 ところが、このマクロをフォームから実行させると、同じ状況でエラーメッセージが表示されません。 どこに問題があってメッセージが表示されないものなのでしょう。(正常系の処理は正しく行われます) フォームのボタンにマクロの実行を定義しただけなのですが。 VBAを開いてみても、下記のとおりクリックされたときエラーならメッセージを表示しなさいと定義されています。 Private Sub コマンド1_Click() On Error GoTo Err_コマンド1_Click   Dim stDocName As String   stDocName = "マクロ名"   DoCmd.RunMacro stDocName Exit_コマンド1_Click:   Exit Sub Err_コマンド1_Click:   MsgBox Err.Description   Resume Exit_コマンド1_Click End Sub

  • レポート印刷時のエラー

    いつもお世話になっております。 下記のコードで、レポート印刷時にプリンタダイアログを表示させて、保存するファイル名を「仕分け作業登録リスト_AWB」にしたいと思いますが、下記のエラーがでてしまいます。 ※AWBはR-Sorting NoteのAWBの値を持ってきたいです。 エラー内容 予期せぬエラーが発生しました。 エラーナンバー:3265 エラー内容:要求された名前、または序数に対応する項目がコレクションで見つかりません。 エラー3265についてネットで調べてみましたが、自分ではわからないので、 対処方法を教えていただければと思います。 ※コードも独学なのできれいでなくてすみません。 Private Sub Cmd_Report_Click() On Error GoTo Err_Cmd_Report_Click Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset '指定したレポートを印刷プレビューで開く Dim strReportName1 As String strReportName1 = "R_Sorting Note" pdfName = "仕分け作業登録リスト_" & rs!AWB DoCmd.OpenReport strReportName1, acViewPreview DoCmd.OutputTo acOutputReport, strReportName1, acFromatPDF, pdfName, True DoCmd.RunCommand acCmdPrint 'ダイアログの表示 'プレビューを閉じる DoCmd.Close acReport, strReportName1 Exit_Cmd_Report_Click: 'プレビューを閉じる DoCmd.Close acReport, strReportName1 Exit Sub Err_Cmd_Report_Click: If Err.Number = 2501 Then 'エラーを無視する Resume Exit_Cmd_Report_Click Else MsgBox "予期せぬエラーが発生しました" & Chr(13) & _ "エラーナンバー:" & Err.Number & Chr(13) & _ "エラー内容:" & Err.Description, vbOKOnly End If Resume Exit_Cmd_Report_Click End Sub