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?

Mitglied: Cyberkey

Cyberkey (Level 1) - Jetzt verbinden

31.03.2010, aktualisiert 13:24 Uhr, 3909 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
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 4 StundenHumor (lol)1 Kommentar

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 16 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 17 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 20 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server40 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...