Max Wanadoo
max.wanadoo at gmail.com
Mon Jan 14 08:42:15 CST 2008
Function x(y As Variant) As String If y & "!" = "!" Then x = "" Else x = y End If End Function Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, January 14, 2008 2:27 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Data type mismatch I think it is where you use the + and not the &. Mynull + mystring gives a null Mynull & mystring gives mystring Function x() Dim y As Variant, s As String y = Null s = "abc" Debug.Print y + s Debug.Print y & s End Function Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, January 14, 2008 2:17 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Data type mismatch That is interesting. I always thought that a null appended to a string was a null. John W. Colby Colby Consulting www.ColbyConsulting.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Monday, January 14, 2008 9:00 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Data type mismatch Hi John Sometimes I concatenate the field and an empty string: Where Len([fld] & "") > 0 /gustav >>> jwcolby at colbyconsulting.com 14-01-2008 14:54:52 >>> There are a lot of places where Access will throw a data type mismatch in a query. One of them is if you try to feed a null into a string query such as left() inside of a query. I have run into one such issue and need to try to solve it. So I created a base query that does a "Where [fld] is not Null" and then build a query on top of the base query that uses the Left(). Unfortunately that doesn't work. You can demonstrate this issue quite easily by building a little table with a text field, put in a few data points including at least one null. Build a base query that filters out the null, and then build a query on top of the base that tries to use one of the string functions. Now I can build a function wrapper that uses a variant as the data type and checks for the null value inside of the wrapper, returning an empty string (not a null) or the data passes in converted to a string type, but I would rather not have to do that. Has anyone found a way to prevent this datatype mismatch scenario where you have tried to filter out the null values but you still get the error? John W. Colby Colby Consulting www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com