1. VB and VB.NET are very similar. They have their roots in BASIC, a programming language used on nearly every architecture since the language's inception. Even the classic Commodores used it. Of course, VisualBasic is a long way from the Beginners All-purpose Symbolic Instruction Code used on the Commodores and the Apple ][. Over the years, things were added to the language to allow it to perform different additional functions. Before Windows, Microsoft released a version of BASIC with MS-DOS called QBASIC. This was the direct predecessor of Visual Basic, introduced to make programming Windows applications simpler, much as QBASIC was introduced to simplify DOS programming. VB quickly grew and matured, expanding functionality with every edition until it became equally as powerful as nearly any other language available. VB.NET took VB and hooked it even further into the rest of the system by connecting the language directly into the brand-new .NET framework. The only real difference between the two is built-in .NET support, though VB.NET does streamline the way some things are done.
2. I can't recommend any eBooks in particular, given that I didn't have Internet access while I was learning VB, and I haven't quite gotten into .NET programming yet (my focus shifted to web programming somewhat). However, if you can find an eBook version of the latest Sam's Teach Yourself Visual Basic [insert VB version here], you should be set with the basics, and have enough understanding to figure out most issues. Anything more complex is likely to be found only in massive reference volumes, requiring painstaking search and research. I'd ask those questions here. :)
3. VB.NET and ASP.NET (and indeed, VB and ASP) are unrelated applications, and indeed are targeted towards two very different platforms. VB is designed for desktop softwaredevelopment, while ASP is designed for web software development. ASP allows the use of VBScript to