Ping Button im Access Formular

Hallo ihr,

ich hab mal wieder eine Frage.

Ich habe ein Formular auf dem ein Drop Down Menue und ein Listenfeld ist.
Aus dem Drop Down Menue wähle ich eine Obergruppe.
Ist diese gewählt erscheinen im Listenfeld 3 Spalten
Spalte 1: Gerätename
Spalte 2: Netzwerkname
Spalte 3: IPAdresse

Nun möchte ich gerne, wenn ich einen Eintrag in der Liste wähle im Formular einen Button einbauen, wenn dieser gedrückt wird, soll die genannten IP Adresse dauerhaft angepingt werden.

Ich habe absolut keinen Schimmer wie ich das bewerkstelligen kann.

Die Liste wird gefüllt aus folgenden Daten:
Es gibt eine Abfrage die sich abf_ipbetriebe nennt gefüllt mit
Marktnummer (Zuordnung)
Typ (Bezeichnung
Gerätenummer
Gerätename
IPAdresse
VNC

Das Listenfeld nennt sich:
geraete
Das Dropdownmenue nennt sich:
liste

Gibt es hier jemanden der mir helfen kann?

Verzweifelte Grüße
Innie

Hallo Du,

ich hab mal wieder eine Frage.

ja, lese ich :wink:

Ich habe ein Formular auf dem ein Drop Down Menue und ein
Listenfeld ist.
Aus dem Drop Down Menue wähle ich eine Obergruppe.
Ist diese gewählt erscheinen im Listenfeld 3 Spalten
Spalte 1: Gerätename
Spalte 2: Netzwerkname
Spalte 3: IPAdresse

Nun möchte ich gerne, wenn ich einen Eintrag in der Liste
wähle im Formular einen Button einbauen, wenn dieser gedrückt
wird, soll die genannten IP Adresse dauerhaft

dauerhaft? warum? Das ist eher „unsittlich“

angepingt werden.

Einzahl oder Mehrzahl? d. Nur die (eine) markierte IP-Adresse oder alle markierten Adressen?

Ich habe absolut keinen Schimmer wie ich das bewerkstelligen
kann.

Bekommst Du gleich… :wink:

Die Liste wird gefüllt aus folgenden Daten:
Es gibt eine Abfrage die sich abf_ipbetriebe nennt gefüllt mit
Marktnummer (Zuordnung)
Typ (Bezeichnung
Gerätenummer
Gerätename
IPAdresse
VNC

Das Listenfeld nennt sich:
geraete
Das Dropdownmenue nennt sich:
liste

Gibt es hier jemanden der mir helfen kann?

Aber ja…

  1. den Button brauchst Du nicht, falls nur eine IP-Adresse angepingt werden soll. (Dazu am Besten das Listenfeld bei „Mehrfachauswahl“ auf „keine“ setzen.

Erstelle eine Ereignisprozedur für das Ereignis „Bei Doppelklick“ des Listenfeldels mit etwa diesem Code:

Private Sub geraete_DblClick(Cancel As Integer)
Shell („cmd /c ping /t“ & Me!geraete.Column(2))
End Sub
/

Den fettgeschriebenen Schalter /t (steht für permanenten Ping) läßt Du am Besten ganz weg

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Franz, DF6GL

Dankeschön für diese schnelle Antwort!

Ein dauerhafter Ping, weil manche Geräte neu gestartet werden müssen und somit überprüft werden kann, ob das Gerät wieder eine Antwort gibt oder weiterhin noch kein Connect hat.
Der User, der den Ping nutzt, bricht dies dann von alleine ab, natürlich wäre es super, wenn ich einen Button hätte, den ich drücken kann und mir angezeigt wird, sobald das Gerät wieder „online“ ist.

Den Button benötige ich, weil ich auf Doppelklick schon etwas im Listenfeld ausführe und zwar wird eine VNC Verbindung, die Netzwerkseitig vorkonfiguiert wurde, aufgerufen, damit eine VNC Verbindung des Gerätes hergestellt werden kann, ohne erst eine IP Adresse und ein Kennwort eingeben zu müssen.

That’s my Problem…
Angepingt werden muss immer nur 1 IP Adresse, mehrfach Auswahl wird nicht benötigt.

Hast Du dafür auch eine Lösung für mich? :smile:
Vielleicht ist es auch sinnvoller den Ping Button weg zu lassen und auf Doppelklick zu pingen und ein Button für die VNC Verbindung einzurichten, da muss dann allerdings immer die angeklickte Zeile ausgelesen werden und mit der ipBetriebe abgeglichen, wird ein Eintrag gefunden, soll er die Zeile VNC als Hyperlink aufrufen.

Nur wie das Programmtechnisch umgesetzt wird, da wird der Schimmer wieder kleiner, den Du mir eben hergezaubert hast :wink:)

LG
Innie - Christin

Hallo,

Dankeschön für diese schnelle Antwort!

keine Ursache…

Ein dauerhafter Ping, weil manche Geräte neu gestartet werden
müssen und somit überprüft werden kann, ob das Gerät wieder
eine Antwort gibt oder weiterhin noch kein Connect hat.
Der User, der den Ping nutzt, bricht dies dann von alleine ab,
natürlich wäre es super, wenn ich einen Button hätte, den ich
drücken kann und mir angezeigt wird, sobald das Gerät wieder
„online“ ist.

Das geht so ohne Weiteres nicht, weil Ping in einer „DOS“-Box ausgeführt wird und die keine Rückmeldung abgibt. Ein Workaround wäre, das Ping-Ergebnis laufend in eine Datei zu schreiben (mit „>“-Umleitung) und diese Datei auch laufend dahingehend zu untersuchen, ob ein Ping jetzt erfolgreich gemeldet wird.

Vermutlich gibt es aber irgendeine API-Funktion, die einen Ping produziert und deren Ergebnis man direkt verarbeiten könnte.

(kurz gegoogled:
http://www.tek-tips.com/viewthread.cfm?qid=28834&pag…)

Den Button benötige ich, weil ich auf Doppelklick schon etwas
im Listenfeld ausführe und zwar wird eine VNC Verbindung, die
Netzwerkseitig vorkonfiguiert wurde, aufgerufen, damit eine
VNC Verbindung des Gerätes hergestellt werden kann, ohne erst
eine IP Adresse und ein Kennwort eingeben zu müssen.

That’s my Problem…
Angepingt werden muss immer nur 1 IP Adresse, mehrfach Auswahl
wird nicht benötigt.

Hast Du dafür auch eine Lösung für mich? :smile:

Für den Button („btnPing“)? Nichts einfacher als das:

Sub btnPing_Click()
Shell ("cmd /c ping /t " & Me!geraete.Column(2))
End If

Vielleicht ist es auch sinnvoller den Ping Button weg zu
lassen und auf Doppelklick zu pingen und ein Button für die
VNC Verbindung einzurichten, da muss dann allerdings immer die
angeklickte Zeile ausgelesen werden und mit der ipBetriebe
abgeglichen, wird ein Eintrag gefunden, soll er die Zeile VNC
als Hyperlink aufrufen.

Nur wie das Programmtechnisch umgesetzt wird, da wird der
Schimmer wieder kleiner, den Du mir eben hergezaubert hast
:wink:)

Was willst Du groß umsetzen (außer mal den Link :wink:) … Mach einen Button und für den die o. g. Ereignisprozedur…

Viele Grüße vom Bodensee
Franz, DF6GL

Guten Morgen :smile:

Also grundsätzlich scheint es zu funktionieren, der Rechner arbeitet auf jeden Fall, nur ist es möglich die cmd einzublenden, damit ich sehe, wie gepingt wird?

Tut mir so leid, aber wie Du siehst, ich bin ein total Doofie was das alles angeht…

Echt super was Du in diesem Forum hier leistest!

Hallo und guten Moregn,

Die „DOS-Box“ ist vermutlich im Hintergrund geöffnet. Schau mal in der Taskleiste nach.

Um dem Fenster gleich den Fokus zu geben, schreib:

Shell "cmd /c ping /t " & Me!geraete.Column(2), vbNormalFocus

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Franz,

also ich habe geschaut, vorher die Formel öffnete kein Dos Box, auch in der Taskleiste war nichts zu sehen, nun habe ich diese hier benutzt:

Shell "cmd /c ping /t " & Me!geraete.Column(2), vbNormalFocus

Es öffnet sich ganz kurz ein Fenster, nun habe ich einfach frecherweise mal das /c raus genommen und das Fenster bleibt geöffnet, aber gepingt wird nichts. das /t kann ich auch rausnehmen, das Fenster bleibt weiterhin offen.

Aber der Ping wird nicht abgesetzt. Habe auch schon die Column geändert, ist bei mir nämlich die 4 mittlerweile, aber auch das funktioniert nicht.

Noch ein Tipp? :smile:

Hallo,

also ich habe geschaut, vorher die Formel öffnete kein Dos
Box, auch in der Taskleiste war nichts zu sehen, nun habe ich
diese hier benutzt:

Shell "cmd /c ping /t " & Me!geraete.Column(2), vbNormalFocus

Es öffnet sich ganz kurz ein Fenster, nun habe ich einfach
frecherweise mal das /c raus genommen und das Fenster bleibt
geöffnet, aber gepingt wird nichts. das /t kann ich auch
rausnehmen, das Fenster bleibt weiterhin offen.

Aber der Ping wird nicht abgesetzt. Habe auch schon die Column
geändert, ist bei mir nämlich die 4 mittlerweile, aber auch
das funktioniert nicht.

Noch ein Tipp? :smile:

/C darfst Du nicht entfernen, sonst wir der Ping-Befehl nicht ausgeführt.

Wenn die DOS-Box kurz erscheint und /t mit von der Partie ist, wird laufend gepingt und das DOS-Fenster sollte „irgendwo“ offen sein.

Oder die IP-Adresse steht nicht in der 3. Spalte des Listenfeldes.

Viele Grüße vom Bodensee
Franz, DF6GL

Setz mal einen HAltepunkt vor die Shell-Zeile und schau Dir den Inhalt von Me!geraete.Column(2) an

1 Like