Autor
|
Thema: Script zum auslesen der Bauteilbeschreibungen (900 mal gelesen)
|
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 10. Jun. 2005 11:42 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich bin's mal wieder ... hat von euch vielleicht schon jemand ein Script mit dem man die ganzen Bauteilbeschreibungen mal auslesen kann und z.B. in ein Excel-file oder in ein txt-file speichern kann ??? thx
[Diese Nachricht wurde von Spindler_S am 10. Jun. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 10. Jun. 2005 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
|
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 10. Jun. 2005 14:28 <-- editieren / zitieren --> Unities abgeben:
|
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 10. Jun. 2005 14:52 <-- editieren / zitieren --> Unities abgeben:
Jetzt ist es doch vorstellbar in der Ecxel Tabelle in Spalte C eine Englische Übersetzung dafür einzufügen, und in Spalte D eine Französische Beschreibung, und diese dann in die entsprechenden Attribute der Bauteile zurückzuschreiben. Aber das wird dann wahrscheinlich was größeres !? thx Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 13. Jun. 2005 09:25 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
Hallo, ich habe bis jetzt bei E3-COM kein Objekt für die Datenbank gefunden. Man kann immer nur projektbezogen programmieren. Ich habe aber schon beim CIM-Team nachgefragt. Die Datenbank direkt zu beschreiben, ist mir etwas zu gefährlich, da die anderssprachigen Beschreibungen nicht in der Tabelle "ComponentData" sondern in "ComponentAttribute" liegen. Existiert bisher keine Übersetzung, müßte man einen neuen Eintrag erstellen, und ich weiß nicht, ob man den so einfach anhängen kann, oder in anderen Tabellen dann auch noch was ändern muß. ------------------ Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 13. Jun. 2005 09:34 <-- editieren / zitieren --> Unities abgeben:
Hey hallo Uwe, wenn an den Bauteilen alle Attribute angelegt sind, dann müsste man ja nur die entsprechenden Felder in der Tabelle "ComponentAttribute" zu füllen !? Ob die Datenbank dann auch wirklich noch läuft konnten auch die von CIM-Team mir nicht genau sagen. Die haben gemeint dass müsste man versuchen !? Ich habe nämlich letzte Woche mit denen von der Hotline auch mal darüber gesprochen. Wie meinst Du das mit dem E3-COM Objekt für die Datenbank !? Gibt es da nichts um die DB zu beschreiben ?? thx Spindler_S
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 13. Jun. 2005 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
Hallo, Zitat: Wie meinst Du das mit dem E3-COM Objekt für die Datenbank !? Gibt es da nichts um die DB zu beschreiben ??
ich wollte mir automatisch Bauteile in der Datenbank anlegen und habe dafür keine COM-Unterstützung gefunden. Auf eine Antwort vom CIM-Team warte ich noch. ------------------ Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 13. Jun. 2005 09:46 <-- editieren / zitieren --> Unities abgeben:
|
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 13. Jun. 2005 10:29 <-- editieren / zitieren --> Unities abgeben:
|
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 13. Jun. 2005 14:13 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
|
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 13. Jun. 2005 14:22 <-- editieren / zitieren --> Unities abgeben:
Hey hallo Uwe, ich hab es mal versucht in die DB zu schreiben ... das geht auch !!! Ich habe halt mal versucht etwas in die ComponentAttribute zu schreiben. Das hat auch soweit funktioniert, und E3 konnte auch noch was anfangen damit !! Ich hab einfach mal das von Dir übernommen, und die SQL-Anweisung dementsprechend abgeändert --> --------------------------------------------------------------------- Set sql = objDBcon.Execute("UPDATE ComponentAttribute SET AttributeValue ='test' WHERE AttributeName = 'Description_english' ") --------------------------------------------------------------------- Jetzt muss ich nur noch irgendie mein Excel-file mit den Bauteilbeschreibungen wieder per Script öffnen, die entsprechenden Daten heraussuchen und in die DB eintragen !!?? Das will ich jetzt grade mal versuchen. Ich hab bloß noch keine Ahnung wie das mit dem Excel-file funktioniert !? Aber ich denke mal das kann ich ja öffnen wie z.B auch eine Excel-Vorlagendatei. Soetwas ist ja auch in den Scripten die mit E3 ausgeliefert werden, da hab ich mir gedacht so versuch ich das mal. Gruss Spindler_S
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 13. Jun. 2005 14:48 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
also das Lesen aus Excel geht so: Code: Set objApp = CreateObject( "CT.Application" ) Set objExcel = CreateObject( "Excel.Application" )objExcel.WorkBooks.Open("Z:\E3\Scripte\test.xls") 'Pfad mit Tabelle Set objTab = objExcel.ActiveWorkBook.WorkSheets("Sheet1") 'Blattname objApp.PutMessage "Zelle 2B: " & CStr(objTab.Cells(2,2).Value) & ", Zelle 3C: " & CStr(objTab.Cells(3,3).Value) objExcel.quit Set objExcel = Nothing WScript.quit
------------------ Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 13. Jun. 2005 15:02 <-- editieren / zitieren --> Unities abgeben:
Ok, dann muss ich das mal versuchen einzubauen ... das mit dem lesen aus einem Excel-file hat bei mir grade noch nicht funktioniert !? Aber ich hoffe mal das ich das damit jetzt hinbekomme !? danke Dir mal ;-) Gruss Spindler_S Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 13. Jun. 2005 15:21 <-- editieren / zitieren --> Unities abgeben:
Hey hallo Uwe, wie bekomme ich das in eine Variable ?? Ich habe mal versucht einfach noch eine Variable zu definieren, und die dann voranzustellen --> dim x = objApp.PutMess..., aber das funktioniert nicht !? Was mache ich da noch falsch ?? thx [Diese Nachricht wurde von Spindler_S am 13. Jun. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 13. Jun. 2005 16:03 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
versuchs mal so Code: Set objApp = CreateObject( "CT.Application" ) Set objExcel = CreateObject( "Excel.Application" )Dim InhaltZelle2B objExcel.WorkBooks.Open("Z:\E3\Scripte\test.xls") Set objTab = objExcel.ActiveWorkBook.WorkSheets("Sheet1") InhaltZelle2B = CStr(objTab.Cells(2,2).Value) objApp.PutMessage "Zelle 2B: " & InhaltZelle2B objExcel.quit Set objExcel = Nothing WScript.quit
Das objApp.PutMessage brauchst Du eigentlich nicht, das zeigt den Inhalt nur im E3-Infofenster an. ------------------ Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 13. Jun. 2005 16:21 <-- editieren / zitieren --> Unities abgeben:
Jetzt hab ich es fast, jetzt meckert er mir nur noch meine Variable VarExcel in meiner SQL-Anweisung an !? Wie muss ich denn die angeben wenn ich sie als Variable zuweisen möchte ?? Mit den 'VarExcel' schreibt er es mir ja als Text in die DB, und wenn ich die '' weglasse bekomme ich eine Fehlermeldung !? Set sql = objDBcon.Execute("UPDATE ComponentAttribute SET AttributeValue = VarExcel WHERE AttributeName = 'Description_english' ") thx Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 14. Jun. 2005 10:45 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
Hallo Spindler_S, bei mir klappt das mit dem Schreiben in die Datenbank noch nicht. Sowohl Code: Set sql = objDBcon.Execute("UPDATE ComponentAttribute SET AttributeValue ='test' WHERE AttributeName = 'Description_english' ")
als auch Code: Set sql = objDBcon.Execute("UPDATE ComponentAttribute SET AttributeValue = VarExcel WHERE AttributeName = 'Description_english' ")
klappen nicht. Theoretisch ist die Benutzung der Variablen so richtig, denn Text setzt man ja in Hochzeichen. ------------------ Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 14. Jun. 2005 11:55 <-- editieren / zitieren --> Unities abgeben:
Hey hallo Uwe, das ist noch ein Syntax-Problem gewesen!! Die Zeile muss so lauten: Set sql = objDBcon.Execute("UPDATE ComponentAttribute SET AttributeValue = "' & VarExcel & '" WHERE AttributeName = 'Description_english' ") dann müsste es eigentlich gehen !? Ich muss es jetzt aber auch erst mal selber versuchen, aber müsste eigentlich gehen !! Ich hab auch mal mit denen beim Support von CIM-Team gesprochen, daher hab ich den Tip. Ich bin nicht ganz so vertraut mit der Syntax von VB ;-) CU Gruss Spindler_S [Diese Nachricht wurde von Spindler_S am 15. Jun. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 15. Jun. 2005 13:11 <-- editieren / zitieren --> Unities abgeben:
|
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 15. Jun. 2005 13:24 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
Hallo Spindler_S, mit Code: Set objDBrec = CreateObject("ADODB.Recordset") 'Recordset-Objekt erzeugen'SQL-Abfrage definieren Dim sql sql = "SELECT * FROM ComponentAttribute WHERE AttributeName = 'Description_english' " objDBrec.Open sql, objDBcon, adOpenKeyset, adLockOptimistic 'Datenbank-Record öffnen For i = 0 To objDBrec.RecordCount-1
sollte es gehen. Oder Code: Do While NOT objDBrec.EOF
müßte auch klappen. Hast Du denn das mit der SQL-Abfrage und der Variablen hinbekommen? ------------------ Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 15. Jun. 2005 13:26 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
|
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 15. Jun. 2005 13:32 <-- editieren / zitieren --> Unities abgeben:
Ja hat soweit funktioniert .... ich bin bis jetzt bloß noch nicht dazu gekommen da richtig weiterzumachen. Sobald ich das Script fertig habe, werd ich es posten, dann kannst es ja auch mal versuchen. Gruss Spindler_S Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 15. Jun. 2005 14:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Uwe, Mein Script läuft soweit mal, aber ich hab grad mal versucht das mit der Excel-Geschichte (lesen bis zum Ende) in mein Sdript einzubauen ... das hab ich aber nicht geschafft !? Da hab ich dann immer noch irgendwelchen Fehler bekommen. Mein Script ließt jetzt mal 200 Zeilen aus dem Excel-file. Die 200 hab ich im Moment noch fest vorgegeben, und ich les im Moment auch noch die Deutsche Beschreibung zurück in meine BauteilDB ins Feld --> Description_english. Das ist ja aber dann recht einfach einstellbar. Kannst ja mal versuchen ob Du so auch in deine DB schreiben kannst !! Gruss Spindler_S [Diese Nachricht wurde von Spindler_S am 15. Jun. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timmle Mitglied Entwicklungsing.
Beiträge: 234 Registriert: 17.02.2005
|
erstellt am: 15. Jun. 2005 16:29 <-- editieren / zitieren --> Unities abgeben: Nur für Spindler_S
Hallo Spindler_S, dank Deiner Konstruktion Code: "...SET AttributeValue = '" & VarExcel & "' ..."
klappt das Schreiben aus Variablen jetzt auch bei mir. Knackpunkt waren die "&". Ich denke, wir sind doch jetzt schon ein ganzes Stückchen weiter Vom CIM-Team habe ich vorhin die Antwort bekommen, daß es kein Objekt für die Datenbank gibt. Es bleibt also vorerst bei dem direkten ADO-Access-Zugriff. Aber für Deine Übersetzung sollte das ja auch ausreichend sein. Weiterhin viel Spaß beim Programmieren. ------------------ Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spindler_S Mitglied Elektrotechniker
Beiträge: 224 Registriert: 05.05.2004
|
erstellt am: 15. Jun. 2005 16:34 <-- editieren / zitieren --> Unities abgeben:
Ja aber hallo, mit dem Script kann ich auf jeden Fall die Übersetzungen in die DB schreiben lassen !! Denn ich werde die Beschreibungen übersetzen lassen, und sie dann per Script wieder in meine DB schreiben lassen !! Also danke auch nochmal für deine Unterstützung, hat mich auf jeden Fall weitergebracht ... ich hoffe ich kann mich irgendwann revanchieren !! Also bis zum nächsten mal Gruss Spindler_S Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |