Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MS Access query returning Chinese characters - possible table corruption?

Tags:

ms-access

I copied and pasted a new version of the data into my MS Access table and now I'm getting weird characters in my queries. Essentially if I say:

SELECT a, b from table1

everything is fine. If I instead do

SELECT a, b from table1 group by a, b

I get really weird characters as a result. At first I got upside down L's, but now I'm getting Chinese characters. It's weird because other queries in my database use the table and get the desired output. It seems like it's only when I do a group by that I have the problems. Any suggestions? I was ready to roll it out, but now I'm getting these errors!

like image 314
theHamburglar Avatar asked Feb 28 '15 00:02

theHamburglar


3 Answers

This is a bug typically met if grouping on a memo field.

There may be several workarounds depending on your needs:

Select 
    a, Left(b, 255) As b
From 
    table1 
Group By 
    a, Left(b, 255)

Select 
    a, Mid(b, 1) As b
From 
    table1 
Group By 
    a, Mid(b, 1)

Select 
    a, First(b) As firstb
From 
    table1 
Group By 
    a

Select 
    a, DLookUp("b","table1","Id = " & [table1]![Id] & "") AS b
From 
    table1 
Group By 
    a, DLookUp("b","table1","Id = " & [table1]![Id] & "")
like image 125
Gustav Avatar answered Oct 07 '22 05:10

Gustav


Here is yet another option, which I just tried successfully. I was updating a query that someone else had created, and the author had included every field in the Group By clause, to return distinct records. I removed the entire Group By clause and inserted DISTINCT right after SELECT. No more Chinese. This may not be possible in some situations, but in this case it was a simple fix.

Also, I would not have thought of this if not for the insights offered above. Thanks everyone!

like image 35
RichardCoeurNoir Avatar answered Oct 07 '22 06:10

RichardCoeurNoir


I have just had the same issue in various reports. The problem is indeed the Memo Field.

The solution that worked for me was more straight forward... I had to remove the "Group by" for the Memo field and the problem disapeared.

I realize this might not be an option in every situation, but if it is, this is the easiest solution as it requires no rewrite of the SQL or even any other change in the DB.

I found this solution here: Allen Brown - Grouping by Memo field yields garbage

like image 4
rohrl77 Avatar answered Oct 07 '22 05:10

rohrl77