| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Datumsfeld (2688 mal gelesen)
|
Steiner Dominik Mitglied Mechanical Engineer
Beiträge: 141 Registriert: 12.09.2007 Inventor 2008 SP1 Dell Precision PWS380 Intel(R) Pentium(R) CPU 3.20GHz 3.19GHz, 3,50GB RAM<P>Windows XP Pro Version 2002 SP2
|
erstellt am: 28. Nov. 2007 14:08 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich hätte da eine Frage wieder mal. Ich habe da ein Programmchen erstellt welches mein Änderungswesen abdeckt sprich ich habe eine Userform erstellt wo einige Textboxen sind wo ich die Möglichkeit habe meine Benutzerdefinierten I-Prop. reinzuschreiben. Bei Textfeldern funktionert es ja echt super nur habe ich ein Feld welches ich als Date definert habe (in I-Props) kann mir jemand sagen wie ich ein Datumsfeld definiere. Oder was ich machen soll damit wenn ich die Werte in die I-Props schreibe ein Datum übergeben wird.Anbei der Code Code:
Private Sub Füllen_Click() Dim oDoc As PartDocument 'Definition Inventor Set oDoc = ThisApplication.ActiveDocument aRev.Value = oDoc.PropertySets(4).Item("1.0_Rev").Value bRev.Value = oDoc.PropertySets(4).Item("2.0_Rev").Value cRev.Value = oDoc.PropertySets(4).Item("3.0_Rev").Value dRev.Value = oDoc.PropertySets(4).Item("4.0_Rev").Value eRev.Value = oDoc.PropertySets(4).Item("5.0_Rev").Value 'fRev.Value = oDoc.PropertySets(4).Item("6.0_Rev").Value aAndnummer.Value = oDoc.PropertySets(4).Item("1.1_Änd.Nr.").Value bAndnummer.Value = oDoc.PropertySets(4).Item("2.1_Änd.Nr.").Value cAndnummer.Value = oDoc.PropertySets(4).Item("3.1_Änd.Nr.").Value dAndnummer.Value = oDoc.PropertySets(4).Item("4.1_Änd.Nr.").Value eAndnummer.Value = oDoc.PropertySets(4).Item("5.1_Änd.Nr.").Value 'fAndnummer.Value = oDoc.PropertySets(4).Item("6.1_Änd.Nr.").Value If oDoc.PropertySets(4).Item("1.2_Dat").Value = "01.01.1601" Then oDoc.PropertySets(4).Item("1.2_Dat").Value = " " If oDoc.PropertySets(4).Item("2.2_Dat").Value = "01.01.1601" Then oDoc.PropertySets(4).Item("2.2_Dat").Value = " " If oDoc.PropertySets(4).Item("3.2_Dat").Value = "01.01.1601" Then oDoc.PropertySets(4).Item("3.2_Dat").Value = " " If oDoc.PropertySets(4).Item("4.2_Dat").Value = "01.01.1601" Then oDoc.PropertySets(4).Item("4.2_Dat").Value = " " If oDoc.PropertySets(4).Item("5.2_Dat").Value = "01.01.1601" Then oDoc.PropertySets(4).Item("5.2_Dat").Value = " " aDat.Value = oDoc.PropertySets(4).Item("1.2_Dat").Value bDat.Value = oDoc.PropertySets(4).Item("2.2_Dat").Value cDat.Value = oDoc.PropertySets(4).Item("3.2_Dat").Value dDat.Value = oDoc.PropertySets(4).Item("4.2_Dat").Value eDat.Value = oDoc.PropertySets(4).Item("5.2_Dat").Value 'fDat.Value = oDoc.PropertySets(4).Item("6.2_Dat").Value aName.Value = oDoc.PropertySets(4).Item("1.3_Nam").Value bName.Value = oDoc.PropertySets(4).Item("2.3_Nam").Value cName.Value = oDoc.PropertySets(4).Item("3.3_Nam").Value dName.Value = oDoc.PropertySets(4).Item("4.3_Nam").Value eName.Value = oDoc.PropertySets(4).Item("5.3_Nam").Value 'fName.Value = oDoc.PropertySets(4).Item("6.3_Nam").Value Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Manfred Zirk Mitglied
Beiträge: 513 Registriert: 01.11.2002 IV2008 SP1 MDT2008 WIN XP SP2, Vista x64 Asus A8N-SLI, AMD Opteron 180 , 4GB, Quadro FX 3400
|
erstellt am: 28. Nov. 2007 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für Steiner Dominik
Hallo Dominik, wenn dein Property ein Textfeld ist und der Datentyp String ist, dann kannst du die Eingabe im Formular entsprechend formatieren: oPropSet.Item("ZULETZT_GESPEICHERT_DATUM").Value = Format(Date, "dd/mm/yyyy") Hier wird die Systemzeit Date formatiert. auch reiner Text kann als Datum formatiert werden, verbunden mit einer Kontrolle der Benutzereingabe via VBA.
Grüße
Manfred [Diese Nachricht wurde von Manfred Zirk am 28. Nov. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Steiner Dominik Mitglied Mechanical Engineer
Beiträge: 141 Registriert: 12.09.2007 Inventor 2008 SP1 Dell Precision PWS380 Intel(R) Pentium(R) CPU 3.20GHz 3.19GHz, 3,50GB RAM<P>Windows XP Pro Version 2002 SP2
|
erstellt am: 28. Nov. 2007 15:02 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antwort nur versteh ich sie nicht ganz. Also noch ma zu meinen Problem Ich holle mir meine Benutzerdef. I-Probs in eine UserForm in ein Textfeld oder umgekehrt. z.B. Änderungsdatum(i-Prop) in eine Textbox. Das Änderungsdatum ist in den I-Prop als Date definert stimmt ja auch. Wenn ich jetzt diesen Wert jetzt in meine Textbox hole schreibt er z.b.:10.10.2007 23.00 also er schreibt auch die Zeit dazu die voll sinnlos ist und ich auch keine Ahnung woher die kommt. und als zweites Problem habe ich wenn ich jetzt meinen Wert aus der Textbox in die I-Props schreibe das dieser dan als text in den i-props und das will ich auch nicht. gibt es in der VBAeditor von Inventor kein Feld für datums oder wie kann ich das sonst lösen wie muss ich die zeile definiern damit die als Datum übergeben übernommen werden kann, aDat.Value = oDoc.PropertySets(4).Item("1.2_Dat").Value bDat.Value = oDoc.PropertySets(4).Item("2.2_Dat").Value cDat.Value = oDoc.PropertySets(4).Item("3.2_Dat").Value dDat.Value = oDoc.PropertySets(4).Item("4.2_Dat").Value eDat.Value = oDoc.PropertySets(4).Item("5.2_Dat").Value aDat ==> ist meine Textbox
Vielen Dank
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Manfred Zirk Mitglied
Beiträge: 513 Registriert: 01.11.2002 IV2008 SP1 MDT2008 WIN XP SP2, Vista x64 Asus A8N-SLI, AMD Opteron 180 , 4GB, Quadro FX 3400
|
erstellt am: 28. Nov. 2007 21:17 <-- editieren / zitieren --> Unities abgeben: Nur für Steiner Dominik
Hallo Dominik, soweit ich das sehe, sind die benutzerdefinierten Properties alle vom Datentyp String oder Variant (Text) Die zusätzlichen Auswahlmöglichkeiten in dem Reiter Benutzerdefinierte Eigenschaften dienen wohl eher der korrekten Formatierung der Benutzereingabe. Sobald sie mit VBA beschrieben werden, sind sie eben wieder "Text". Beim Erzeugen eines benutzerdefinierten Properties mit VBA kann man auch keinen Datentyp auswählen oder zuweisen. Bei mir wird das Datum ohne die Uhrzeit korrekt in die Textbox geladen. (Als String) Warum du die Uhrzeit mit angezeigt bekommst, weiß ich nicht. Du kannst aber das Datum beim Laden in die Textbox formatieren und die Uhrzeit abschneiden. Die Benutzereingabe kann vor dem Schreiben in das Property auf die korrekte Formatierung hin mit der FORMAT-Funktion von VBA überprüft werden. Ich sehe nur diesen Weg, aber ich bin kein VBA-Profi. Grüße Manfred Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 28. Nov. 2007 22:06 <-- editieren / zitieren --> Unities abgeben: Nur für Steiner Dominik
Hallo Dominik, versuch doch mal die Logik dahinter zu verstehen. Es gibt in den benutzerdef. Properties 4 Typen. Anzahl Datum Text Ja oder Nein Welchen Datentypen könnten diese Typen entsprechen? Vielleicht kann man in VBA einen passenden Typ definieren und diesen übergeben. Gruß Reinhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Steiner Dominik Mitglied Mechanical Engineer
Beiträge: 141 Registriert: 12.09.2007 Inventor 2008 SP1 Dell Precision PWS380 Intel(R) Pentium(R) CPU 3.20GHz 3.19GHz, 3,50GB RAM<P>Windows XP Pro Version 2002 SP2
|
erstellt am: 29. Nov. 2007 08:04 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die Antworten nur mein Problem habe ich nicht lösen können. In meinen I-Props gibt es ein Benutzerdefiniertes i-Prop welches wie folgt definiert ist Name: 1.2_Dat Type: Datum Wert: z.b 29.11.2007 Dieses I-prop übergib ich in eine Userform bzw. umgekehrt. jetzt möchte ich gerne wissen wie ich disen Wert den ich von meine Userform hole und in die I-Props schreibe als Datum definiere. ein kurzes Beispiel wäre super
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Manfred Zirk Mitglied
Beiträge: 513 Registriert: 01.11.2002 IV2008 SP1 MDT2008 WIN XP SP2, Vista x64 Asus A8N-SLI, AMD Opteron 180 , 4GB, Quadro FX 3400
|
erstellt am: 29. Nov. 2007 19:37 <-- editieren / zitieren --> Unities abgeben: Nur für Steiner Dominik
Hallo Dominik, ich habe es bisher nur geschafft, die Properties in passende Variablen zu lesen und wieder zurückzuschreiben. Dabei bleibt eine Datum ein Datum, usw. Sobald ich das Datum an ein Textfeld übergebe, sonst nichts mache und wieder zurück schreibe, ist das Property wieder nur Text. Grüße Manfred Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 29. Nov. 2007 20:13 <-- editieren / zitieren --> Unities abgeben: Nur für Steiner Dominik
Hallo Manfred, der Name deines Steuerelements gibt dir einen Hinweis warum das so ist. Wenn du etwas in eine Textbox schreibst und der Datentypm in einen Text umgewandelt werden kann, dann klappt das, sonst gibts einen Fehler. Jetzt willst du den Text wieder zurückschreiben also mußt du den Text wieder in ein Datum umwandeln. Jetzt müßt ihr noch rausfinden wie man in VBA ein Datum definiert. Gruß Reinhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Manfred Zirk Mitglied
Beiträge: 513 Registriert: 01.11.2002 IV2008 SP1 MDT2008 WIN XP SP2, Vista x64 Asus A8N-SLI, AMD Opteron 180 , 4GB, Quadro FX 3400
|
erstellt am: 29. Nov. 2007 22:14 <-- editieren / zitieren --> Unities abgeben: Nur für Steiner Dominik
Hallo Reinhard, ich habe mir das so vorgestellt: Dim Datum As Date TextBoxDatum.Value = oPropSet.Item("Datum").Value 'Datum einlesen TextBoxDatum.Value = "11.11.2305" 'neues Datum in Textbox 'eingeben' If IsDate(TextBoxDatum.Value) = True Then 'Eingabe konvertierbar? MsgBox "Ein neues Datum - Heureka!" Datum = Format(CDate(TextBoxDatum.Value), "dd/mm/yyyy") oPropSet.Item("Datum").Value = Datum End If Grüße Manfred Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 29. Nov. 2007 22:44 <-- editieren / zitieren --> Unities abgeben: Nur für Steiner Dominik
Hallo Manfred, genau so gehts. Die Übung sollte für Dominik sein. Es werden hier zwar auch die Basics erklärt, wenn man höflich fragt aber ... Ich hab zwar noch nicht gesucht aber wahrscheinlich gibts 1.000.000 Treffer bei Google mit VBA + Datum und da sollte eine Antwort dabei sein mit der auch Dominik was anfangen kann. Gruß Reinhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Steiner Dominik Mitglied Mechanical Engineer
Beiträge: 141 Registriert: 12.09.2007 Inventor 2008 SP1 Dell Precision PWS380 Intel(R) Pentium(R) CPU 3.20GHz 3.19GHz, 3,50GB RAM<P>Windows XP Pro Version 2002 SP2
|
erstellt am: 30. Nov. 2007 07:45 <-- editieren / zitieren --> Unities abgeben:
|