la razon es q estas dejando el espacio en blanco
VALUES('
quita este espacio" & TextBox1.Text & "','
quita este espacio" & TextBox2.Text & "','
quita este espacio" & TextBox3.Text & "','
quita este espacio" & TextBox4.Text & "')"
cmd = New OleDbCommand(sql, cn)
porq no cambiar tu forma a algo asi
Cita: OleDbCommand command=new OleDbCommand("INSERT INTO usuario(nombres,usuario,clave,confclave) VALUES (@nombres,@usuario,@clave,@confclave)",connection) ;
OleDbParameter parameterNombres=new OleDbParameter("@nombres",TextBox1.Text);
command.Parameters.Add(parameterNombres);.......
y asi haces una mejor practica y garantizas menos errores.
espero que te funcione