I use basically the same technique very happily with a couple modifications. One, make sure the tblTestComp is the exact name of the table in your MySQL database and that strUserName, strPassword, and DOB are the exact column names in that table. Pretty straightforward.
Also, the VALUES(?, ?, ?) will cause problems because that's specifically a SQL syntax for the Jet engine with powers Access. MySQL takes a syntax like...
workingSqlModificationText += "VALUES ( @pages_title, @pages_filename, @pages_websiteid, @pages_urlpathid ) "
Finally, the .Value property of the Parameters collection is something I'd had problems with, though I can't remember exactly what. I found several blogs and forum threads which raised the same issues and recommended AddWithValue instead. I haven't had problems since I switched. I haven't programmed VB in ages, but I think this is basically the changes you need to make.
Public Sub InsertUsers(string inputUserName, string inputPassword, string inputDOB)
Dim sqlInsert As String
sqlInsert = "INSERT INTO tblTestComp(strUserName, strPassword, DOB) "
sqlInsert += "VALUES(@UserName, @Password, @DOB)"
Dim objCmd As MySqlCommand
objCmd = New MySqlCommand(sqlInsert, objConnMySQL)