vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB Skript (VBS)
Ein VB Skript aus Access heraus starten 
Autor: Ray01
Datum: 04.05.14 21:15

Hallo,
ich versuche aus Access heraus ein VB Skript (1_Make_Konfi.vbs) zu starten, das aber bricht mit einer Fehlermeldung ab. Wenn ich das VB Skript direkt ausführe funktioniert das einbandfrei! Das VB Skript liest eine csv- File ein (read.txt) und erstellt daraus eine anderes csv- File (Result.txt). Mir ist nicht klar wo da das Problem ist! Vielleicht kann mir einer weiter helfen.

Fehler: Die Datei wurde nicht gefunden
Zeile 16, Zeichen 5

Vielen Dank!

Hier der Quellcode des VB Skriptes, das aus Access ausgeführt werden soll:

Damit habe ich es versucht!

Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "c:\Skript\1_Make_Konfi.vbs"
End Sub

In Zeile 16, bleibt es hängen!
Set objFileRead =fso.OpenTextFile(dateiRead,1, ,-2)


Option Explicit


Const dateiWrite = "result.txt" 'Bezeichnung der Ergebnisdatei, ggfs. anpassen.
Dim dateiRead 'Bezeichnung der Ausgangsdatei, ggfs. anpassen.
Dim fso, objFileRead, objFileWrite ' Deklaration I/O
Dim i, j, k, p, trenner, ergZeile, legende , div, div_res, helpVar 'Lauf- bzw. Hilfsvariablen
ReDim zeilenRead(100000) 'Ausgangsdatei hier auf 100.000 Zeilen beschränkt, bei Bedarf anpassen.
ReDim dynamErgZeile(11) 'dynamische Ergebniszeile, schreibt Zeilenweise die Ergebnisdatei.

dateiRead = InputBox("Bitte Ausgangsdatei angeben:",,"read.txt")

Set fso = CreateObject("Scripting.FileSystemObject")
'Existiert Datei?
If fso.FileExists(dateiRead) then
Set objFileRead =fso.OpenTextFile(dateiRead,1, ,-2)
' Liest die Ausgangsdatei zeilenweise in das Array "zeilenRead"
while not objFileRead.AtEndOfStream
if i=0 Then
legende = objFileRead.ReadLine
Else
zeilenRead(i-1) = objFileRead.ReadLine
end if
i=i+1
Wend
ReDim Preserve zeilenRead(i-2) ' Schneidet die Array-Größe nach Bedarf zu, um unnötige Speicherverschwendung zu verhindern
MsgBox "Ausgangsdatei enthält " & i-1 & " Zeilen zur Verarbeitung."
Else
Wscript.Echo "Datei " & dateiRead & " nicht gefunden! Bitte ggfs. Bezeichnung der Ausgangsdatei anpassen!"
End If
objFileRead.Close

Set objFileWrite=fso.OpenTextFile(dateiWrite,2, ,0)
' Arbeitet zeilenweise. Trennt jede eingelesene Zeile, baut sie um, ergänzt und schreibt in Textdatei rein
for j = 0 to ubound(zeilenRead)
trenner = Split(zeilenRead(j), ";")
If (strComp(trenner(2),Chr(34)&"Binär"&Chr(34)))=0 Then 'Binaer
dynamErgZeile(0)="Binaer"
else 'Analog
dynamErgZeile(0)=trenner(2)
end if
dynamErgZeile(1)=trenner(0)
dynamErgZeile(1)=Replace(dynamErgZeile(1),"||","§§")
dynamErgZeile(2)="READ"
dynamErgZeile(3)=trenner(1)
If (strComp(trenner(2),Chr(34)&"Binär"&Chr(34)))=0 Then 'Binaer
dynamErgZeile(3)=Replace(dynamErgZeile(3),"""","")
trenner(5)=Replace(trenner(5),"""","")
dynamErgZeile(3)=Chr(34)&dynamErgZeile(3) & " " & trenner(5)&Chr(34)
dynamErgZeile(4)=""
else 'Analog
dynamErgZeile(4)=trenner(5)
end if
dynamErgZeile(5)=trenner(6)
dynamErgZeile(6)=trenner(7)
' Analog oder Binär
If (strComp(trenner(2),Chr(34)&"Binär"&Chr(34)))=0 Then 'Binär
dynamErgZeile(7)=";;"
dynamErgZeile(8)="VT_BOOL"
Else ' Analog
dynamErgZeile(7)=";;"
dynamErgZeile(8)="VT_R4"
End If
If j<400 Then ' was ist mit binär, wenn diese immerwieder zwischen durch stehen?
dynamErgZeile(9)="1000" ' Ersten 400 Zeilen '### vorher "1000,00" gewesen
Else
div=j/400
div=Split(div,",")
div_res = Cint(div(0)) + 1000
dynamErgZeile(9)=CStr(div_res) ' größer 400 Zeilen ### vorher & ",00"
End If
dynamErgZeile(10)=trenner(0)
dynamErgZeile(10)=Replace(dynamErgZeile(10),"||","/")
' Array zum String vereinen
for k = 0 to ubound(dynamErgZeile)-1
ergZeile=ergZeile & dynamErgZeile(k) & ";"
next
ergZeile=Replace(ergZeile,"""","") 'Anführungszeichen entfernen
ergZeile=left(ergZeile, len(ergZeile) -1) 'letztes Semikolon entfernen
' Zeile in Textdatei schreiben
objFileWrite.WriteLine ergZeile
' Werte löschen, damit nächste Zeile geschrieben werden kann
Erase trenner
ergZeile=""
next
objFileWrite.Close
MsgBox "Zeilen der Ausgangsdatei: " & i-1 & " - Verarbeitete Zeilen in Ergebnisdatei: " & j


alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ein VB Skript aus Access heraus starten3.701Ray0104.05.14 21:15
Re: Ein VB Skript aus Access heraus starten1.575powerzone300005.05.14 08:52
Re: Ein VB Skript aus Access heraus starten1.512Ray0106.05.14 16:13

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel