No announcement yet.

Data Compare for MS Access only works with English regional settings?

  • Time
  • Show
Clear All
new posts

  • Data Compare for MS Access only works with English regional settings?

    When using non-English regional settings Data Compare does not succeed in successfully comparing two Microsoft Access databases. If regional settings are set to English, everything works fine.

    For non-English regional settings one only sees table names. To see table content one has to switch regional settings to English (UK, US, etc)...

    The issue can be simulated on Windows XP/Vista/7 32/64bit with Microsoft Access 2007/2010 files.

    Anyone an idea how to make BC work with non-English regional settings?

  • #2

    Would you be able to send us a copy of your via email to [email protected]? We do not have an MS Access format installed by default, and our additional download we offer on the website installs a Text Compare format (not Data Compare). With a copy of your settings, we should be able to see how you set this up and try to replicate the problem.

    Could you also include a link back to this forum post in the email for our reference?
    Aaron P Scooter Software


    • #3
      I am sorry for replying so late.
      There is nothing strange to my configuration. I downloaded the additional file formats for Windows, one of which is 'Microsoft Access Databases'. Just take 2 MS Access 2010 databases (a database with one table with a few records is sufficient).
      Select both databases in Windows Explorer, right-click and select 'Compare'. As long as your regional settings are on EN-us, the database's tables and its contents. If you switch regional settings to something else (BE-nl in my case), only the table names are compared, not their contents.
      As you asked, I sent a file to you with screen shots of the behavior.

      About the probable root cause:
      The access compare use the MDB_to_CSV.vbs script in the BC3 Helpers folder. The script basically loops over all tables, exports them one by one to a temporary file and appends each temporary file to a resulting text file which is then subsequently compared by BC3. The extraction instruction is
      app.DoCmd.TransferText acExportDelim, "", obj.Name, tmpNames(I)
      As far as I could find on the internet, this instruction does not handle non-US language settings very well. There should be a work-around by making a schema file, but this is where I got stuck...

      Could you please help me out and tell me how to compare 2 MS Access 2010 databases' contents using BC3?


      • #4

        Thanks for the email. I was able to reproduce the issue you are referencing by switching my regional settings, but this seems to be a bug in Microsoft's handling of VBScript. There is a codepage parameter we can try adding, but in my tests I was not able to see a difference in output when adding it to the DoCmd:

        Do you have better luck when attempting to add this parameter?
        Aaron P Scooter Software


        • #5
          Data Compare for MS Access only works with English regional settings?


          has anyone found a workaround for this issue? I have the same problem and adding a codepage parameter to the docmd call changed nothing.
          I have the problem since we moved to Windows 7.


          • #6
            I tested adding a codepage to the "app.DoCmd.TransferText" command in the vbscript, but it didn't fix the problem. I've added this to our bug list, but I don't know when we'll be able to fix it.

            For now, the only workaround is to save tables as text files from within Microsoft Access. To output a table as text in Microsoft Access 2013, right click on the table name, then select "Export > Text File". You should be able to load the exported text file in BC3's Text Compare or Data Compare.
            Chris K Scooter Software


            • #7

              we have found a solution that works for our regional settings (german).
              Please have a look at the attached file and with some small changes it might work for everybody. It is a little bit slower, but it works


              • #8
                Originally posted by carsten80
                Please have a look at the attached file and with some small changes it might work for everybody.
                I can't find any file attached.


                • #9
                  I have found a workaround for myself.

                  Change the line near line 54 from
                  App.DoCmd.TransferText acExportDelim, "", Table.Name, TmpFilenames(I)
                  Const acExportMerge = 4
                  App.DoCmd.TransferText acExportMerge, "", Table.Name, TmpFilenames(I)
                  Const acOutputTable = 0
                  Const acFormatTXT = "MS-DOS Text (*.txt)"
                  App.DoCmd.OutputTo acOutputTable, Table.Name, acFormatTXT, TmpFilenames(I)
                  Both workarounds don't generate a CSV file, but generate plain ascii text which could be compared.


                  • #10

                    Thanks for the code. I'll add it to our tracker entry on the subject. The file must have been lost in a forum upgrade, unfortunately. The original thread is from 2013, and we've had to perform upgrades and maintenance since then.
                    Aaron P Scooter Software