Como puedo seleccionar en que tabla se guarden los registros de un formulario independiente

Tengo 4 tablas (TCIR, TCON, TVEH, TLSV) y un formulario independiente (FAltas), dentro del mismo hay un campo llamado NomTabla y según el dato que inserte (TCIR, TCON, TVEH, TLSV) se copien todos los datos del formulario en la tabla que tenga seleccionada en el campo NomTabla, por ejemplo quedaría así: Forms! FAltas! NomTabla.

En el formulario tengo un botón de comando con la siguiente instrucción para registrar los datos, en la tabla que tenga seleccionada:

Dim dbs As Database

Dim rst As Recordset

Set dbs = CurrentDb

Set rst = DB.OpenRecordset("Forms!FAltas!NomTabla", dbOpenTable)

rst.AddNew

rst!LEYENDA = Forms!FAltas!LEYENDA

rst!NORMA = Forms!FAltas!NORMA

rst!ARTICULO = Forms!FAltas!ARTICULO

rst!APARTADO = Forms!FAltas!APARTADO

rst!OPCION = Forms!FAltas!OPCION

rst!MATERIA = Forms!FAltas!MATERIA

……

rst.Update

rst.Close

dbs.Close

Set rst = Nothing

Set dbs = Nothing

Me da error 3011, no se pudo encontrar objeto y me selecciona Forms! FAltas! NomTabla.

Me podéis decir, si se puede hacer como lo tengo planteado o hay otra solución.

2 respuestas

Respuesta
1

Antonio: Independiente que se puede hacer con Recordset, te sugiero ésta consulta>>

CurrentDb.Execute "INSERT INTO  " & Me.NombTabla & “        (Leyenda, Norma, Articulo, Apartado, Opcion, Materia) VALUES ('" & Me.LEYENDA & "', '" & Me.NORMA & "',’" & Me.ARTICULO & "’, '" & Me.APARTADO & "','" & Me.OPCION & "','" & Me.MATERIA & "')"

Si quieres seguir el camino del Recordset, sería bueno hacer una Consulta previa al Rst, para ir trceando el problema. Lo que tienes un poco modificado

Dim dbs As DAO.Database

Dim Rst As DAO.Recordset

Dim StrSQL As String

StrSQL = "SELECT * FROM " & Me.NomTabla & " ORDER BY Articulo ASC;"

Set dbs = CurrentDb

Set rst = DB.OpenRecordset(StrSQL, dbOpenDynaset)

<<< Resto no lo he mirado. Saludos >> JTJ

Antonio: En la consulta de inserción y donde pone >> Me. NombTabla, según lo que citas debe de ser >> Me. NomTabla

Saludos >> JTJ

Respuesta
1

El error está en la línea:

Set rst = DB.OpenRecordset("Forms!FAltas!NomTabla", dbOpenTable)

Debe quietar las comillas (")

Quedaría algo como:

Set rst = DB.OpenRecordset(Forms!FAltas!NomTabla, dbOpenTable)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas