AS400-Fehler behoben: "Jemand arbeitet gerade in 'J: \ AS400 Automation \ tk.csv'. Versuchen Sie es später erneut."
533
Joni Depp
Ich konnte einen einfachen Befehl in AS400 erstellen, indem ich einige Makros von AS400 aufnahm und dann einige Codes durch die .ebs-Datei hinzufügte. Es funktionierte gut, als ich es verwendete, aber wenn es auf 10 Benutzer angewendet wurde, wird normalerweise ein Fehler angezeigt: "Jemand anderes arbeitet gerade in" J: \ AS400 Automation \ tk.csv ". Versuchen Sie es später erneut. "
Unten ist der Code, den ich gemacht habe:
'---------------------------------------------------------------------- ' This macro was created by the macro recorder. ' Macro File: \\******\****\Global\AS400 Automation\TKFinder.ebs ' Date: Thu Sep 20 07:01:38 2018 ' Recorded for profile: N***e*n AS400 S1 '---------------------------------------------------------------------- Function requestData(connStr As String, sqlStr As String) ' returns the result of the data. ' use isempty(requestData) to identify if the request has result or none Dim xlCon As Object Dim xlRs As Object Dim rsData As Variant Set xlCon = CreateObject("ADODB.Connection") Set xlRs = CreateObject("ADODB.Recordset") xlCon.Mode = 1 ' adModeRead / Indicates read-only permissions. xlCon.Open connStr ' open the csv database xlRs.LockType = 1 ' adLockReadOnly / Indicates read-only records. You cannot alter the data.xlRs.Open sqlStr, xlCon ' send query xlRs.Open sqlStr, xlCon If Not xlRs.EOF Then ' execute only if there is record found in the query if isnull(xlRs.Fields.item(0).value) then msgbox "No requirement." else msgbox xlRs.Fields.item(0).value end if Else msgbox "Query not found." End If xlRs.Close xlCon.Close Set xlRs = Nothing Set xlCon = Nothing End Function Sub Main Dim HostExplorer as Object Dim MyHost as Object Dim Rc as Integer On Error goto GenericErrorHandler Set HostExplorer = CreateObject("HostExplorer") ' Initialize HostExplorer Object Set MyHost = HostExplorer.HostFromProfile("N***e*n AS400 S1") ' Set object for the desired session If MyHost is Nothing Then Goto NoSession If Not MyHost.Area(6,2,6,3).Value="SC" Then Exit Sub On Error goto ShipperCodeError Dim shipperCode As long shipperCode = MyHost.Area(6,5,6,11).Value shipperCode = trim(shipperCode) Dim dbName As String, connStr As String, sqlStr As String Dim leadData dbpath = "J:\global\AS400 Automation" connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath & ";Extended Properties=""text;HDR=Yes;FMT=Delimited;""" if isempty(shippercode) then exit sub dbName = "tk.csv" sqlStr = "SELECT Requirement " & _ "FROM [" & dbName & "] Where [Shipper Code] = " & shipperCode & ";" requestData connStr, sqlStr Exit Sub '-------------------- Runtime Error Handlers -------------------- GenericErrorHandler: Msgbox "Error " & Err & " : """ & Error(Err) & """ has occurred on line " & Erl-1 & "." & Chr(10) & "Unable to continue macro execution.", 16, "HostExplorer Basic Macro Error" Exit Sub ShipperCodeError: Msgbox "Shipper code is empty." Exit sub NoSession: Msgbox "Profile ""NewPenn AS400 S1"" is not running." & Chr(10) & "Unable to execute macro.", 16, "HostExplorer Macro Error" Exit Sub OnKeyboardError: Msgbox "Unable to type string on host screen." & Chr(10) & "Unable to continue macro execution.", 16, "HostExplorer Basic Macro Error" Exit Sub End Sub
Das Makro wurde einem Tastaturbefehl zugewiesen, und es funktioniert einwandfrei, bis es für mehrere Benutzer freigegeben wurde.
Ich weiß nicht, wie ich den Code reparieren soll, seit ich mit AS / 400 und SQL neu bin. Was soll ich machen?
Ich bin mir nicht sicher; In requestData schlage ich vor, dass Sie dem Benutzer keine Nachrichten zwischen Öffnen und Schließen anzeigen. Ich schlage vor, Sie öffnen sich; Setze Variablen; Abfrage schließen; Anzeigen von Meldungen aus Variablen;
Bruce Martin vor 6 Jahren
0
Hi Bruce! Danke für die Antwort. Ich werde versuchen, zu sehen, was ich aufgrund Ihrer Siggestion tun kann. Ich bin wirklich neu damit, ich schätze die Hilfe.
Joni Depp vor 6 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
16
Abfragen einer CSV-Datei
-
1
Was ist der beste Weg, ein Excel-Makro auf mehreren Computern gemeinsam zu nutzen?
-
2
Konvertieren Sie Excel 4.0-Makro in VBA
-
1
Gibt es trotzdem vim, dass Sonderzeichen nicht als Wörter gezählt werden?
-
2
Kann ich die Makrosicherheitseinstellung für eine bestimmte Datei mit einem Wort ignorieren?
-
5
Excel 2007 konvertiert CSV-Felder in Formeln
-
3
Fixieren Sie ein (Heute) Datum in Excel
-
1
Festlegen von vertrauenswürdigen Visio 2003-Speicherorten
-
4
Excel 2007 | Entfernen Sie leere Felder aus den Pivot-Tabellen
-
2
Wie würde ein Outlook 2007-Makro zum Automatisieren des Einfügevorgangs - unformatierter Text ausseh...