Sorgu İçerisindeki Verileri Tek Tek Kontrol Etme

22/03/2018, 13:20

cazcaz678

Merhaba herkese kolay gelsin

Bir tablom var.İçerisinde bazı bilgisayarların IP numarası var bazılarının da yok.Bir sorgu hazırladım IP numarası olan bilgisayarlar sorgulanıyor.
Sorum şu; Sorgu sonucunda diyelim ki 20 tane IP numarası olan bilgisayar filtrelendi. Ben istiyorum ki bu 20 Ip numarasına sırayla ping attırıp eğer ping atmıyorsa arıza kaydı açtırayım. Sorgudaki Ip leri tek tek nasıl alıp IP numarası sorgulama modulune çekebilirim?

Cevaplarınız şimdiden teşekkür ederim.
22/03/2018, 15:08

alpeki99

'Test stub
Sub TestPing()
Dim strComputer As String
strComputer = "<target computer>"
If Not SystemOnline(strComputer) Then
MsgBox "This computer is currently unreachable: " & strComputer, vbOKOnly, "Computer Status"
'....your logic
Else
'...your logic
MsgBox "This computer is Online!", vbOKOnly, "Computer Status"
End If
End Sub 'TestPing



'Determine if device is online
Function SystemOnline(ByVal ComputerName As String)
Dim oShell, oExec As Variant
Dim strText, strCmd As String
strText = ""
strCmd = "ping -n 3 -w 1000 " & ComputerName
Set oShell = CreateObject("WScript.Shell")
Set oExec = oShell.Exec(strCmd)
Do While Not oExec.StdOut.AtEndOfStream
strText = oExec.StdOut.ReadLine()
If InStr(strText, "Reply") > 0 Then
SystemOnline = True
Exit Do
End If
Loop
End Function
Function SystemOnline(ByVal ComputerName As String)
' This function returns True if the specified host could be pinged.
' HostName can be a computer name or IP address.
' The Win32_PingStatus class used in this function requires Windows XP or later.
' Standard housekeeping
Dim colPingResults As Variant
Dim oPingResult As Variant
Dim strQuery As String
' Define the WMI query
strQuery = "SELECT * FROM Win32_PingStatus WHERE Address = '" & ComputerName & "'"
' Run the WMI query
Set colPingResults = GetObject("winmgmts://./root/cimv2").ExecQuery(strQuery)
' Translate the query results to either True or False
For Each oPingResult In colPingResults
If Not IsObject(oPingResult) Then
SystemOnline = False
ElseIf oPingResult.StatusCode = 0 Then
SystemOnline = True
Else
SystemOnline = False
End If
Next
End Function
Yurtdışı forumlarda bu kodlar ile yapmışlar.
22/03/2018, 16:25

A.Kadir.

merhaba 
ufak bir ip ping test hazırladım kodlar dış kaynaklı düzenleme yapıldı.
kendi isteginize göre uyarlarsınız.
tablodaki ıp numaralarını sıra ile test etmektedir.
ve sonuçları renkli olarak vermektedir.    bağlı= yeşil   bağlı değil=kırmız


inceleyiniz.
22/03/2018, 22:09

cazcaz678

Sayın Alpeki99 ping  kodları var zaten elimde söylemek istediğim bu değildi
22/03/2018, 22:09

cazcaz678

Sayın A.Kadir gönderdiğiniz örnek tam da aradığım gibi çok teşekkür ederim