Makale numarası: 906771 - Son Gözden Geçirme: 11 Mayıs 2007 Cuma - Gözden geçirme: 1.4

Bir dosyadan geri Currency veri türü değerlerini okumak için Visual Basic 2005 kullanamazsınız...

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Şu senaryoyu inceleyin:
  • Kullanıcı tanımlı bir yapı içindeki para birimi veri türü değerleri kullanarak.
  • Currency veri türü değerleri, bir dosyaya yazmak için Microsoft Visual Basic 6. 0'ı kullanın.
Bu senaryoda, para birimi veri türü değerlerinden geri dosyadan okumak için Microsoft Visual Basic 2005 kullanamazsınız.

Neden

Bu sorun, para birimi veri türü, Visual Basic 2005 ondalık veri türü olarak yükseltmeden nedeniyle oluşur. OA Currency veri türü değerleri oldukları gibi tek başına ondalık için veri türleri, Visual Basic 2005 g/Ç okuma ve yazma decimal veri değerleri yazın. Para birimi veri türü için kullanıcı tanımlı bir yapı içinde Visual Basic 2005 g/Ç okur ve bunları OA Currency veri türüne dönüştürmek istediğiniz ondalık veri türleri yazar değerlerdir. Bu, yanlış yazdığınız Visual Basic 6. 0'ı kullanarak dosyayı okumak, Visual Basic 2005 neden olur.

Pratik Çözüm

Bu soruna geçici bir çözüm için aşağıdaki yöntemlerden birini kullanın.

Yöntem 1

Para birimi veri türü değerlerinden dosyadan ayrı olarak, kullanıcı tanımlı yapısını yeniden okumak yerine yeniden okumak için Visual Basic 2005'i kullanın. Örneğin, aşağıdaki kodu.
Dim currencyValue As Decimal 
FileGet(1, currencyValue) 
MsgBox(currencyValue)
kullanın

Yöntem 2

Kullanıcı tanımlı yapısı içindeki bir ınt64 değerini kullanın. Ondalık veri türü değeri ınt64 değeri almak için daha sonra Decimal.FromOACurrency yöntemini kullanın. Bunu yapmak için şu adımları izleyin:
  1. Bir ınt64 değeri.
    Private Structure TypeWithCurrency
    	Public c As Int64
    End Structure
    kullanan bir yapısını oluşturmak için şu kodu kullanın.
  2. Dosyayı okumak için şu kodu kullanın ve sonra ondalık veri türü değeri ınt64 değeri. almak
    Dim t1 As TypeWithCurrency
    
    FileGet(1, t1)
    FileClose(1)
    
    Dim currencyValue As Decimal = Decimal.FromOACurrency(t1.c)
    MsgBox(currencyValue)
Not Değerleri dosyaya yazmak için Visual Basic 2005 kullanamazsınız ve sonra okumak için değerleri dosyadan yöntem 2'yi kullanarak geri. Değerleri dosyaya yazmak için Visual Basic 2005 kullanıyorsanız, para birimi veri türü, ondalık veri türü yerine değerleri olacaktır. Yöntem 2'yalnızca bir kez dosyasını değiştirmek için kullanılır.

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Daha fazla bilgi

Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitelerini ziyaret edin:
FileGet işlevi
http://msdn2.microsoft.com/en-us/library/3acfheek(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/3acfheek(vs.71).aspx)

Visual Basic'te yapısı bildirimi değişiklikleri
http://msdn2.microsoft.com/en-us/library/030kb3e9(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/030kb3e9(vs.71).aspx)

VB6 kodunuzu VB. NET'e geçiş
http://msdn2.microsoft.com/en-us/library/aa239677(VS.60).aspx (http://msdn2.microsoft.com/en-us/library/aa239677(VS.60).aspx)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional
  • 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
Anahtar Kelimeler: 
kbmt kbbug kbtshoot kbprb KB906771 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:906771  (http://support.microsoft.com/kb/906771/en-us/ )