Je bent nu offline; er wordt gewacht tot er weer een internetverbinding is

Visual Basic-toepassingen voor het jaar 2000 voorbereiden

BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.

De Engelstalige versie van dit artikel is de volgende: 162718
Dit artikel is gearchiveerd. Het wordt aangeboden in de huidige vorm en wordt niet meer bijgewerkt.
Samenvatting
Als een ontwikkelaar u mogelijk over hoe uw toepassingen wordt betrokkendatums na 31-12-1999 worden verwerkt. Op 1 januari van het jaar 2000, zal uwprogramma's vindt u dat het jaar 2000, 1900 of zelfs 1980 is? Het doel van dezeartikel is ervoor te zorgen dat Visual Basic-toepassingen wordt gedragen.goed met datums na 31-12-1999.
Meer informatie
Terwijl alle verwerkt versies van Visual Basic jaar groter is dan (in 1999een viercijferige notatie) doorgeven van een twee-cijferig jaar in een datum (bijvoorbeeld 3-7/45)Forceert aannemen welke eeuw de datum komt overeen met Visual Basic. MisschienLeg dit probleem het beste zou zijn om een snelle Visual Basicgeschiedenisles.

Visual Basic geschiedenisles

Voor alle versies van Visual Basic voor Windows (met inbegrip van de voorafgaande takenzoals Visual Basic voor DOS en QuickBasic) voorafgaand aan en inclusief 3.0tweecijferige jaren zijn altijd uitgegaan in het deze. De codeImplementeer deze standaard is ingebouwd in elke versie Runtime-bibliotheek enis niet afhankelijk van de versie van het besturingssysteem of de eeuw vande huidige systeemdatum.

Tussen de ontwikkelingscycli voor Visual Basic 3.0 en 4.0 twee nieuweentiteiten ontstaan: Visual Basic for Applications- en OLE-automatisering. Voorafgaandemet de komst van deze technologieën, Visual Basic runtime librarybevat de code die verantwoordelijk zijn voor het converteren van een twee-cijferig jaar eenjaar van vier cijfers. OLE-automatisering blootgesteld uitgebreide functionaliteit dietoegang tot andere toepassingen. Visual Basic for Applications hoeft nietvoor de uitvoering van deze code; het maken aanroepen van de OLE Automation-bibliothekenin plaats daarvan.

Visual Basic 4.0 is ontwikkeld met deze interoperabiliteit rekening en begonnenafhankelijk van de OLE Automation-bibliotheken tweecijferige jaren te converterenviercijferige jaren in de meeste gevallen. De uitzondering op de regel is de DateSerialfunctie die is geïmplementeerd in de Visual Basic runtime library omdatVisual Basic vereist meer functionaliteit dan de OLE Automation-bibliotheekop dat moment kan bieden.

Tijdens de ontwikkelingscyclus van Visual Basic 4.0 heeft Microsoft besloten dat destandaardwaarden worden gebruikt in eerdere versies van Visual Basic waren maar niet betrouwbaaraltijd praktisch. Dus ontstaan een nieuwe regel. Een twee-cijferig jaartal zou zijn.geconverteerd naar de huidige eeuw van de systeemdatum. DusYear(Date("1/1/00")) zou de huidige eeuw opleveren. Deze nieuwe regelin de OLE Automation-bibliotheken gebruikt door Visual Basic 4.0 is geïmplementeerden Visual Basic for Applications. De Visual Basic 4.0 runtime libraryook implementeert de regel voor de functie DateSerial.

Microsoft later onderzocht en gewijzigd standaard in OLE-automatisering(nu gewoon automatisering) bibliotheken op versie 2.20.4049 van het bestand OleAut32.dll.Deze wijziging heeft geen invloed op de 16-bits toepassingen die afhankelijk van de automatisering zijnbibliotheken alleen 32-bits toepassingen. Nu, een jaar van twee cijfers tussen 00 en29 (bijvoorbeeld 17) is geïnterpreteerd als 2017 tijdens een twee-cijferig jaartal tussen 30en 99 (bijvoorbeeld 72) is geïnterpreteerd als 1972. De nieuwe bibliotheken automatiseringde functionaliteit die Visual Basic voor de DateSerial vereistfunctie. Dus, Visual Basic 5.0 en latere versies niet meerregels voor deze functie implementeren in hun runtimebibliotheken.

De bijgewerkte Automation-bibliotheek wordt geleverd met Internet Explorer versie 3.0 enlater Service Pack 5 voor Windows NT 3.51, Windows NT 4.0, Windows 95 OSR 2Office 97, Visual Basic 5.0 en andere producten.

Wat doet deze gemiddelde alle ontwikkelaars die Visual Basic gebruiken?

