Hola a todos!!

He programado en ASP lo siguiente:

...
set con = server.createObject("ADODB.Connection")
con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" &
server.MapPath("bd.mdb")
set rs = server.CreateObject("ADODB.Recordset")
sql = "Select * From Usuarios Where (usuario = '" &
request.form("txtnombre") & "' AND " &_
"password = '" & request.form("txtpass") & "')"
rs.open sql,con,1,2
...

Esto evidentemente es vulnerable a una SQL injection porque no verifica las
' simples.

Es facil validarse aciendo un simple ' OR 'a'='a.
El problema viene cuando quiero mostrar algun valor de un campo, ya que si
intento multiplicar al campo usuario*5 me da un error de tipos no coinciden,
pero no me dice que 'pepe' no es un integer. Es decir que no puedo usar esto
para que me muestre el valor de los campos a partir de un error.

He visto que en SQLServer se crea una variable para luego hacer que esta
falle y que el error vuelque el contenido de la variable.

Pero en ACCESS no se pueden crear variables, para poder volcar todo ahi.

Tampoco se puede poner ;-- para que no interprete lo que añade despues, ya
que dice que despues de ; no debe haber nada.

¿Alguien me puede decir si en ACCESS hay algun caracter que lo tome como
comentario como el -- en SQLServer?

¿Alguien me puede decir como declarar una variable en ACCESS?

¿Como haria para que el contenido de la variable fuera una consulta?
Es decir se podria hacer algo asi:
¿Set @variable = (SELECT usuarios+'/'+password FROM usuarios)?

Otra cuestion seria si desde Access mediante uns SQL se puede crear una
consulta y exsportarla a un fichero de texto o incluso a otra .MDB. Ya que
la consulta CREATE DATABASE no la acepta el access, con lo cual no puedo
crear ningun fichero.

¿Se pueden crear ficheros desde una consulta SLQ con Access?

EN GENERAL sabeis donde puedo documentarme a cerca de como atacar una base
de datos en ACCESS.

Muchas gracias a todos por adelantado.

Y un saludo.