David Emerson
newsgrps at dalyn.co.nz
Wed Oct 2 01:12:43 CDT 2013
Thanks Stuart - I was getting my ' and " mixed up (I thought that two apostrophe's worked the same as two quote marks - maybe that is SQL Server?) Regards David Emerson Dalyn Software Ltd Wellington, New Zealand -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, 2 October 2013 5:09 p.m. To: Access Developers discussion and problem solving Subject: Re: [AccessD] Using Replace to convert a Field value You mean that the table may have an apostrophe but there may be none in the textbox? That's slightly different - you do need to use a Replace() function inside the SQL in that case. Either escape the double quotes in the Replace() function with a second set or build the string with another variable strCriteria = "Replace([LName],""'"","""") = '" & _ Replace(txtSiteName, sQ, "") & _ "' AND ClientSiteID <> " & Me!txtClientSiteID or Dim sDQ as string: sDQ = chr$(34) 'Double quote strCriteria = "Replace([LName]," & sDQ & sQ & sDQ & "," & sDQ & sDQ & ") = '" & _ Replace(txtSiteName, sQ, "") & _ "' AND ClientSiteID <> " & Me!txtClientSiteID On 2 Oct 2013 at 16:27, David Emerson wrote: > Thanks for the response Stuart. The problem is with the first Sitename. > The value in the fields from the table could have an apostrophe - it > is how I can get the field value to match the new record value for comparison. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Wednesday, 2 October 2013 4:15 p.m. > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Using Replace to convert a Field value > > You shouldn't remove the apostrophe, you should "escape" it with a > second one in the criteria. > > Dim sQ as string : sQ = Chr$(39) ' Single quote character > > strCriteria = "Sitename = '" & Replace(txtSiteName, sQ, sQ & sQ) & _ > "' AND ClientSiteID <> " & Me!txtClientSiteID > > If Nz(DLookup("ClientSiteID", "tblClientSite", strCriteria)) <> 0 Then ... > > > On 2 Oct 2013 at 15:47, David Emerson wrote: > > > I have a field called SiteName. When a new record is added I want > > to check if the value in the SiteName field already exists in another record. > > > > I use a DLookup to check for it. The problem is that the value in > > SiteName could contain an apostrophe. This causes a problem when > > the > DLookup is run. > > > > I think I need to be able to remove any apostrophe's in the SiteName > > field before the comparison. I could create another query which > > does this and do the DLookup with the query but I was wondering if I > > could do it direct with the table. I tried this (highlighted in > > red) but get > "Syntax Error. > > Missing Operator" error message. > > > > > > > > If Nz(DLookup("ClientSiteID", "tblClientSite", " Replace([SiteName], > > ''''', > > '''') = '" & Replace(Nz(Me!txtSiteName, ""), "'", "") & "' AND > > ClientSiteID <> " & Me!txtClientSiteID), 0) <> 0 Then > > > > . Do something} > > > > > > > > Any thoughts. > > > > > > > > Regards > > > > David Emerson > > Dalyn Software Ltd > > Wellington, New Zealand > > > > > > > > > > > > -- > > 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 > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com