Hej! Har stött på patrull läser in en tab separerad fil till en databas med hjälp av split funktionen nu till mitt problem. Vissa indata fält innehåller paranteser och punkter har löst detta med en select case men när resterande data ska läsas in vill jag undvika att siffran noll läses in, vill ha tomma fält. Fält 10 ,12, 13 är numreriska fält. Studera koden nedan och se efter om ni hittar nån lösning. Jag har inte testat detta för Access XP men det borde fungera (fast det brukar det aldrig göra just när man tror att det borde det). Tanken är att helt enkelt låta bli att tilldela tabell.Fields(i).Value någonting alls om du vill att fältet ska bli null. Null-värden just för numeriska fält stöds väldigt olika i olika databaser har jag bistert fått erfara. Vad säger man, tack ska du ha det funkar precis som jag ville :)Undvika att läsa in "Nollor" i en databas.
<code>
minArray = Split(rad, vbTab)
For i = 0 To UBound(minArray) '14 fält i filen
Select Case i 'Om indatan innehåller () eller . filtreras det bort
Case 2
flt = Mid(minArray(i), InStr(1, minArray(i), "(", vbTextCompare) + 2, 2)
tabell.Fields(i).Value = Fix(Val(flt))
Case 6
flt = Mid(minArray(i), 1, InStr(1, minArray(i), ".", vbTextCompare))
tabell.Fields(i).Value = Fix(Val(flt))
Case 9
flt = Mid(minArray(i), 1, InStr(1, minArray(i), ".", vbTextCompare))
tabell.Fields(i).Value = Fix(Val(flt))
Case Else
tabell.Fields(i).Value = Fix(Val(minArray(i)))
End Select
Next i
</code>Sv: Undvika att läsa in "Nollor" i en databas.
<code>minArray = Split(rad, vbTab)
For i = 0 To UBound(minArray) '14 fält i filen
Select Case i 'Om indatan innehåller () eller . filtreras det bort
Case 2
flt = Mid(minArray(i), InStr(1, minArray(i), "(", vbTextCompare) + 2, 2)
tabell.Fields(i).Value = Fix(Val(flt))
Case 6
flt = Mid(minArray(i), 1, InStr(1, minArray(i), ".", vbTextCompare))
tabell.Fields(i).Value = Fix(Val(flt))
Case 9
flt = Mid(minArray(i), 1, InStr(1, minArray(i), ".", vbTextCompare))
tabell.Fields(i).Value = Fix(Val(flt))
Case Else
If Fix(Val(minArray(i))) <> 0 Then tabell.Fields(i).Value = Fix(Val(minArray(i)))
End Select
Next i</code>Sv: Undvika att läsa in "Nollor" i en databas.
/Mats