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