¿Cómo puedo hacer una consulta en Access en la que se pregunte el nombre de la tabla para hacerla?

Tengo treinta tablas diferentes con los nombres de asignaturas.

¿Es posible preguntar el nombre de la tabla en la que quiero hacer una consulta, y que este nombre se introduzca en una variable y lo sustituya en la consulta?

He utilizado visual basic pero no me sustituye el nombre que introduzco por la tabla

Dim db As Database, r As Recordset
Dim nom As String
Dim sql As String
Set db = CurrentDb
nom = InputBox("Escribe el nombre de la asignatura")
'Para comprobar que coge el nombre

MsgBox "Asignatura " & nom
sql = "SELECT * FROM nom"
Set r = db.OpenRecordset(sql)

1 Respuesta

Respuesta
1

Tienes mal la construcción de la sql, pues la variable nom la tienes que poner fuera de las comillas, así:

sql = "SELECT * FROM " & nom

Te planteo otra opción para solucionarlo:

Supongo que tienes un formulario en el que por medio de un botón lanzas la consulta, ejecutando el código que escribes arriba.

Pues bien, si en tu formulario pones un cuadro combinado por ej, de nombre cboAsignaturas) que te liste las 30 asignaturas, puedes seleccionar la asignatura del cuadro combinando, y luego pulsar el botón para que se te muestre la consulta. Con este sistema, evitas el "inconveniente" de que teclees mal el nombre de la asignatura o escribas una que no exista, con lo que te saldrá un error o la consulta en blanco.

El código quedaría así:

Dim db As Database, r As Recordset
Dim nom As String
Dim sql As String
Set db = CurrentDb
nom = Nz(Me.cboAsignaturas,"")

'Si el combo está en blanco, avisa y salimos

If nom="" Then

MsgBox "Tienes que seleccionar una asignatura"

Exit Sub

End If
'Para comprobar que coge el nombre
MsgBox "Asignatura " & nom
sql = "SELECT * FROM nom"
Set r = db.OpenRecordset(sql)

...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas