joyfullservice / msaccess-vcs-addin

Synchronize your Access Forms, Macros, Modules, Queries, Reports, and more with a version control system.
Other
210 stars 41 forks source link

Subscript out of range - (UTF-8 System Encoding) #180

Closed abdullah1038 closed 3 years ago

abdullah1038 commented 3 years ago

Hello,

I have downloaded the VCS and used it on the demo version that was available in VCS Integration by timabell but it gave error message "Subscript Out of range". Attached is the error log. So when I tried to build from the exported source, it do not built the same demo as it was original. Only tables and module were present in the built database. Export.log Best Regards, Abdullah

hecon5 commented 3 years ago

What version of Access/Office/Windows do you have? Will help us figure out what's up, too. (thanks for including the log!) I just ran an export on the demo database, and did not get any errors; I'm on Windows 10 64bit, Office 16.0.13127...) @joyfullservice, we should probably add that to the log, too :)

abdullah1038 commented 3 years ago

What version of Access/Office/Windows do you have? Will help us figure out what's up, too. (thanks for including the log!) I just ran an export on the demo database, and did not get any errors; I'm on Windows 10 64bit, Office 16.0.13127...) @joyfullservice, we should probably add that to the log, too :)

Thanks for reply. Following are the required details:

Best Regards

hecon5 commented 3 years ago

Is this Office 2016, 2019, or 365?

joyfullservice commented 3 years ago

@hecon5 - I had no issues exporting or building the demo database using Access 2010 32-bit. From the log file, it looks like the issue is with the export, possibly with the sanitize function. I believe @abdullah1038 has the Show Detailed Output option turned on, if that is helpful in your testing.

hecon5 commented 3 years ago

I also didn't have any errors, with or without detailed output on.

abdullah1038 commented 3 years ago

Is this Office 2016, 2019, or 365?

Office 2019

hecon5 commented 3 years ago

@abdullah1038: I can't seem to reproduce this. Can you reinstall the latest Addin version, restart all Office programs and give it another go?

Tanarri commented 3 years ago

Hi,

I also tried to reproduce this, but can't. What I found out is, that only queries, forms, macros and reports produced this error 9. In procedure "SaveComponentAsText" the "SantitizeFile" was the last procedure which wrote to the log and after that somewhere occured the error.

The next line to "SanitizeFile" for all 4 DB-Objecttypes (queries, forms, macros and reports) is FSO.MoveFile strTempFile, strFile

the FSO Object is declared as

Public Property Get FSO() As FileSystemObject
    If m_FSO Is Nothing Then Set m_FSO = New FileSystemObject
    Set FSO = m_FSO
End Property

My suggestion is to declare FSO as Scripting.FileSystemObject and not only FileSystemObject which is also in iwshruntimelibrary I mean to remember that I had also a problem with this not so clear definition...

Greetings TanarRi

joyfullservice commented 3 years ago

@Tanarri - That is a very good point. I will go ahead and push an update now to make sure we are more explicitly creating this object.

joyfullservice commented 3 years ago

@abdullah1038 - Could you try installing and using the attached (development) version 3.3.5? It may help us better identify the error. Version_Control_v3.3.5.zip

abdullah1038 commented 3 years ago

@abdullah1038 - Could you try installing and using the attached (development) version 3.3.5? It may help us better identify the error. Version_Control_v3.3.5.zip

First of all so sorry for late reply. I didn't notice that I have new messages in the issue. First I want to tell you that I have checked the v3.3.1 on another same laptop but with office 2016 and got same error message. I also checked on desktop pc in office with office 2019 Access 32bit version 16.0.10359.20023 and received the same error message.

I have downloaded the new dev version ie 3.3.5 and installed it on above mentioned desktop pc. It is now giving new error message ie error 53, no object fount.

I tried it on mdb on which it worked without any error. Then I converted the mdb to accdb and tried to export it. Now it is giving the error 53 again. Export logs of both mdb and accdb are as below:

mdb Export.log accdb Export.log

Best Regards

abdullah1038 commented 3 years ago

This is in addition to my above reply. I just checked, even version 3.3.1 works without error on mdb file.

joyfullservice commented 3 years ago

@abdullah1038 - Thank you for the additional clues with the testing you have done. Is there any way you could provide a sample database that demonstrates the error? That would help in troubleshooting the issue.

abdullah1038 commented 3 years ago

Yeah sure, I'll send you the very same file tomorrow from office. I had tried on three or four files and got the same error message but I'll send you the file whose export logs I shared above.

joyfullservice commented 3 years ago

Yeah sure, I'll send you the very same file tomorrow from office. I had tried on three or four files and got the same error message but I'll send you the file whose export logs I shared above.

That will be great! Also, just to clarify, do have any specific locale/language settings on your computer that might affect the file paths? (For example, in Korea, they use a ₩ character for a path separator in file paths.) Thanks!

abdullah1038 commented 3 years ago

