Hallo
 
Mein Konzern stellt im Moment auf OpenOffice 3.0.1 um.
Jedoch sind wir auf ein Problem gestoßen. 
Eine unserer Anwendungen arbeitet mit Daten der AS400 und diese sollen direkt 
in die Textverarbeitung übernommen werden.
Bis dato hat dieses unter Word und Excel einwandfrei Funktioniert.
Für OpenOffice mussten wir unter 
Extras/Optionen/"Laden/Speichern"/VBA-Eigenschaften den "Ausführbarer Code" 
Button unter Excel aktivieren, womit es anschließend ging.
Unter Word gibt es diesen Button leider nicht und der Import geht auch leider 
nicht. Sämtliche andere Optionen sind in diesem Menü aktiv.
Weitere Nachvorschungen ergaben das der Macro Code mittels "REM" auskommentiert 
wird.
 
Ich habe das Macro mal angefügt:
 
Rem Attribute VBA_ModuleType=VBAModule
Sub AutoOpen
Rem Sub Main()
Rem   '' Nur Daten holen, wenn Datei neu
Rem   If ThisDocument.Bookmarks.Item("Name1").Range.Text = "" Then
Rem     Dim vb
Rem     Dim anbnr
Rem     Dim sql
Rem     
Rem     vb = Left(ThisDocument.Name, 4)
Rem     anbnr = Mid(ThisDocument.Name, 16, 8)
Rem     
Rem     sql = ""
Rem     sql = sql + "SELECT  ORDN50 AS AnbNr,"
Rem     sql = sql + "        TRIM(OCUO50) AS KBstNr,"
Rem     sql = sql + "        TRIM(ZORD50) AS KAnfrg,"
Rem     sql = sql + "        DATE(ORDD50 + 693594) AS VonDat,"
Rem     sql = sql + "        DATE(ODUE50 + 693594) AS BisDat,"
Rem     sql = sql + "        OCUS50 AS KundNr,"
Rem     sql = sql + "        TRIM(IFNULL(TEXT10, K.MNNM10)) AS Name1,"
Rem     sql = sql + "        TRIM(K.BYNM10) AS Name2,"
Rem     sql = sql + "        TRIM(K.STRE10) AS Strasse,"
Rem     sql = sql + "        TRIM(K.ZIPC10) AS PLZ,"
Rem     sql = sql + "        TRIM(K.ACIT10) AS Ort,"
Rem     sql = sql + "        (CASE K.CNTY10"
Rem     sql = sql + "          WHEN 'A' THEN ''"
Rem     sql = sql + "          ELSE TRIM(TEXTK8) END) AS Land,"
Rem     sql = sql + "        TRIM(K.PHON10) AS KTel,"
Rem     sql = sql + "        TRIM(K.TLFA10) AS KFax,"
Rem     sql = sql + "        IFNULL(TRIM(SUBSTR(KE.EMAIA0, 1, 60)), '') AS 
KMail,"
Rem     sql = sql + "        TRIM(B.MNNM10) AS BetName,"
Rem     sql = sql + "        TRIM(B.PHON10) AS  BetTel,"
Rem     sql = sql + "        IFNULL(TRIM(SUBSTR(BE.EMAIA0, 1, 60)), '') AS 
BetMail,"
Rem     sql = sql + "        TRIM(V.MNNM10) AS VName,"
Rem     sql = sql + "        TRIM(V.PHON10) As VTel"
Rem     sql = sql + " FROM CASPDTAE.COSPF550"
Rem     sql = sql + "  JOIN CASPDTAE.GENPF510 AS K"
Rem     sql = sql + "   ON  K.ADRE10 = JADC50"
Rem     sql = sql + "  LEFT JOIN CASPDTAE.GENPF5A0 AS KE"
Rem     sql = sql + "   ON  KE.MODEA0 = 'A'"
Rem     sql = sql + "   AND KE.HRKNA0 = ''"
Rem     sql = sql + "   AND KE.ADTYA0 = ''"
Rem     sql = sql + "   AND KE.UNRAA0 = K.ADRE10"
Rem     sql = sql + "   AND KE.POSNA0 = ''"
Rem     sql = sql + "   AND KE.ADREA0 = ''"
Rem     sql = sql + "  LEFT JOIN CCMPDTAE.GEFPF510"
Rem     sql = sql + "   ON  ADR110 = K.ADRE10"
Rem     sql = sql + "  JOIN CASPDTAE.GENPF900"
Rem     sql = sql + "   ON  OINTCT = K.INTC10"
Rem     sql = sql + "  LEFT JOIN CASPDTAE.GENPFTK8"
Rem     sql = sql + "   ON  LGNTK8 = ''"
Rem     sql = sql + "   AND TXTPK8 = 'CTY'"
Rem     sql = sql + "   AND GNKNK8 = ILNDCT"
Rem     sql = sql + "   AND LNGGK8 = 'D'"
Rem     sql = sql + "   AND TXTYK8 = ''"
Rem     sql = sql + "   AND POSNK8 = '0010'"
Rem     sql = sql + "  LEFT JOIN CASPDTAE.GENPFGPI"
Rem     sql = sql + "   ON  LGENPI = SUBSTR(HRKN50, 1, 2)"
Rem     sql = sql + "   AND USERPI = IUSE50"
Rem     sql = sql + "  LEFT JOIN CASPDTAE.GENPF510 AS B"
Rem     sql = sql + "   ON  B.ADRE10 = ADREPI"
Rem     sql = sql + "  LEFT JOIN CASPDTAE.GENPF5A0 AS BE"
Rem     sql = sql + "   ON  BE.MODEA0 = 'A'"
Rem     sql = sql + "   AND BE.HRKNA0 = ''"
Rem     sql = sql + "   AND BE.ADTYA0 = ''"
Rem     sql = sql + "   AND BE.UNRAA0 = B.ADRE10"
Rem     sql = sql + "   AND BE.POSNA0 = ''"
Rem     sql = sql + "   AND BE.ADREA0 = ''"
Rem     sql = sql + "  LEFT JOIN CASPDTAE.COSPF447"
Rem     sql = sql + "   ON  HRKN47 = HRKN50"
Rem     sql = sql + "   AND HRKF47 = HRKF50"
Rem     sql = sql + "   AND OREP47 = OREP50"
Rem     sql = sql + "  LEFT JOIN CASPDTAE.GENPF510 AS V"
Rem     sql = sql + "   ON  V.ADRE10 = ADRE47"
Rem     sql = sql + " WHERE HRKN50 = '" & vb & "'"
Rem     sql = sql + "   AND HRKF50 = 'J'"
Rem     sql = sql + "   AND ODMF50 = 'O'"
Rem     sql = sql + "   AND ORDN50 = '" & anbnr & "'"
Rem     
Rem     Dim cnn As ADODB.Connection
Rem     Dim rst As ADODB.Recordset
Rem     Dim cmd As ADODB.Command
Rem     
Rem     Set cnn = New ADODB.Connection
Rem     cnn.Open ("QDSN_10.1.1.12")
Rem     
Rem     Set cmd = New ADODB.Command
Rem     Set cmd.ActiveConnection = cnn
Rem     
Rem     With cmd
Rem       .CommandText = sql
Rem       .CommandType = adCmdText
Rem     End With
Rem     
Rem     Set rst = New ADODB.Recordset
Rem     Set rst.ActiveConnection = cnn
Rem     rst.Open cmd
Rem     
Rem     If Not rst.EOF Then
Rem       Dim rng As Range
Rem       With ThisDocument.Bookmarks
Rem         '' Kundenanschrift
Rem         Set rng = .Item("Name1").Range
Rem         rng.Text = rst.Fields("Name1").Value
Rem         .Add Name:="Name1", Range:=rng
Rem         
Rem         Set rng = .Item("Name2").Range
Rem         rng.Text = rst.Fields("Name2").Value
Rem         .Add Name:="Name2", Range:=rng
Rem         
Rem         Set rng = .Item("Strasse").Range
Rem         rng.Text = rst.Fields("Strasse").Value
Rem         .Add Name:="Strasse", Range:=rng
Rem         
Rem         Set rng = .Item("PLZ").Range
Rem         rng.Text = rst.Fields("PLZ").Value
Rem         .Add Name:="PLZ", Range:=rng
Rem         
Rem         Set rng = .Item("Ort").Range
Rem         rng.Text = rst.Fields("Ort").Value
Rem         .Add Name:="Ort", Range:=rng
Rem         
Rem         Set rng = .Item("Land").Range
Rem         rng.Text = rst.Fields("Land").Value
Rem         .Add Name:="Land", Range:=rng
Rem         
Rem         '' Kunde: Telefon, Fax, E-Mail
Rem         Set rng = .Item("KTel").Range
Rem         rng.Text = rst.Fields("KTel").Value
Rem         .Add Name:="KTel", Range:=rng
Rem         
Rem         Set rng = .Item("KFax").Range
Rem         rng.Text = rst.Fields("KFax").Value
Rem         .Add Name:="KFax", Range:=rng
Rem         
Rem         Set rng = .Item("KMail").Range
Rem         rng.Text = rst.Fields("KMail").Value
Rem         .Add Name:="KMail", Range:=rng
Rem         
Rem         '' Betreuungsdaten
Rem         Set rng = .Item("BetName").Range
Rem         rng.Text = rst.Fields("BetName").Value
Rem         .Add Name:="BetName", Range:=rng
Rem         
Rem         Set rng = .Item("BetTel").Range
Rem         rng.Text = rst.Fields("BetTel").Value
Rem         .Add Name:="BetTel", Range:=rng
Rem         
Rem         Set rng = .Item("BetMail").Range
Rem         rng.Text = rst.Fields("BetMail").Value
Rem         .Add Name:="BetMail", Range:=rng
Rem         
Rem         Set rng = .Item("VName").Range
Rem         rng.Text = rst.Fields("VName").Value
Rem         .Add Name:="VName", Range:=rng
Rem         
Rem         Set rng = .Item("VTel").Range
Rem         rng.Text = rst.Fields("VTel").Value
Rem         .Add Name:="VTel", Range:=rng
Rem               
Rem         '' Angebotsdaten
Rem         Set rng = .Item("KundNr").Range
Rem         rng.Text = rst.Fields("KundNr").Value
Rem         .Add Name:="KundNr", Range:=rng
Rem         
Rem         Set rng = .Item("AnbNr").Range
Rem         rng.Text = rst.Fields("AnbNr").Value
Rem         .Add Name:="AnbNr", Range:=rng
Rem         
Rem         Set rng = .Item("VonDat").Range
Rem         rng.Text = rst.Fields("VonDat").Value
Rem         .Add Name:="VonDat", Range:=rng
Rem         
Rem         Set rng = .Item("BisDat").Range
Rem         rng.Text = rst.Fields("BisDat").Value
Rem         .Add Name:="BisDat", Range:=rng
Rem         
Rem         Set rng = .Item("KBstNr").Range
Rem         rng.Text = rst.Fields("KBstNr").Value
Rem         .Add Name:="KBstNr", Range:=rng
Rem         
Rem         Set rng = .Item("KAnfrg").Range
Rem         If rst.Fields("KAnfrg").Value <> "" Then
Rem           rng.Text = rst.Fields("KAnfrg").Value
Rem         Else
Rem           rng.Text = "Damen und Herren"
Rem         End If
Rem         .Add Name:="KAnfrg", Range:=rng
Rem       End With
Rem     Else
Rem       MsgBox ("Auftragsdaten konnten nicht von INFOR übernommen werden!")
Rem     End If
Rem       '' Benutzerinfo aktualisieren (= alle Felder)
Rem       ThisDocument.Fields.Update
Rem   End If
Rem End Sub
Rem 
End Sub
 
Die Daten bzw. das Dokument ist neu. Bei Bereits vorhandenen geht es da er es 
ja nicht neu Ladet.
Kann man das Auskommentieren irgendwie verhindern bzw. umgehen?
 
 
freundliche Grüße/best regards

Martin Kulir
EDV-Organisation
Technik
 
JAF International Services Ges.m.b.H.
Gerbergasse 2
A-2000 Stockerau
Phone: +43 2266/605-62
Fax: +43 2266/605-185
mailto:[email protected] <mailto:[email protected]> 
Internet: http://www.frischeis.at/ <http://www.frischeis.at/> 
 

Antwort per Email an