Private Sub Example() If PingResult("192.168.1.1") = False Then MsgBox "PCが起動していません。" Else MsgBox "PCは起動しています。" End If End Sub Function PingResult(strHostname As String) Dim objWMIService As Object, objStatus As Variant Set objWMIService = _ GetObject("winmgmts:{impersonationLevel=impersonate}"). _ ExecQuery("select * from Win32_PingStatus where address = '" & _ strHostname & "'", , 48) For Each objStatus In objWMIService If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then PingResult = False Else PingResult = True End If Next End Function
原則として、できません。
無理矢理にでもやりたい場合は、一旦デザインモードで表示させ、
レコードソースを変更する必要があります。
例)
Dim MyReport As Report 'デザインビューでレポート事前に開く必要があります。 DoCmd.OpenReport "sample", acViewDesign '最小化するためにレポートを特定 DoCmd.SelectObject acReport, "sample", False '最小化 DoCmd.Minimize Set MyReport = Reports!sample MyReport.RecordSource = "[ Record Source ]"
VBで正規表現を使った文字列検索を実装します。
Dim regEx As Object Dim Matches As Variant '正規表現オブジェクト Set regEx = CreateObject("VBScript.RegExp")
'検索文字列全体について検索する 'regEx.Global = True '最初の一致を検索する(既定値) 'regEx.Global = False '検索するときに大文字と小文字を区別しない 'regEx.IgnoreCase = True '検索するときに大文字と小文字を区別する(既定値) 'regEx.IgnoreCase = False '検索するパターン regEx.Pattern = "検索パターン"
共通の関数などで、コード実行元のフォーム名やレポート名を
その都度参照するには、(Application.)CodeContextObjectプロパティを利用できます。
ちなみに、クロス集計クエリではこの値取得方法は利用できないようです。