Yeah sure, I'll send you the very same file tomorrow from office. I had tried on three or four files and got the same error message but I'll send you the file whose export logs I shared above.

That will be great! Also, just to clarify, do have any specific locale/language settings on your computer that might affect the file paths? (For example, in Korea, they use a ₩ character for a path separator in file paths.) Thanks!

On both laptops, system locale is set to Arabic while on the desktop PC on which I tested today system locale is English however beta option is on the same dialogue. This was done to support a sample DB which was made in German. I'll uncheck that beta option and then I'll check again too.

Tanarri commented 3 years ago

@joyfullservice I think we can solve the path seperators, when we use "FileSystemObject.BuildPath" and not the hardcoded "/" as pathseperator

A shortend sample from a Code I use:

Public Function BuildPath(ByVal strPath As String, ByVal strFilename As String) As String
    ' Generiert den Pfad aus dem übergebenen Pfad + FileName
    BuildPath = FileSystemObject.BuildPath(strPath, strFilename)
End Function

Greetings TanarRi

abdullah1038 commented 3 years ago

I don't think hard coding "/" is a problem because I have hard coded this character several times in my project and none created any issue.

abdullah1038 commented 3 years ago

Hello again, I first I switched my locale to English (United States) while let Beta: Use Unicode UTF-8 for worldwide language support checked and problem persists. However, when I unchecked this option with system locale English, version 3.3.1 works. Gave no errors this time. It's working if Beta: Use Unicode UTF-8 for worldwide language support is unchecked. I had checked it because I was using few components from a demo db (made with German locale) which gives problem if this option is unchecked.

joyfullservice commented 3 years ago

Thank, you! That is a helpful clue. It looks like that setting is available in my version of Windows 10, so it might be something one of us could test further if we have a chance.

abdullah1038 commented 3 years ago

Thank, you! That is a helpful clue. It looks like that setting is available in my version of Windows 10, so it might be something one of us could test further if we have a chance.

Can you reproduce the error if this option is checked?

joyfullservice commented 3 years ago

I took a few minutes this morning to test the regional setting, and yes, I can reproduce the issue. It looks like we would need to rework some of the UTF-8 text conversion functionality to support usage in this context. If there is sufficient interest, we might be able to incorporate this into the add-in, otherwise we can probably just consider it a known limitation at this time.

abdullah1038 commented 3 years ago

I took a few minutes this morning to test the regional setting, and yes, I can reproduce the issue. It looks like we would need to rework some of the UTF-8 text conversion functionality to support usage in this context. If there is sufficient interest, we might be able to incorporate this into the add-in, otherwise we can probably just consider it a known limitation at this time.

If by sufficient interest you mean any help from my side, I'll happy to contribute in making it better. And if you mean that this feature requirement, I've just currently unchecked that beta option and it is working fine. Currently it is not creating any issue because right now I'm not using that specific form which required turning on this beta feature.

It is a great app you have made, Thank you so much for that. I just started learning version control and it is amazing. Till now, I had been just copying my numbered copy of my db into a folder named OLD VERSIONS.

joyfullservice commented 3 years ago

If by sufficient interest you mean any help from my side, I'll happy to contribute in making it better. And if you mean that this feature requirement, I've just currently unchecked that beta option and it is working fine. Currently it is not creating any issue because right now I'm not using that specific form which required turning on this beta feature.

Thank you for the clarification on how this issue affects you specifically. Since it is a very unusual case and one that you are able to work around without much difficulty, I will probably close out this issue for now. We can reopen the issue in the future if someone finds this to be a very important factor for their project. There are also some other changes (#186) currently in development that will make this easier to support in the future if the need arises.

Contributions are welcome, and you can read a bit more about that here.

It is a great app you have made, Thank you so much for that. I just started learning version control and it is amazing. Till now, I had been just copying my numbered copy of my db into a folder named OLD VERSIONS.

Yes, it has definitely been a great help for me as well! It is hard to imagine doing serious development work in Microsoft Access without using this add-in and a version control system. We use an internal GitLab server for many of our internal projects, system configurations, etc... and private GitLab.com projects for others that involve collaboration with remote developers. This project has been the work of many contributors, and I am thankful for the hundreds hours that have been invested in making this project what it is today!

joyfullservice commented 3 years ago

For reference, here is a screen shot of the system option discussed in this issue:

image

joyfullservice commented 3 years ago

Just a further note on this, I believe I have resolved the error that originally triggered this issue. You can now export source code even when using the Beta UTF-8 option in Windows. However, in some cases extended characters may not be translated correctly due to limitations in the VBA IDE. See discussion in #186 for additional details on this.)

abdullah1038 commented 3 years ago

Thanks a lot. I was starting to miss beta option because some of my message boxes (which were in Urdu language) started giving issues (text converted to lot of ????) with beta unchecked.

joyfullservice commented 1 year ago

For reference, I think we have successfully added support for the UTF-8 Beta option in version 4.0.7-beta, available on the releases page. 👍