It is not an easy task since you have to re-write the frontend. Some of the API codes might be similar, but the general syntax and structure of VBA and C# are very different. As for the BE, both Access and Microsoft SQL have a wizard for a free conversion. It's not perfect since a lot of data types are different between the two versions. Therefore, you will have to check over the database after the switch. I don't think there's an official tool for Access to MySQL, although there are probably some third-party tools for purchase. An alternative is to export Access into a format that can be imported into MySQL. But, you will have to go through all the fields in your final MySQL database and change things to the appropriate types.
Whether it's worth it or not depends on the size and complexity of your application as well as how many people will be using it. For simpler applications, Access FE is pretty easy to deal with. But if you want more control and flexibility, then you might want to switch to a programming language. Access BE (JET) is capable of multi-user environment. But when the number of user gets beyond a few dozen, its performance cannot compare to a proper SQL database. It also does not easily support access over web domains. Personally if I decided to move, I'd do it as soon as possible. The further along in development you are, the more you will have to re-write later. Although depending on your situation, you may not have to convert both the FE and BE.
As for MySQL vs MS SQL, MySQL does offer full database functionality for free while MS SQL has a free Express version with limits. I think for recent versions (at least MS SQL 2008 and newer), the limits are 10GB of data 1 processor core and 1GB of RAM for each database, which shouldn't be a big issue unless your database has several million records and/or constantly has thousands of simultaneous read/write operations. Enterprise editions of MS SQL tend to be loaded with a lot of built-in function, such as for security, backups, etc. but are quite costly. The Open Source aspect of MySQL doesn't really benefit most of the people using it as few people install it from source and even fewer people alter the source.
Personally, I tend to choose between the two depending on the language I'm using and the platform I'm running from. Native support is always nice. Linux or PHP will usually be MySQL. Windows and .NET languages will generally use MS SQL. If you're not doing some enterprise level development where performance, security, durability, etc. are major concerns, you might as well choose whichever is easiest for you to work with.