¿Cómo puedo seleccionar varios registros a la vez y que una macro me cree registros nuevos?

Tengo un formulario con un cuadro de lista. Allí selecciono un registro y con un botón ejecuto una macro que crea un nuevo registro y asigna a éste nuevo registro el valor seleccionado en el cuadro de lista. Me gustaría poder seleccionar varios a la vez y que con una macro pudiera crear tantos registros nuevos como registros seleccionados en el cuadro de lista. ¿Cómo puedo hacer esto? Al elegir en las propiedades del cuadro de lista la opción de múltiple en la categoría de selección múltiple me da errores. ¿Qué puedo hacer?

1 Respuesta

Respuesta
1
Lo que intentas hacer es algo complicado, yo siempre creo que la solución se encuentra en la sencillez.
Quizás lo que intentas hacer es crear un registro en una tabla, y que al registro que intentas crear se le asignen unos valores determinados que ya han sido introducidos previamente en otro registro.
Ademas, has evolucionado en el planteamiento, y ahora quieres realizar una selección de registros, para crear múltiples registros simultáneamente.
Voy a plantearte una solución por código que espero que te sirva.
Cuando tecleas en el botón, justo en el evento al hacer clic de este, debes escribir lo siguiente:
Sub Boton_OnClick()
on error goto Error_BC
Dim sql as string
sql="SELECT * FROM [Tabla]"
sql = sql & " WHERE [Tabla].[Campo1] between " & [IndicaValorCampo1] & " And " & [IndicaValorCampo2]
'*** Esta consulta cuando se ejecute te pedira el valor desde y hasta de la selección Para que escojas los registros que quieres duplicar
DIM DB AS DATABASE
SET DB=CURRENTDB()
DIM T_TAB AS RECORDSET
SET T_TAB=DB.OPENRECORDSET("TABLA1")
DIM T_REC AS RECORDSET
SET T_REC=DB.OPENRECORDSET(SQL)
DO WHILE NOT T_REC.EOF
T_TAB.ADDNEW
T_TAB!CAMPO1=T_REC!CAMPO1
......
'* AÑADE TANTOS CAMPOS COMO DESEES
T_TAB.UPDATE
T_REC.MOVENEXT
LOOP
T_REC.close
T_TAB.CLOSE
EXIT SUB
END SUB
Espero que este método te sirva de ayuda. Si dudas al respecto, no dudes en volver a preguntar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas