Como insertar una orden SQL en una macro

Buenos días, he hecho una base de datos y deseo incluir una orden SQL en una macro pero, no me funciona. La orden SQL la he probado y funciona pero, no consigo insertarla correctamente dentro de la macro. Ruego si son tan amables que me ayuden; debe ser algún detalle que no logro averiguar. Muchas gracias de antemano.
Código para asignar un Recibo concreto a todos los Socios del Club:

INSERT INTO “tbl_PAGOS” (“Id_Recibo”, “Id_Socio”, “Pagado”, “Dto%”)

SELECT “Id_Recibo”, “Id_Socio”, FALSE, “Dto%”

FROM “tbl_SOCIOS”, “tbl_RECIBOS”

WHERE “Id_Recibo”=6

El 6 es es id. Del recibo a asignar, es un ejemplo; este dato es la variable que te pide dentro de la macro. es el dato a cambiar

y esta es la macro con el código SQL ya insertado:
REM MACRO QUE ASIGNA UN RECIBO A TODOS LOS SOCIOS DEL CLUB
Sub AsignacionAutomaticaRecibos( Evento )
Dim oCon As Object
Dim oStat As Object
Dim sSQL As String
Dim oRes As Object
Dim Aumento AS Single
Dim Familia As Integer
Dim opcion As integer
opcion = MsgBox ("¿Realmente quieres asignar un Recibo a Todos los Socios?",36,“ASIGNACION MASIVA DE RECIBO A LOS SOCIOS”)
If opcion = 6 Then
'Obtengo valor Id_Recibo a asignar
IdRecibo=InputBox(“Introduce el Identificador del Recibo a Asignar:”,“SELECCIONAR RECIBO”,"")
'Si cancelo o no pongo IdRecibo, salgo de la macro
'If Aumento = 0 Then
'Exit Sub
'End If
'Cierro formulario
ThisComponent.CurrentController.Frame.Close( true )
'Conecto con la base
oCon = ThisDatabaseDocument.CurrentController.ActiveConnection
oStat = oCon.CreateStatement
'Actualizo todos los datos en una consulta
sSQL = “INSERT INTO” “tbl_PAGOS” (“Id_Recibo”, “Id_Socio”, “Pagado”) “SELECT” “Id_Recibo”, “Id_Socio”, FALSE “FROM” “tbl_SOCIOS”, “tbl_RECIBOS” “WHERE” “Id_Recibo”"=&IdRecibo
oRes = oStat.ExecuteQuery(sSQL)
Call AbrirPagos
End If
End Sub

Sub AbrirPagos()
Dim Control as Object
Control = ThisDatabaseDocument.CurrentController
If Not Control.IsConnected Then Control.Connect
ThisDatabaseDocument.FormDocuments.GetByName(“form_RECIBOS”).Open
End Sub

Hola, así a simple vista veo lo siguiente:
los campos y las tablas de la consulta deben ir entre dobles comillas,

sSQL = “INSERT INTO ““tbl_PAGOS”” (”“Id_Recibo"”, ““Id_Socio””, ““Pagado””, ““Dto%””) SELECT ““Id_Recibo””, ““Id_Socio””, FALSE, ““Dto%”” FROM ““tbl_SOCIOS””, ““tbl_RECIBOS”” WHERE ““Id_Recibo””=’" & IdRecibo & “’”

Para añadir registros a la base de datos en lugar de usar oRes = oStat.ExecuteQuery(sSQL) Tienes que usar

oStat.ExecuteUpdate(sSQL).

Hola, muchas gracias por respnderme tan pronto. He insertado el código SQL que me has mandado y seguía dando error, pero he estado probando y al final quitando las últimas comillas ya no da error, quedando así el código:

sSQL =“INSERT INTO ““tbl_PAGOS”” (”“Id_Recibo”", ““Id_Socio””, ““Pagado””, ““Dto%””) SELECT ““Id_Recibo””, ““Id_Socio””, FALSE, ““Dto%”” FROM ““tbl_SOCIOS””, ““tbl_RECIBOS”” WHERE ““Id_Recibo””=’" & IdRecibo

Pero ahora el error lo da en la siguiente línea, que me dijiste que cambiara:
oRes=oStat.ExecuteUpdate(sSQL)
¿Sabes que podría estar ocurriendo?. Gracias

Hola,
Elimina la comilla simple que hay al final de la consulta, después del signo de igual:
=’" & IdRecibo, quedando =" & IdRecibo.

Hola, sigue sin funcionar, sigue dando el mismo fallo. Te adjunto imagen del error.
Al aceptar el mensaje de error, se me abre la ventana de macros con la orden resaltada:
oRes=oStat.ExecuteUpdate(sSQL)
Perdona las molestias.

Si quieres te puedo mandar la base de datos, por si te puede ayudar en algo.

Captura de pantalla_2023-10-25_13-00-53.png

Hola,
Comprueba que en la consulta SQL todas las comillas sean comillas normales, es decir como ".
Si no es la solución estaría bien que subieras un fichero base.odb con unos pocos registros con información aleatoria y las macros, sin datos personales ni información confidencial para que cualquiera pueda testearlo.

[EDITADO] Te dejo como ejemplo el fichero
SqlInsertarRegistrosDesdeOtraTablaFB.odb (9.9 KB)
con una macro que inserta en una tabla datos de otra.

Hola, he probado la macro de ejemplo que me has mandado y funciona perfectamente pero, al adaptarla a mi situación personal, cambiando solamente nombres de tablas y campos, da fallo. No comprendo qué puede pasar pero bueno, de todas formas muchas gracias por tu ayuda.

Hola,

Te dejo un nuevo .odb con macro usando las tablas y campos de tu consulta SQL., espero que te sirva.

SqlInsertarRegistrosDesdeOtraTablaFB(1).odb (10.4 KB)

Hola, debo tener algún tipo de problema en mi base de datos, o que esté corrupta o tenga cualquier cosa que impide que la macro se ejecute correctamente. Me da el error que te indiqué en un correo anterior en una captura que hice y adjunté.
De todas formas lo importante que es el código, ya lo tengo gracias a tu ayuda. Probaré mi base de datos en otro ordenador por si fuera problema de mi ordenador, aunque la base de datos de prueba que me mandaste funciona a la perfección, por tanto no creo que sea el ordenador. He probado la macro en la misma base de datos que tengo pero en otra copia que tengo en blanco y también produce el mismo error. no sé, es algo extraño.
De cualquier forma muchísimas gracias por tu ayuda. Un saludo