Nasıl yapılır: Visual Basic Applications 2000 yılı hazırlık

Makale çevirileri Makale çevirileri
Makale numarası: 162718 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Geliştirici olarak, uygulamalarınızın 12/31/1999 ötesinde tarihleri nasıl işleyeceğini hakkında endişe olabilir. Ocak 1 2000 yılı, programlarınızı 2000, 1900 veya hatta 1980 yılı olduğu mi düşünüyorsunuz? Bu makalenin amacı, Visual Basic uygulamalarının düzgün 12/31/1999 ötesinde tarihleriyle davranacaktır sağlamaktır.

Daha fazla bilgi

Visual Basic'ın tüm sürümlerinde, yılların (dört haneli biçimde) 1999'dan büyük işleyeceğini olsa da, iki basamaklı bir yıl (örneğin, 7/3/45) tarihteki geçirmeden Visual Basic'te, tarihe karşılık gelen hangi yüzyıl varsayalım zorlar. Belki de hızlı bir Visual Basic geçmiş Ders vermek için bu davranış açıklamak için en iyi yolu olabilir.

Visual Basic geçmiş dersi

' Ün tüm sürümleri Windows (DOS ve QuickBasic için Visual Basic gibi öncülleri dahil) için Visual Basic öncesinde ve 3.0 dahil olmak üzere, iki basamaklı yılları her zaman içinde 1900s kabul. Bu varsayılan uygulamak için kodu, her sürümü kendi çalışma kitaplığa oluşturuldu ve işletim sistemi sürümünü veya geçerli sistem tarihini, yüzyıl bağlıdır.

Geliştirme döngüsü için Visual Basic 3.0 ve 4.0 arasında iki yeni varlık ismiyle: Visual Basic for Applications ve OLE Otomasyonu. Bu teknolojiler geliştirilirken önce Visual Basic'ın çalışma zamanı kitaplığı sorumlu bir, iki basamaklı yıl için dört basamaklı bir yıl dönüştürmek için kod içeriyor. OLE Otomasyonu önemli miktarda diğer uygulamalara erişebilecek işlevi sunuldu. Visual Basic for Applications bu kod yapması gerekir değil; OLE Otomasyonu kitaplıklarına yerine çağrılarınızı.

Visual Basic 4.0 ile bu birlikte çalışabilirliği düşünülerek geliştirilmiştir ve çoğu durumda, dört basamaklı yılları iki basamaklı yılları dönüştürmek için OLE Otomasyonu kitaplıkları kullanan kılmıştır. Kuralın istisnası Visual Basic çalışma zamanı kitaplığındaki uygulanmıştır, Visual Basic OLE Otomasyonu kitaplığı, o anda sağlayabilir çok daha fazla işlevsellik gerekli olduğu DateSerial işlevdir.

Visual Basic 4.0 geliştirme döngüsü sırasında Microsoft, Visual Basic önceki sürümlerinde kullanılan varsayılan değerleri güvenilir, ancak mutlaka pratik karar verdiniz. Bu nedenle, yeni bir kural ismiyle. Iki basamaklı bir yıl için ", sistem tarihi geçerli yüzyıl dönüştürülür. Bu nedenle, Year(Date("1/1/00")) için geçerli olan yüzyıl değerlendirmeniz. Yeni kuralın, Visual Basic 4.0 ile Visual Basic for Applications kullanılan OLE Otomasyonu kitaplıklarında kullanılmıştır. Visual Basic 4.0 çalışma zamanı kitaplığı, DateSerial işlevi kuralı da uygular.

Daha sonra Microsoft reconsidered ve varsayılan olarak OLE Otomasyon değiştirildi (artık yalnızca Automation) kitaplıklarını OleAut32.dll 2.20.4049 sürümü. Bu değişiklik, otomasyon kitaplıkları üzerinde yalnızca 32-bit uygulamalar kullanan, 16-bit uygulamaları etkilemez. Şimdi, 30 ile 99 (örneğin, 72) arasındaki iki basamaklı bir yıl 1972 yorumlanır sırada 00 (17 gibi) 29 arasındaki iki basamaklı bir yıl 2017 yorumlanır. Yeni Otomasyon kitaplıkları, Visual Basic DateSerial işlevi için gereken işlevleri sağlar. Bu nedenle, Visual Basic 5.0 ve sonraki sürümler artık bu işlev için kurallar, çal??ma zaman? kitaplıklarında uygular.

Güncelleştirilmiş Otomasyon kitaplığı, ınternet Explorer sürüm 3.0 ve sonraki sürümleri, Windows NT 3.51 Service Pack 5, Windows NT 4.0, Windows 95 OSR 2, Office 97, Visual Basic 5.0 ve diğer ürünleri ile birlikte gelir.

Ne tümü bu ortalama, Visual Basic kullanma kim Developers mu?

Tüm iki basamaklı yılları, Visual Basic 3.0 ve önceki sürümler için 1900s dönüştürün.

Visual Basic 4.0 (16-bit) tüm iki basamaklı yılları, geçerli sistem tarihini yüzyıl ilgili olarak için dönüştürür. Kullanılan işlev bağlı olarak, Visual Basic veya 16-bit Otomasyon kitaplıkları, hem de çalışma zamanı kitaplığı varsayılanları temel alan tarih dönüştürür. 16-Bit Otomasyon kitaplıklarında varsayılanları, bu yana, Visual Basic 4.0 davranışı hangi tarih işlevi kullanılan bağımsız olarak tutarlı olacak şekilde serbest değiştirilmeyen.