Visual Basic 3.0 en eerdere versies converteren alle tweecijferige jaren aan dedeze.

Alle tweecijferige jaren converteert Visual Basic 4.0 (16-bits) naar de eeuw vande huidige systeemdatum. Afhankelijk van de functie gebruikt Visual Basicconverteert de datum die is gebaseerd op de standaardinstellingen in een 16-bits automatiserenbibliotheken of de runtime library. De standaardinstellingen in de 16-bits automatiseringbibliotheken niet zijn gewijzigd sinds u Visual Basic 4.0 uitgebracht dat degedrag is consistent ook welke datumfunctie is gebruikt.

Visual Basic 4.0 (32-bits) converteert tweecijferige jaren om jaartallen met vier cijfersop basis van de standaard in de bibliotheken van automatisering, behalve wanneer u deDateSerial, functie die alle tweecijferige jaren naar de eeuw van converteert dehuidige datum. De 32-bits automatisering bibliotheken (OleAut32.dll versie2.10) die wordt geleverd bij Visual Basic 4.0 is uitgebracht alle geconverteerdtweecijferige jaren de eeuw van de huidige systeemdatum. Hoger 32-bitsAutomatisering-bibliotheken (OleAut32.dll 2,20 en hoger) converterentweecijferige jaren de deze als het jaar van twee cijfers tussen 30 en 99. Alsde twee-cijferig jaartal is tussen 00 en 29, wordt de datum geconverteerd naar de2000S.

Visual Basic-versies na 4.0, converteren tweecijferige jaartallen met vier-op basis van de standaard in de bibliotheken automatisering voor alle datum-cijferig jaarfuncties. Visual Basic 5.0 wordt geleverd bij versie 2.20.4054 converteerttweecijferige jaren de deze als het jaar van twee cijfers tussen 30 en 99. Alsde twee-cijferig jaartal is tussen 00 en 29, wordt de datum geconverteerd naar de2000S.

Wat als bevalt me niet de standaardinstellingen?

U wilt uw eigen set regels gebruikt niet vertrouwen op destandaard in Visual Basic. U wilt bijvoorbeeld Voer alleen eentwee-cijferig jaartal en hebben 00 tot en met 49 komen overeen met de jaren 2000 tot 2049 en50-99 overeenkomen met de jaren 1950-1999 hebben.

Wanneer een datumreeks van de gebruiker accepteren, test u de indeling van de tekenreeksbepalen van het aantal cijfers voor het jaar ingevoerd. Volgens dede regels voor deze voorbeeldtoepassing 11-1-45 jaar 2045, is en niet inhet jaar 1945. De tekenreeks te wijzigen binnen de code voor de toepassinghet juiste jaar vier cijfers te gebruiken en vervolgens die datum converteren met dejaar van vier cijfers in een variabele.

Voorbeeldcode

De volgende code evalueert de ingevoerde gegevens in een tekstvak met de naam txtDateWanneer u klikt op cmdConvertDate. Als de datum waarop een twee-cijferig jaartal bevat dedatum geconverteerd naar een datum jaartal met vier cijfers van de regel van het monster.Vervolgens wordt de eerste datum, het volledige jaar als geconverteerdde code van de regel van het monster en het volledige jaar geconverteerd doorde standaardinstellingen in Visual Basic. Ten slotte, de datum weergegeven in txtDatewordt geconverteerd naar een datum dubbelzinnig met het juiste jaar met vier cijfers.

Nadat u hebt ontwikkeld code voor het verwerken van uw eigen regels voor de interpretatie van tweejaartallen, kunt u die code maken in een 32-bits aangepast besturingselement met deControl Creation Edition van Visual Basic. Voor meer informatie over dezeproduct en Zie de Microsoft voor het bouwen van uw eigen aangepaste besturingselementenVisual Basic-website op:

http://www.Microsoft.com/vbasic

Deze code is vereist dat de datums worden ingevoerd in de notatie dd-mm-jj, maarkan eenvoudig worden gewijzigd om een andere datumnotatie:

   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				
Referenties
Microsoft Visual Basic Help-bestand. Zoeken op: datum en een Variant-gegevenstypen;IsDate, functie; CDate en CVDate functies;

(c) Microsoft Corporation, 1997, alle rechten voorbehouden.Bijdragen door David Sceppa, Microsoft Corporation
IsDate jaar 2000 CDate datum Y2K

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 162718 - Laatst bijgewerkt: 02/22/2014 06:46:46 - Revisie: 3.0

Microsoft Visual Basic 6.0 Professional Edition, 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 2.0 Standard Edition, Microsoft Visual Basic 3.0 Professional Edition, Microsoft Visual Basic 1.0 Standard Edition

  • kbnosurvey kbarchive kbhowto kbmt KB162718 KbMtnl
Feedback