Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Datei öffnen über (WshShell.Run)

Frage Entwicklung VB for Applications

Mitglied: RobertKa

RobertKa (Level 1) - Jetzt verbinden

01.08.2014, aktualisiert 17:25 Uhr, 2476 Aufrufe, 4 Kommentare

Hallo zusammen,

bin schon ein wenig verzweifelt auf der Suche nach meinem Fehler.

'So geht's einwandfrei:
WshShell.Run """C:\Alle Dateien\Unterlagen\4915\Datei_4915.pdf""", 0

'So sollte es gehen:
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

Dim sPfad, sDatei, sDateiLink
sPfad = cRM.CurrentProject.ActiveViews.ActiveView.CurrentRecordSet.CurrentRecordSynchronized.GetContentsByName("PfadID")
sDatei = cRM.CurrentProject.ActiveViews.ActiveView.CurrentRecordSet.CurrentRecordSynchronized.GetContentsByName("Datei")
sDateiLink = "C:\Dateien\Alle Unterlagen\" & sPfad & "\" & sDatei

'MsgBox CStr(sDateiLink), vbInformation, cRM.AppTitle *
'WScript.Quit
' *Nur zur Prüfung: Hier wird der Pfad komplett und korrekt ausgegeben


On Error Resume Next
WshShell.Run """CStr(sDateiLink)""", 0
' Das funktioniert nicht, weder mit drei, noch mit zwei,noch mit einem oder mit gar keinem Anführungszeichen
' Das ebenso nicht -> WshShell.Run "" & CStr(sDateiLink) & "", 0

Wo liegt mein Fehler? Was mach ich falsch ?

Herzlichen Dank und viele Grüße

Robert
Mitglied: colinardo
LÖSUNG 01.08.2014, aktualisiert um 17:28 Uhr
Hallo Robert,
doppelte Anführungszeichen innerhalb einer Stringzeichenfolge werden zu einem einzigen, deswegen so:
WshShell.Run """" & sDateiLink & """", 0
oder so, wenn dir Anführungszeichen zählen nicht liegt
WshShell.Run chr(34) & sDateiLink & chr(34), 0
Stell dir einfach vor was du in einer Konsole eingeben müsstest um eine Datei mit einem Leerzeichen im Pfad zu öffnen. Und da ein "" in VBS eine Leere Zeichenfolge ergibt ein """" aber ein einzelnes " sollte jetzt klar sein warum es bei dir nicht geklappt hat

Grüße Uwe
Bitte warten ..
Mitglied: RobertKa
01.08.2014 um 17:25 Uhr
Hallo Uwe,

vielen, vielen Dank.Geht einwandfrei. Das es 4 sein müssten, wäre ich nicht drauf gekommen.

Da zähl ich gerne

Viele Grüße

Robert
Bitte warten ..
Mitglied: rubberman
01.08.2014, aktualisiert um 18:01 Uhr
Hallo Robert

Das es 4 sein müssten, wäre ich nicht drauf gekommen.
Ich versuch's mal zu erklären.
Ein Stringliteral muss immer in einem Paar umschließenden Anführungszeichen stehen (die anschließend nicht im Stringwert zu finden sind).
s = "text"

Wenn du Anführungszeichen in einem String darstellen willst, müssen diese verdoppelt werden.
Beispiel: Test soll in Anführungszeichen stehen ...
s = "Das ist ein ""Test"""

Für ein einzelnes Anführungszeichen brauchst du also das umschließende Paar für das Stringliteral, sowie das verdoppelte als Wert.
s = """"

Wenn du nun eine Variable mit Anführungszeichen verknüpfen willst, benötigst du das &
s2 = """" & s1 & """"

Ich hoffe das trägt zum Verständnis bei

Grüße
rubberman
Bitte warten ..
Mitglied: RobertKa
01.08.2014 um 21:44 Uhr
Hallo rubberman,

dass es irgendwie mit den Anführungszeichen zu tun hat,hatte ich schon so im Gefühl. Aber die Erklärung fehlte mir. Der Grund ist, dass ich das eigentlich so ein wenig nebenbei mache und dadurch die Grundlagen fehlen. Aber jetzt ist mir das klar.

Deswegen nochmals vielen Dank für Deine ausführliche Erklärung und auch die von Uwe.

Schönen Abend und ein schönes Wochenende!

Viele Grüße

Robert
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst WshShell.Run Problemchen (5)

Frage von Batch-Alor zum Thema VB for Applications ...

Basic
gelöst Mit Visual Basic Batch Datei öffnen (26)

Frage von Flodsche zum Thema Basic ...

Server-Hardware
Kann wav Datei im Handy nicht öffnen (2)

Frage von Chrisch zum Thema Server-Hardware ...

Windows 10
gelöst Lokale Datei über IE öffnen, weisser leerer Tab öffnet sich (4)

Frage von Olfryygt zum Thema Windows 10 ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

Frage von CrystalFlake zum Thema LAN, WAN, Wireless ...

Windows Userverwaltung
Nicht Administratoren Installation von Software erlauben (14)

Frage von WinLiCLI zum Thema Windows Userverwaltung ...