Artikel-ID: 906771 - Geändert am: Freitag, 11. Mai 2007 - Version: 1.4

Sie können nicht Visual Basic 2005 verwenden, um die Währung die Datentypwerte wieder aus einer Datei lesen

SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Stellen Sie sich das folgende Szenario vor:
  • Verwenden Sie Währung Datentypwerte in einer benutzerdefinierten Struktur.
  • Verwenden Sie Microsoft Visual Basic 6.0, um die Währung die Datentypwerte in eine Datei zu schreiben.
Microsoft Visual Basic 2005 können Sie in diesem Szenario die Währung die Datentypwerte wieder Lesen der Datei.

Ursache

Dieses Problem, da der Currency -Datentyp dem Decimal -Datentyp in Visual Basic 2005 aktualisiert wird. Geben Sie für eigenständige Decimal Datentypen, die Visual Basic 2005 e/a-Lese- und Schreibvorgänge Decimal Daten Werte als wären Sie Datentypwerte OA Währung . Für Währung Datentypwerte sind, die innerhalb einer benutzerdefinierten Struktur, die Visual Basic 2005 e/A liest und schreibt die Decimal Datentypen ohne zu versuchen, einem OA Währung -Datentyp zu konvertieren. Dies führt Visual Basic 2005 nicht richtig lesen die Datei, die Sie mithilfe von Visual Basic 6.0 geschrieben haben.

Abhilfe

Verwenden Sie um dieses Problem zu umgehen, eine der folgenden Methoden.

Methode 1

Verwenden Sie Visual Basic 2005, um separat die Währung die Datentypwerte aus der Datei sichern, anstatt lesen wieder die benutzerdefinierte Struktur zu lesen. Beispielsweise verwenden Sie die folgenden Code.
Dim currencyValue As Decimal 
FileGet(1, currencyValue) 
MsgBox(currencyValue)

Methode 2

Verwenden Sie einen Int64 -Wert innerhalb der benutzerdefinierten Struktur. Verwenden Sie dann die Decimal.FromOACurrency -Methode, um den Wert des Datentyps Decimal aus Int64 -Wert abzurufen. Gehen Sie hierzu folgendermaßen vor:
  1. Verwenden Sie den folgenden Code, um eine Struktur erstellen, die ein Int64 Wert.
    Private Structure TypeWithCurrency
    	Public c As Int64
    End Structure
    verwendet
  2. Verwenden Sie den folgenden Code, die um in der Datei zu lesen, und rufen dann den Wert des Datentyps Decimal aus dem Int64 -Wert.
    Dim t1 As TypeWithCurrency
    
    FileGet(1, t1)
    FileClose(1)
    
    Dim currencyValue As Decimal = Decimal.FromOACurrency(t1.c)
    MsgBox(currencyValue)
Hinweis: Sie können Visual Basic 2005 schreiben die Werte in die Datei und anschließend zum Lesen die Werte wieder aus der Datei mit Methode 2. Wenn Sie Visual Basic 2005, verwenden um die Werte in die Datei zu schreiben, werden die Werte im Decimal -Datentyp anstelle des in der Währung -Datentyp. Methode 2 kann nur verwendet werden, um die Datei einmal ändern.

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Weitere Informationen finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Websites:
FileGet-Funktion
http://msdn2.microsoft.com/en-us/library/3acfheek(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/3acfheek(vs.71).aspx)

Struktur Deklaration Änderungen in Visual Basic
http://msdn2.microsoft.com/en-us/library/030kb3e9(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/030kb3e9(vs.71).aspx)

Migrieren des VB6-Codes in VB .NET
http://msdn2.microsoft.com/en-us/library/aa239677(VS.60).aspx (http://msdn2.microsoft.com/en-us/library/aa239677(VS.60).aspx)

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Express Edition
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
Keywords: 
kbmt kbbug kbtshoot kbprb KB906771 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 906771  (http://support.microsoft.com/kb/906771/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.