カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

PCが起動しているかを調べる

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
7,359 views

レポートのレコードソースを変更したい

原則として、できません。

無理矢理にでもやりたい場合は、一旦デザインモードで表示させ、
レコードソースを変更する必要があります。
例)

Dim MyReport As Report

'デザインビューでレポート事前に開く必要があります。
DoCmd.OpenReport "sample", acViewDesign

'最小化するためにレポートを特定
DoCmd.SelectObject acReport, "sample", False
'最小化
DoCmd.Minimize

Set MyReport = Reports!sample

MyReport.RecordSource = "[ Record Source ]"
8,216 views

VBでの正規表現

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 = "検索パターン"

続きを読む…»

5,775 views

CodeContextObject

共通の関数などで、コード実行元のフォーム名やレポート名を
その都度参照するには、(Application.)CodeContextObjectプロパティを利用できます。

ちなみに、クロス集計クエリではこの値取得方法は利用できないようです。

4,107 views

ACCESSでMDBにファイル参照を組み込もうとして失敗

MSACCESSでMDBにファイル参照を組み込もうとした。
調べたら「Microsoft Office Access 2007 Runtime」をインストールするとできるということだったので、インストールした。
すると、MDBを最適化するため、新規作成しインポートすると「ファイルへのアクセスでエラーが発生しました。ネットワークへの接続が切断されている可能性があります。」というエラーメッセージが出て起動できなくなった。

「ツール」-「解析」-「データベース構造の解析」で調べたら、「未定義関数 ’IsNull’があります」とアラートが出た。

【原因】
調べた結果、VBE6.DLLが新しいバージョンになったことが原因のようだ。
【解決方法】
以下のフォルダー内にあるVBE6.DLLを削除してから、ACCESSを実行
するとOfficeを修復する。その際にVBE6.DLLが再作成され、本来入っていたバージョンに戻る
C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6

ちなみにこの時は、バージョン「6.0.87.14」から「6.5.10.40」にアップデートされた。

5,398 views