My 2 cents:
I attempted a C++ port a few years back. From that experience, I can tell you that most of the problems in the current DB2 source are a product of the source code itself and the way it's architected, not the language (though the language certainly isn't helping things). Also, while the core engine routines are easy enough to translate, there is
extensive UI code (thousands of lines worth) that is not at all easy to translate to anything outside of VB itself. Some of the code in the darker recesses is even a mystery as far as why it's there and what it's doing. Even moving to VB.NET is prohibitive (at least 3 different coders (myself, Eric, and someone else I think...) have tried it and given up), and that's about the closest modern language to VB6 around.
It's
so tempting to think that if you rewrite the source in another language (probably one you're comfortable with) it'll be cleaner and easier to work with. But the reality is that what makes the code unwieldy to work with are bits that you just can't really rip out or smooth over easily regardless of the language. Graphics routines reach into robot memory, everything is global, there's no clear separation of duties, every UI widget has custom code somewhere that connects it to the relevant member of simopts, etc.
But I went through this exact same thought path myself when I tried to port to C++, so I can't be too judgemental

But first hand experience and general programming experience from work all tells me that trying to move this monstrosity to another language in its current form is a mistake.
If we
really wanted to move the current DB2 code to another language, because maybe suddenly all VB6 apps in the world stopped working or something, here's the path I would recommend (it's boring and not sexy at all, but there is no doubt in my mind that it's the best way to approach the problem):
1. Refactor the current VB6 code to be clean.
2. Make sure it still works the same as before.
3. Now port it.
Doing #1 sort of breaks the need for #3, though (which is why it's boring and unsexy), and doing #1 well involves knowing VB6 very well, which again breaks most of the need for an actual port. But a good analogy: when you move houses, you put stuff in boxes instead of trying to move things individually.