Newsgroup: it.comp.appl.access
Titolo: sapere se la rete wifi è disponibile?

mi spiego meglio, ho un programma che lavora su un file tabelle locale in c:\miodb ma se sono sicuro che il tablet sia in una zona in cui il segnale della rete wifi a cui è connesso è buono allora eseguo qualcosa altrimenti invito l'utente ad avvicinarsi alla wifi, esiste qualche modo per farlo?
 
grazie a tutti.

 grazie a tutti.
 
NON MOLTO CONVINTO di aver capito 
(specie se poi occorre fornire le coordinate dello spostamento ...)
 
comunque dalla postazione client è molto semplice testare 
se si raggiunge (se si "vede") il drive "server" prima di lanciare il programma
(se questo è il difficile posso fare un'aggiunta)
 
e poi se la connessione si perde durante il lavoro 
ci pensa Access ad evidenziare la cosa
 
 


ok in pratica perchè ho un record in tabella locale e vorrei copiarlo su tabella in rete solo se sono sicuro che la rete wifi sia disponibile e poi lo elimino dalla tabella locale o forse è meglio è meglio che lo mantengo anche in locale e aggiungo un campo "inviato" di tipo si/no per non inviarlo 2 volte?


forse la cosa migliore cosi' eventualmente potresti ricontrollare se e' anche sulla tabella di arrivo

 ok in pratica perchè ho un record in tabella locale e vorrei copiarlo su tabella in rete solo se sono sicuro che la rete wifi sia disponibile e poi lo elimino dalla tabella locale o forse è meglio è meglio che lo mantengo anche in locale e aggiungo un campo "inviato" di tipo si/no per non inviarlo 2 volte?
 
SE la tabella ha un ID, anche DI SCOP,
e lo trasferici, puoi anche:
 
1) controllare gli ID presenti sulla tabella Server
e portarli in una tab locale
 
2) eliminare in locale le righe con questi ID
(alleggerimento)
 
3) inviare SEMPRE alla tabella server TUTTI i record locali
 
la tabella server rifiuterà i doppioni
in locale si mantengono comunque quelli NON ricevuti dalla tabella server


esiste un qualcosa tipo il ping del prompt e rilevare se risponde per capire se il pc che fa da server è raggiungibile? in quel caso prima di inviare i dati interrogo il ping.
 
fatemi sapere grazie.


ho trovato questo penso potrebbe funzionare
https://stackoverflow.com/questions/21020077/ping-ip-address-with-vba-code-and-return-results-in-excel
 
 
oppure è sufficiente fare un dcount di una tabella sul server e se non è raggiungibile darà errore suppongo e intercettando l'errore avviso con un messaggio di avvicinarsi alla rete wifi?
 
grazie.


l'esempio di ping da me postato funziona ma è troppo lento


forse meglio che controllo se esiste un certo file in una cartella del server ?


funziona ho fatto cosi:
creato un file di nome "file.txt" sul server poi controllo se esiste, se il pc è spento o non raggiungibile da errore quindi intercetto l'errore avviso l'operatore di avvicinarsi alla wifi e non inoltro l'ordine, attendo consigliu ma dovrebbe funzionare
 
On Error GoTo Err_Comando9_Click
 
 
    If EsisteFile(me![fileserver]) = True Then
        InoltraOrdine
        MsgBox "server raggiungibile, ordine inoltrato correttamente", 
vbInformation, ""
    Else
        MsgBox "server non raggiungibile, avvicinati alla rete wifi per inoltrare l'ordine", vbCritical, ""
    End If
 
Exit_Comando9_Click:
    Exit Sub
 
Err_Comando9_Click:
    MsgBox "server non raggiungibile, avvicinati alla rete wifi per inoltrare l'ordine", vbCritical, ""
    Resume Exit_Comando9_Click


da pc spento si blocca esecuzione quindi non va bene

 
prova questo.
 
 
 
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

In certe reti sono disabilitate le DCOM... e credo potrebbe non far funzionare WMI.
 
Allego alternative API ed anche una wmi...
 
https://stackoverflow.com/questions/41871138/excel-vba-check-if-connected-to-internet-and-if-its-via-wifi-or-ethernet
 
 
http://vbnet.mvps.org/code/network/isnetworkalive.htm
 
 
http://vbnet.mvps.org/code/network/internetgetconnectedstate.htm
 
 
http://vbnet.mvps.org/code/network/isdestinationreachable.htm
 
 
@Alex