Het 'opschonen' van informatie voordat je deze in je database importeert, is vrij standaard. Je bent immers een van de redenen waarom je een database gebruikt, zodat je deze op een voorspelbare manier kunt doorzoeken op basis van vooraf vastgestelde criteria, toch? Maar hoe ga je om met externe situaties, bijvoorbeeld wanneer je informatie moet importeren uit een bestand waar iemand '$' invoert, maar een ander ervan uitgaat dat het om een geldbedrag gaat? Of erger nog, wanneer iemand 'am' of 'pm' invoert, maar een ander de 24-uursklok gebruikt? Zoals altijd zijn er talloze manieren om dit probleem aan te pakken, maar één manier is om te controleren of een tekenreeks alleen uit getallen bestaat, of dat deze ook 'niet-getallen' bevat. Met een beetje VBA is dit soort controle eenvoudig – en dit artikel laat je zien hoe eenvoudig dat is.
Waarom hebben we dit nodig?
Als je gegevens importeert waar je geen controle over hebt hoe ze worden ingevoerd of opgehaald, dan ben je dit probleem vast al heel vaak tegengekomen: mensen voeren gegevens in op de manier die hen het meest comfortabel lijkt, niet op een uniforme manier. Dit betekent dat het slechts een kwestie van tijd is voordat je... maken het uniform voordat u het kunt importeren.
Een typisch voorbeeld hiervan is waar u gegevens in een numeriek veld moet importeren, maar als u naar de gegevens kijkt, ziet u dat sommigen duizenden hebben gescheiden door komma's, anderen een valutateken hebben toegevoegd - en wie weet wat nog meer.
Een korte waarschuwing!
Het importeren van gegevens die niet zijn opgeschoond in uw database kan behoorlijk rampzalig zijn - in het beste geval kan het uw rapportage vertekenen, en erger nog kan er van alles kapot gaan - laat 'vuile' gegevensimport niet de reden zijn dat u probeer het fix Toegangsprobleem het hele weekend!
Hoe u alfabetische tekens kunt verwijderen
U kunt natuurlijk handmatig zoeken en vervangen, maar dat kan even duren en u kunt heel goed iets missen (als u bijvoorbeeld alleen naar dollartekens zoekt, mist u misschien het euroteken of komma's, spaties, enz.) . Dus de eenvoudigste en betrouwbaarste manier om dit te doen, is door Access het harde werk te laten doen met behulp van de onderstaande code.
Op de code ...
Public Function removeNonNumeric(inString As String) As Long Dim outputString, chrString As String Dim strPos As Integer For strPos = 1 To Len(inString) chrString = Mid(inString, strPos, 1) If IsNumeric(chrString) Then outputString = outputString & chrString Next removeNonNumeric = CLng(outputString) End Function
Wat de code doet

De code aanpassen aan uw wensen
Zoals je kunt zien - de functie retourneert het gegevenstype "lang" - als je werkt met gehele getallen, of drijvende komma's enz., Dan wil je de functie dienovereenkomstig wijzigen zodat het het juiste type waarde voor je database retourneert.
Auteur Introductie:
Mitchell Pond is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder reparatie SQL Server databank en Excel-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com