There are no real answers here from anyone who demonstrates extensive experience with Access, so I will give my answer:
1 Is VBA even for larger projects?
Define "big projects." In general, I would say no, but I mean applications for the entire enterprise. But the question here is not whether VBA can be used, but that Access is an interface suitable for applications of this degree. Access's biggest drawback (besides problems with form deployment) is project management, because source management is not as simple as with other development platforms.
But you really can’t imagine how big the application is. Are they used by hundreds of people? Or does he just have hundreds of subcomponents? That is, is it big in terms of complexity or big in terms of number of users?
I think its more likely for macros and just functions which extends access functionality.
As I said, you are asking the wrong question. The problem is that Access is a suitable interface. If so, then VBA is the language in which you must write it.
Regarding “macros and simple functions,” VBA generates a terminological problem in the “Word” and “Excel” macros, which makes many people think that VBA is a simple language. VBA is actually a SUPERSET VB6 (and not a subset) - VBA has MORE functionality than VB6 itself. When using Access, most of these functions are specific for interacting with databases, and because of this it is very useful (for example, compare a form with Access binding to a VB form).
In general, an access philosophy is one in which you start by creating objects interactively with a dot and click, and then adding code only when the default behavior is not enough. VBA provides great flexibility in that it can interact with any tools that have a COM interface. In principle, it is unlimited in what it can do (although, of course, there is a limit to what is practical).
2 It will be better to convert the application to .NET winforms / wpf
"Better" for what purpose? If you have a working application, you really need to consider the Spolsky / Netscape effect (cited above). Of course, you can improve code management, but at the cost of having to maintain it much more. On the other hand, if you have experience working on this development platform, and no one has VBA, then there will be bias for switching to a development platform that is more suitable for your specific developers.
But this is not a “better” problem that cannot be determined without knowing all the problems and personnel.
3 Can more developers work on a VBA project?
With Visual SourceSafe, you can have several developers working on a project. Or you can automate your build with Application.SaveAsText / .LoadFromText and use the CVS of your choice.
But in general, I would say that Access is much better for a single-developer model.
4 What are the worst flaws of VBA code running in a hosting program against a standalone application?
I have no idea what this question means. Many people have the crazy idea that the desktop for the front end of Access is larger than the working set for a VB6 application that does the same thing, but it really isn’t. I would expect that .NET would be roughly the same (if not a bigger workplace, as things always get bigger and bigger as the “progress” goes forward).
The biggest drawback of Access, in my version, is the deployment problem, when any users who require multiple versions of Access can have a lot of problems. SageKey installation scripts are intended to be fixed, but they are a kind of ad hoc - they fix problems when they appear, so if you have a deployment environment with problems that they have not yet encountered and have not been processed, you are not lucky. But they cover most of these circumstances.
5 Can you run unit tests or any similar technology?
I don’t believe that, but then, as an Access developer, I probably don’t have a really good idea what unit testing is. I think most of the Access application code is the user interface, not algorithmic programming, so it will NOT be easy to test. Whether this is a problem or not depends on the nature of the project and the type of testing considered necessary.
For an accounting application, you really need a high level of reliability, and, as I said in a comment elsewhere, if someone gave me an interview for a potential project to create an accounting application, I would recommend that they not build it from scratch, regardless of which one platforms.