MS Access Data Type Number Greater Than 28

%3CLINGO-SUB%20id%3D%22lingo-sub-2747297%22%20slang%3D%22en-US%22%3EMS%20Access%20Data%20Type%20Number%20Greater%20Than%2028%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2747297%22%20slang%3D%22en-US%22%3E%3CP%3EWhen%20linking%20via%20ODBC%20to%20Snowflake%2C%20field%20is%20Number(38%2C0)%20and%20is%20linking%20at%20Short%20Text.%26nbsp%3B%20I%20thought%20Large%20Number%20Data%20Type%20would%20be%20the%20answer%2C%20but%20Microsoft%20says%20no%20and%20to%20recommend%20to%20their%20Engineering%20team%20the%20need%20to%20have%20this%20work.%26nbsp%3B%20The%20maximum%20number%20length%20apparently%20is%2028%20for%20linking%3B%20beyond%20this%20it%20shows%20up%20as%20Short_Text%20data%20type.%26nbsp%3B%20Any%20help%20or%20work%20arounds%20appreciated.%26nbsp%3B%20I%20can't%20join%20or%20use%20for%20calculations%20when%20it's%20short_text.%26nbsp%3B%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2747297%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAccess%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EOffice%20365%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2747483%22%20slang%3D%22en-US%22%3ERe%3A%20MS%20Access%20Data%20Type%20Number%20Greater%20Than%2028%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2747483%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F1154820%22%20target%3D%22_blank%22%3E%40chantaloconnor%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3CP%3EOne%20thing%20you%20could%20try%20is%20coercing%20it%20to%20an%20appropriate%20number%20data%20type%20for%20the%20join.%3C%2FP%3E%3CP%3EHowever%2C%20I'm%20not%20sure%20what%20you%20mean%20by%20%22%3CSTRONG%3E%3CEM%3ENumber%3C%2FEM%3E%3C%2FSTRONG%3E(38%2C0)%22%2C%20so%20I'm%20not%20sure%20about%20this.%20Are%20you%20referring%20to%20what%20would%20actually%20be%20%3CSTRONG%3E%3CEM%3EDecimal%3C%2FEM%3E%3C%2FSTRONG%3E(28%2C0)%20or%20%3CSTRONG%3E%3CEM%3EDecimal%3C%2FEM%3E%3C%2FSTRONG%3E(38%2C0)%20in%20the%20Access%20table%3F%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EAlso%20what%20is%20the%20data%20type%20of%20the%20field%20you%20want%20to%20use%20in%20this%20join%3F%20There%20are%20several%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Foffice%2Fvba%2Flanguage%2Fconcepts%2Fgetting-started%2Ftype-conversion-functions%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3Econversion%20functions%26nbsp%3B%3CSTRIKE%3Eexpressions%3C%2FSTRIKE%3E%3C%2FA%3E%2C%20one%20of%20which%20should%20be%20appropriate.%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E
New Contributor

When linking via ODBC to Snowflake, field is Number(38,0) and is linking at Short Text.  I thought Large Number Data Type would be the answer, but Microsoft says no and to recommend to their Engineering team the need to have this work.  The maximum number length apparently is 28 for linking; beyond this it shows up as Short_Text data type.  Any help or work arounds appreciated.  I can't join or use for calculations when it's short_text.  

4 Replies

@chantaloconnor 

One thing you could try is coercing it to an appropriate number data type for the join.

However, I'm not sure what you mean by "Number(38,0)", so I'm not sure about this. Are you referring to what would actually be Decimal(28,0) or Decimal(38,0) in the Access table? 

 

Also what is the data type of the field you want to use in this join? There are several conversion functions expressions, one of which should be appropriate. 

 

@George Hepworth Snowflake has fields set to Number(38,0).   First photo below.  When linking this table (second screen shot), it shows up as short text.  On the second photo below, the yellow highlighted fields are ones I would join on ... getting data type mismatch error.  I think the only thing I can do is use the conversion functions as you mentioned.  The Snowflake numeric max is 38, and is used for a large number of fields.  The conversion functions will be a challenge to apply to so many fields I need to use in my queries (linking, calculations, etc).  I was hoping there was a better solution.  My hope is that Microsoft would consider the 38 length numeric value, considering the potential for those linking via ODBC to Snowflake.  Thank you.

chantaloconnor_1-1632141916801.png

 

chantaloconnor_2-1632141956373.png

 

 

There is no way to handle these in Access. Maximum for Decimal is, as you have found out, 28 digits. The only option would be to manipulate those number via Pass-Through queries.

@chantaloconnor 

Thank you for clarifying. As Gustav noted, the max precision for decimals in Access is 28, although SQL Server and other server based RSBMS's support 38. In other words, MS does support the greater precision in SQL Server, just not in Access.

I wasn't aware, though, that Snowflake (and perhaps other databases?) refer to it as a more generic "number" instead of "decimal". 
One other though occurs to me, although it's probably not feasible. I might see if I could create views that convert those fields to the Number(28,0) precision and use those views in Access instead of the original tables.