Visual Basic 4.0 dışındaki tüm iki basamaklı yılları geçerli sistem tarihini yüzyıl ilgili olarak için dönüştüren DateSerial işlevini kullanarak, otomasyon kitaplıklarında varsayılan temel dört haneli yılları iki basamaklı yılları (32-bit) dönüştürür. Visual Basic 4.0 yayýmlandý㠰 ã½nda sevk 32-bit Otomasyon kitaplıkları (sürüm 2.10 OleAut32.dll) tüm iki basamaklı yılları, geçerli sistem tarihini yüzyıl ilgili olarak için dönüştürülür. 30 Ile 99 iki basamaklı yıl olması durumunda sonraki 32-bit Otomasyon kitaplıkları (OleAut32.dll sürüm 2, 20 ve daha sonra), iki basamaklı yılları için 1900s dönüştürün. 00 Ile 29 iki basamaklı yıl ise, bu tarih için 2000s dönüştürülür.

Visual Basic sürümleri için 4.0, convert iki basamaklı yılları dört basamaklı yılları tüm tarih işlevleri için <a1>Otomasyon</a1> kitaplıklarındaki varsayılan temel yayınlandıktan sonra. Visual Basic 5.0, 30 ile 99 iki basamaklı yıl olması durumunda, iki basamaklı yılları için 1900s dönüştürür 2.20.4054 sürümüyle birlikte gelir. 00 Ile 29 iki basamaklı yıl ise, bu tarih için 2000s dönüştürülür.

Ne venliği TıKLATTıĞıMDA bu Varsayılanları LIKE verme?

Varsayılan Visual Basic'e yerel güvenmek yerine, kendi kural kümesi kullanmak isteyebilirsiniz. Örneğin, yalnızca iki basamaklı bir yıl girin ve 00 için olan yıllar için 2000 2049 karşılık gelir ve 50 1950 ile 1999 yılları için karşılık gelen 99 sahip 49 isteyebilirsiniz.

Bir tarih dizesi kullanıcı kabul ettiğinizde, biçim dizesi yıl için girilen basamak sayısını belirlemek için sınayın. Bu örnek uygulama için kurallarına göre 1/11/45 yılında 2045 yıldaki değil 1945 ise. Uygulama kodu, uygun dört haneli yıl kullanılacak dizeyi değiştirin ve sonra bir tarih değişkeni dört basamaklı yıl, bir tarih dizesi dönüştürün.

Örnek kod

Aşağıdaki kod cmdConvertDate tıklattığınızda txtDate adlı bir metin kutusu girilmiş veriyi değerlendirir. Tarihi bir, iki basamaklı yıl değerini içeriyorsa, tarih örnek kurala göre dört haneli yıl tarihi dönüştürülecek. Kodunu, daha sonra tam yıl koda göre örnek kural tarafından dönüştürülmüş olarak girilen bir başlangıç tarihi görüntüler ve tam yıl Visual Basic'e yerel varsayılan değerler olarak dönüştürülür. Son olarak, txtDate içinde görüntülenen tarih uygun dört haneli yıl belirsiz olmayan bir tarihle dönüştürülür.

Iki basamaklı yılları yorumlamak için kendi kurallarınızı işlemek için kod geliştirilmiş bir kez denetime 32-bit özel ile denetim oluşturma Edition'ın Visual Basic bu kodu oluşturabilirsiniz. Bu ürün ve kendi özel denetimler oluşturma hakkında daha fazla bilgi için lütfen adresindeki Microsoft Visual Basic Web sitesine bakın:

http://www.microsoft.com/vbasic

Bu kod aa/gg/yy biçiminde tarih girilmesini gerektirir, ancak farklı bir tarih biçiminde işlemek üzere kolayca değiştirilemedi:

   Private Sub cmdConvertDate_Click()
       Dim strYear As String
       Dim intSlash As Integer
       If IsDate(txtDate) or txtDate = "2/29/00" Then
           'Find first date separator.
           intSlash = InStr(txtDate, "/")
           If intSlash > 0 Then
               'Find second date separator.
               intSlash = InStr(intSlash + 1, txtDate, "/")
               If intSlash > 0 Then
                   'Extract the year from the date.
                   strYear = Mid(txtDate, intSlash + 1)
                   If Len(strYear) = 2 Then
                       If CInt(strYear) < 50 Then
                       ' Less than 50: year = 20XX.
                           strYear = "20" & strYear
                       Else
                       ' Greater than 50: year = 19XX.
                           strYear = "19" & strYear
                       End If
                   End If
                   MsgBox "Date Entered: " & txtDate
                   MsgBox "Year (Our Rule): " & strYear
                   MsgBox "Year (VB Default): " & Year(txtDate)
               Else
                   MsgBox "Date not in expected format!"
               End If
           Else
               MsgBox "Date not in expected format!"
           End If
       Else
           MsgBox "Not a valid date!"
       End If
       '  Clarify date in txtDate.
       txtDate.Text = Left(txtDate.Text, intSlash) & strYear
   End Sub
				

Referanslar

Microsoft Visual Basic Yardım; dosya üzerinde arama: tarih ve varyant veri türleri; ısdate işlevi; CDate ve CVDate işlevleri;

(c) 1997 Microsoft Corporation, tüm hakları saklıdır. Katkıyı David Sceppa, Microsoft Corporation

Özellikler

Makale numarası: 162718 - Last Review: 21 Şubat 2014 Cuma - Gözden geçirme: 3.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic 2.0 Standard Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 1.0 Standard Edition
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbhowto KB162718 KbMttr
Machine-translated Article
Ö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:162718

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com