Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Wie binde ich ein Recordset ein?

Frage Entwicklung VB for Applications

Mitglied: Cyberkey

Cyberkey (Level 1) - Jetzt verbinden

31.03.2010, aktualisiert 13:24 Uhr, 3903 Aufrufe, 7 Kommentare

Ich habe leider nur begrenztes VBA/VBS wissen..

Hallo,

auf der Seite: http://www.office-loesung.de/ftopic59453_0_0_asc.php

habe ich ein paar Dinge dazu gelesen. Aber verstehe nicht wie ich das in meine Projekt mit einbinden soll.

Ich habe einen Button in jeder Zeile eines Endlosformulars, dieser ist mit einem Code verbunden.

Bisher musste ich für jede Zeile diesen Button klicken damit einzeln für jede zeile der Code ausgeführt wird.
Es handelt sich um eine IP Liste... Jede IP hat einen Button "Ping" mit je Variablen die auf das jeweilige Feld IP verweisen.


Wie kann ich es anstellen das alle, ich sag mal "Buttons" hintereinander gedrückt werden... bzw. der Button Code je Zeile 1mal ausgeführt wird? (Hintereinander)

Habe gelesen das es mit dem im Link beschriebenen verfahren möglich sien soll.. habe nur leider kein verständnis dafür :/

Über Anregungen/Hilfe wär ich sehr Dankbar.
gruß Cyberkey



Im Anhang der Code und Bild:

01.
Private Sub IPall_Click() 
02.
Dim strTarget, strPingResults, objShell, objExec 
03.
On Error Resume Next 
04.
strTarget = Me.IPall 'IP address or hostname 
05.
Set objShell = CreateObject("WScript.Shell") 
06.
Set objExec = objShell.Exec("ping -n 1 -w 5 " & strTarget) 
07.
strPingResults = LCase(objExec.StdOut.ReadAll) 
08.
If InStr(strPingResults, "Antwort von") > 0 Then 
09.
    'MsgBox ("Geht") 
10.
    'MsgBox "# " & strPingResults & " #", vbCritical, "Ergebnis" 
11.
    'MsgBox "Ergebnis: " & strPingResults 
12.
 
13.
    DoCmd.SetWarnings False 
14.
    DoCmd.RunSQL "UPDATE Ip_adressen SET Status=1 WHERE IPall='" & strTarget & "'" 
15.
    Me.Refresh 
16.
Else 
17.
    'MsgBox ("Geht nicht") 
18.
    DoCmd.SetWarnings False 
19.
    DoCmd.RunSQL "UPDATE Ip_adressen SET Status=0 WHERE IPall='" & strTarget & "'" 
20.
    Me.Refresh 
21.
End If 
22.
DoCmd.SetWarnings True 
23.
Me!Wake.SetFocus 
24.
End Sub
a1ef32c5170f85a8b3c96d93455c8f5e - Klicke auf das Bild, um es zu vergrößern
Mitglied: 76109
31.03.2010 um 15:31 Uhr
Hallo Cyberkey!

Sinngemäß das Ganze in etwa so:
01.
Option Compare Text 
02.
 
03.
Private Sub Button_Click() 
04.
    Dim RS As Object 
05.
     
06.
    Set RS = Application.CurrentDb.OpenRecordset("Select * From [Ip_adressen]") 
07.
     
08.
    With RS 
09.
        Do Until .EOF 
10.
            If Not IsNull(.Fields("IPall")) Then 
11.
                .Edit 
12.
                .Fields("Status") = GetPingStatus(.Fields("IPall").Value) 
13.
                .Update 
14.
            End If 
15.
           .MoveNext 
16.
        Loop 
17.
    End With 
18.
     
19.
    Set RS = Nothing 
20.
 
21.
   'Me.Refresh  
22.
End Sub 
23.
 
24.
Private Function GetPingStatus(ByRef IP) As Long 
25.
    Dim objShell As Object, objExec As Object, Result As String 
26.
     
27.
    On Error Resume Next 
28.
     
29.
    Set objShell = CreateObject("WScript.Shell") 
30.
    Set objExec = objShell.Exec("ping -n 1 -w 5 " & IP) 
31.
     
32.
    Do Until objExec.Status:  Loop  'Warten 
33.
    
34.
    Result = objExec.StdOut.ReadAll 
35.
     
36.
    If InStr(Result, "Antwort von") > 0 Then GetPingStatus = 1 
37.
End Function
Gruß Dieter

