Problema al anexar datos a una tabla desde formulario

Private Sub Comando20_Click()
Hola,

Os pregunté hace unos días cómo poder anexar a una tabla el resultado de una consulta que aparecía en un subformulario y que ejecutaba desde un botón del formulario. El problema que tengo es que si, Por ejemplo: En el subformulario como resultado de la consulta aparecen 4 registros (el formulario lo tengo en vista hoja de datos), al darle al botón se me anexa a mi tabla (hoja2) el primer registro duplicado por 4. Para que se me guarden todos tengo que ir con el selector de registros haciendo click en siguiente y también se duplican. Me han dicho que el problema puede estar en que tengo que definir los valores ValorA y ValorB dentro del DAO. Recordset, pero no encuentro el modo de hacerlo. Tampoco intentando poner rst. MoveNext y el nombre del subformulario. ¿Alguna sugerencia? Mil gracias

Dim rst As DAO.Recordset
Set rst = Me.Subformulario_Consulta1.Form.RecordsetClone
rst.MoveFirst
Do Until rst.EOF
ValorA = Me.Subformulario_Consulta1.Form.MARCA
ValorB = Me.Subformulario_Consulta1.Form.TIPO
SQL = "INSERT INTO Hoja2(Marca, Tipo) VALUES ('" & ValorA & "', '" & ValorB & "')"
DoCmd.SetWarnings False
DoCmd.RunSQL SQL
DoCmd.SetWarnings True
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
MsgBox "Listo"
End Sub

1 respuesta

Respuesta
2

Vaya, veo que por hacer un copia-pega de tu código original, metí la pata.

Este es el código bueno:

Private Sub Comando20_Click()
Dim rst As DAO.Recordset
Set rst = Me.Subformulario_Consulta1.Form.RecordsetClone
rst.MoveFirst
Do Until rst.EOF
   ValorA = rst("MARCA")
   ValorB = rst("TIPO")
   SQL = "INSERT INTO Hoja2(Marca, Tipo) VALUES ('" & ValorA & "', '" & ValorB & "')"
   CurrentDb.Execute SQL
   rst.MoveNext
Loop
rst.close
set rst=nothing
End Sub

Si optases por la otra opción, la de la SQL "INSERT INTO SELECT", no hubieras tenido este "problema" y necesitarías menos líneas de Código.

Un saludo y disculpa mi error.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas