tu fallo está en en
"Password = 'UserName = [Form2.txtuser'] and ['Password = Form2.txtpass]"
Una expresión en la forma: 'a = b = c' VB lo interpreta como un buleano: 'a = (b=c)' y obviamente como se evalua a TRUE/FALSE...
De todos modos, es un cacao. por ejemplo, parece ser que hay una tabla llamada "Password"... si existe una tabla así, es preferible llamarla "tblPassword", de hecho es buena práctica llamar a las tablas con un prefijo, que te permita saber de un vistazo, que esa tabla tiene posibilidades de existir...
No queda claro qué es cada cosa... pero voy a arriesgarme a intentar interpretar lo que podría ser que tienes:
dim cnStr ' es buena practica usar una variable de cadena para separar errores de cadena
' de errores con la bd... al menos hasta que aprendas a formar correctamente las cadenas.
cnStr = "SELECT * FROM Password " & _
"WHERE Username = " & Form2.txtuser.text & _
" and Password = " & form2.txtpass.text
Set rst = New ADODB.Recordset
rst.Open cnStr
'...
Asegúrate que los textboxes no tienen espacios en blanco a uno u otro lado del texto, que no forman parte de la cadena precisa... es decir quizás debas usar una función 'Trim' para eliminar espacios a ambos lados. De hecho es recomendable cuando el dato es entrado por un usuario manualmente...
En Net, todavía podría valer algo parecido a lo que intentas hacer...
dim cnStr ' es buena practica usar una variable de cadena para separar errores de cadena
' de errores con la bd... al menos hasta que aprendas a formar correctamente las cadenas.
cnStr = "SELECT * FROM Password" & _
" Where [Username]= '" & Form2.txtuser.text & _
" 'And [Password]= '" & form2.txtpass.text & "'"
Set rst = New ADODB.Recordset
rst.Open cnStr
'...
Hay varias maneras válidas, pero siempre se requerirá una cadena de texto válida, al menos para que no cante error de sintaxis, luego si te sigue fallando sería porque no logra abrir la conexión si parte del contenido no es correcto.