[edit] Codezeile 32 hinzugefügt, warten bis Ping ausgeführt wurde [/edit]
Bitte warten ..
Mitglied: Cyberkey
01.04.2010 um 09:12 Uhr
Wunderbar !! ^^
Danke Dieter !
läuft 1a ;)
Bitte warten ..
Mitglied: 76109
01.04.2010 um 09:16 Uhr
Hallo Cyberkey!

Zitat von Cyberkey:
Wunderbar !! ^^
Danke Dieter !
läuft 1a ;)
Prima! Hast Du die Änderung in Codezeile 32 auch schon mit übernommen?

Gruß Dieter
Bitte warten ..
Mitglied: 76109
02.04.2010 um 09:48 Uhr
Hallo Cyberkey!

Im Gegensatz zu VBA-Shell gibt WScript-Shell ja einen Fehlercode zurück, wodurch sich das Ganze etwas optimieren ließe und die DOS-Fenster auch wegfallen.
01.
Private Const PingCmd = "ping -n 1 -w 5 " 
02.
 
03.
Private Sub Button_Click() 
04.
    Dim RS As Object, WshShell As Object 
05.
     
06.
    Set WshShell = CreateObject("WScript.Shell") 
07.
 
08.
    Set RS = Application.CurrentDb.OpenRecordset("Select * From [Ip_adressen]") 
09.
     
10.
    With RS 
11.
        Do Until .EOF 
12.
            If Not IsNull(.Fields("IPall")) Then 
13.
                .Edit 
14.
                .Fields("Status") = WshShell.Run(PingCmd & .Fields("IPall").Value, 0, True) Xor 1 
15.
                .Update 
16.
            End If 
17.
           .MoveNext 
18.
        Loop 
19.
    End With 
20.
     
21.
    Set RS = Nothing:  Set WshShell = Nothing 
22.
End Sub
Wobei sich der Rückgabewert 0=True und 1=False durch ein XOR in 1=True und 0=False umkehren läßt

Gruß Dieter
Bitte warten ..
Mitglied: Cyberkey
02.04.2010 um 17:06 Uhr
Hallo Dieter,
das stimmt!
Die Dos Fenster waren wirklich eine sehr unschöne Lösung!

Der Code sieht etwas kompliziert aus @ VBS CODE .. hab ich so nochnie gemacht.

Aber es ist eine gute Lösung!

Danke für die fleißige extra Arbeit^^
gruß Cyberkey

Werde das so bald wie möglich ins Projekt einfügen.
Bitte warten ..
Mitglied: Cyberkey
06.04.2010 um 11:53 Uhr
Hallo Dieter,
ich habe noch ein Problem erkannt.
Es wird nicht nach jeder Zeile aktualisiert sondern erst nach dem "Job". vll. bischen buggy.
Desweiteren sieht man nur unten "Berechnung läuft" das etwas passiert.. Ungedultige Nutzer könnten so X mal auf den Button klicken.
Werde den beim Job wohl Deaktivieren müssen.




Gruß Cyberkey

EDIT: das mit dem Button ist gelöst.. blos das ".Update" funktioniert nicht so richtig
Bitte warten ..
Mitglied: 76109
06.04.2010 um 15:19 Uhr
Hallo Cyberkey!

Zitat von Cyberkey:
EDIT: das mit dem Button ist gelöst.. blos das ".Update" funktioniert nicht so richtig
Das Update sollte schon funktionieren. Ansonsten fällt mir leider nichts dazu ein
Eventuell das Me.Refesh irgendwie mit einfügen?

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Access 2010 vba Recordset
gelöst Frage von EUuserVB for Applications3 Kommentare

Hallo zusammen, ich arbeite seit langem mal wieder mit Access und vba: Ich habe eine Datenbank, zwei Tabellen (identisch ...

Mac OS X
OpenDirectory an Windows binden
Frage von nordcleanMac OS X2 Kommentare

Hallo ich suche eine Möglichkeit wie ich einen Windows Server 2008 R2 an einen Yosemite Server mit Open Directory ...

Windows Server
Einen Port an bestimmte Subdomain binden
gelöst Frage von ZeldaFreakWindows Server4 Kommentare

Ich möchte auf meinem Windows 2012 R2 Server Ports an Subdomains Binden. Ein Beispiel: Ich hab einen Gameserver mit ...

Firewall
Bind auf Pfsense: Namensauflösung funktioniert nicht
Frage von WarrenderFirewall

Hallo, ich habe Pfsense in der aktuellsten Version installiert und möchte, dass die Clients "test.test.intra" auflösen. Folgendermaßen bin ich ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 3 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 4 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...