Como copiar registros de una tabla a otra que tiene, además, más campos

Me encuentro en la siguiente situación:

1. Tengo un formulario con origen del registro varias tablas relacionadas. Una de ella se llama "Alumnado_informe" con los siguientes campos:

Id_informe: (es un valor numérico que extraigo de un campo clave autonumérico (Id_datos) que se crea automáticamente al crear un nuevo registro
    Seleccion: un campo de tipo verdadero/falso

Items: campo tipo texto
    Id_contenido2: campo tipo número

2. Tengo una tabla en la base de datos llamada "Evaluacion" con los siguientes campos:
    Items: campo tipo texto
    Id_contenido2: campo tipo número

¿Qué es lo que necesito hacer? Necesito que se copien todo los registros de la tabla "Evaluación" en la tabla "Alumnado_informe", pero que, en cada registro que se copia, se grave también el valor del campo Id_informe que, como dije antes, su valor se extrae de otro campo (Id_datos). El valor de este último campo (Id_datos) se encuentra en el registro activo en el formulario.

1 respuesta

Respuesta
2

Pedro: He leído un par de veces tu pregunta y la verdad es que, aunque la necesidad está bien explicada, no sé si acertaré con la propuesta que te envío.

Dim StrSQL As String

StrSQL = "INSERT INTO Alumnos_Informe SELECT Evaluacion.* "

StrSQL = StrSQL & "FROM Evaluacion LEFT JOIN Alumnos_Informe ON Evaluacion.Id_Contenido2 = Alumnos_Informe.Id_Contenido2 "

StrSQL = StrSQL & "WHERE (((Alumnos_Informe.Id_Contenido2) Is Null));"

CurrentDB. Execute StrSQL, dbFailOnError

Si el Id_Informe es auto, se incrementará en cada inserción, quedando Selección que supongo lo marcarás en el Formulario

Si Id_Contenido2, no es identificador único, no será correcto. Mis saludos >> Jacinto

Jacinto. Antes de nada, gracias por responder. Después de leer tu correo he visto que quizás tendría que modificar algo en las tablas. Tras la modificación he intentado adaptar el código pero... imposible. Mis conocimientos no llegan a tanto. Intentaré escribirte de la forma más clara posible de donde parto y a dónde quiero llegar.

1. Tengo la tabla "Alumnado_informe", con tres campos:
   [Id_informe]: es un campo numérico que admite duplicados
   [Selección]: Campo de tipo Si/No
   [Identificador_inf]: campo numérico que admite duplicados

2. Tengo la tabla "Evaluacion" con tres campos, pero el importante para mí es el siguiente:
    [Identificador_eval]: un numero sin duplicados (campo autonumérico)

Lo que necesito es copiar todos los valores del campo [Identificador_eval] de la tabla "Evaluacion" al campo [Identificador_inf] de la tabla "Alumnado_informe". Al mismo tiempo,  en cada registro nuevo que se cree, se debe asignar al campo [Id_informe] el valor que tiene el campo [Id_datos].  El campo [Selección], por defecto, coge el valor "No", por lo que creo que se puede ignorar.

Creo que ahora lo he explicado mejor. Gracias.

Pedro: Salvo que yo esté un error, la consulta de anexado que te envié, sigue siendo válida en su estructura, aunque haya que cambiar nombres. No obstante y como tu conoces es dificil o al menos lo es para mi, dar una respuesta certera sin tener los Objetos delante.

Si puedes de forma sencilla aislar los objetos que intervengan en la pregunta con solo algunos registros de datos "inventados", puedes enviar esa BD reducida a mi correo, que ya tienes o bien generar una nueva pregunta, (para buscar la respuesta de algún otro experto), poniendo esa BD reducida en un enlace aquí. Espero tu respuesta, porque no veo una solución definitiva, que resuelva ese problema. Mis saludos >> Jacinto

Gracias a Jacinto por su ayuda. Al final le he tenido que pasar la base de datos y me ha escrito el código directamente. La cosa era al final más compleja (creo yo) y una vez más me ha sacado de un "atasco".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas