The decimal data type is not supported by the current versions of Access, with the exception of variant type variables with decimal subtypes. (It will become a native data type in VB.NET late this year, and presumably in the subsequent release of Office.)
If 4 decimal places are enough for your need, try using a Currency datatype. Although it is stored as a binary number, it is scaled, which means you won't have rounding errors converting between decimal and binary.
If you need more decimals than that, you'll have to use a Long and scale it yourself. That means that internally, it's stored as a binary integer, and you do all integer arithmetic, which avoids the base conversion problem. When you input or output the value, you'll have to multiply or divide, respectively, by 10 to the nth power, where n is the number of decimal places you need. You'll also have to do something similar when multilpying or dividing internally, since the results of these operations have a different number of decimal places than their operands. That is, if you multiply together two 3-decimal numbers that have been scaled to integers, the resulting integer must be interpreted as having 6 decimal places, and you have to round and adjust it back to 3. Rick Sprague