Announcement

Collapse
No announcement yet.

Bedeutung von OLE Error 800AC472

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bedeutung von OLE Error 800AC472

    Kennt jemand die Bedeutung dieses OLE Fehlers?

    In meinem Programm (in Delphi 6) übertrage ich von Zeit zu Zeit ein paar Daten in eine Excel Tabelle. Klappt soweit auch, nur habe ich hin und wieder diesen OLE Fehler in meiner LOG-Datei.

    Der Fehler tritt manchmal ein paar Minuten nach Programmstart oder aber erst nach Stunden auf.

    Die Daten werden folgendermaßen übergeben:

    var
    S: string;
    xlCol: integer;
    xlRow: integer;
    xlRange: Excel2000.Range;
    ...
    xlRange.Item[xlRow,xlCol] := S;
    ...

    Tritt der Fehler auf, wird der neue Wert nicht in die Spalte der Tabelle eingetragen.

    Das Problem habe ich unter Win2K mit Excel 8 und 9 sowie unter WinXP mit Excel 10 feststellen können.

    Wenn ich die Bedeutung des Fehlers wüßte, käme ich ev. schon weiter.

    Von Mircosoft bekam ich nur die Aussage, daß wahrscheinlich ein Parameter falsch sein. Warum das Programm dann aber stundenlang funktionieren kann, wußte man sich auch nicht zu erklären.

  • #2
    Habe ich das richtig verstanden: Wenn Du das selbe Ausgangs- und Zieldokument immer wieder nimmst, also absolut gleiche Ausgangsbedingungen schaffst, tritt der Fehler trotzdem zu unterschiedlichen Zeitpunkten auf?<p>
    Falls nicht, könnte Dir sicher geholfen werden, ansonsten sieht es echt schlecht aus.<p>
    Schöne Grüße, Mario Noac
    Schöne Grüße, Mario

    Comment


    • #3
      Ja. Der Fehler tritt immer wieder auf aber eben zu unterschiedlichen Zeiten. Manchmal wurden schon zig Daten übertragen bevor es zum Fehler kommt.

      Wie gesagt, ich bin erst mal nur an der Bedeutung des Fehlers interessiert

      Comment


      • #4
        Naja, ich könnte mir vorstellen, dass der Fehler sagen will: Der Datentyp passt nicht in die Zelle.<p>
        Aber das hat meine Frage leider nicht beantwortet. Wenn Du die gleiche Situation mit den identischen Daten nachstellst, tritt der Fehler immer an einer anderen Stelle auf oder hast Du nur Probleme ihn zu lokalisieren, weil Du die Ausgangsbedingung nie 100%ig wieder herstellst?<p>
        Dein Problem könnte daher rühren, dass in S nicht das drin ist, was Du erwartest. Das ist aus Deinem Code-Schnipsel aber nicht zu erkennen.<p>
        Schöne Grüße, Mario Noac
        Schöne Grüße, Mario

        Comment


        • #5
          Daß der Datentyp nicht in die Zelle paßt, glaube ich nicht. Es sind nur formatierte Zahlen wie zum Beispiel '100' oder '19,25'. Und meistens funktioniert es ja auch.

          Es hat nichts mit dem Komma zu tun!

          Also der Fehler muß was anderes aussagen. Schade daß MS mir nichts dazu sagen konnte. Die sollten es doch am Besten wissen.

          Mit identischen Daten habe ich es noch nicht probiert.

          In S ist immer das drin was ich erwartet habe

          Comment


          • #6
            Ist der Inhalt sicher nie leer? Also nicht '', sonder NULL.<p>
            Knallte es denn überhaupt in dieser Zeile: <i>xlRange.Item[xlRow,xlCol] := S;</i><p>
            Wie hast Du mit MS Kontakt aufgenommen und das Problem geschildert, dass Sie Dir so gar nicht helfen konnten?<p>
            Schöne Grüße, Mario Noac
            Schöne Grüße, Mario

            Comment


            • #7
              Hallo,

              &gt;Kennt jemand die Bedeutung dieses OLE Fehlers?

              Hinter dem HRESULT-Wert 0x800AC472 ( -2146777998 ) verbirgt sich der folgende Text: "<i>This 800ac472 is a FACILITY_CONTROL (HRESULT_SEVERITY = 1 and HRESULT_CODE = c472) error that is specific to the control's interface that returned this error. See the documentation of the interface that returned this error for information about this HRESULT.</i>). Es ist also ein Interface-spezifischer Fehler, der in diesem Fall nur von Excel selbst interpretiert wird

              Comment


              • #8
                Der Inhalt ist NIE leer bzw. dann wird nichts gesendet, denn die alten Daten sollen erhalten bleiben.

                Ich hatte übrigens früher immer den Typ Single für S genommen. Klappte genauso wenig.

                Diese Zeile ist eingebettet in einen try-except Block. Im Except-Teil schreibe ich in die Log-Datei.

                Kenne zwei Programmierer bei MS in Bayern. Normalerweise konnten die mir in solchen Fällen immer helfen

                Comment

                Working...
                X