He preparado este ejemplo, consta de 3 tablas y una función. Lo hago con DAO.
TABLA RANGOS
TABLA ACTAS
FORMULARIO PARA LLAMAR LA FUNICIÓN
Al hacer clic sobre el botón Ver no coincidentes, obtengo la tabla siguiente:
TABLA NO COINCIDENTES
CÓDIGO DEL BOTÓN DEL FORMULARIO
Private Sub btnNoCoincidentes_Click()
Call nocoincide
End Sub
CÓDIGO DE LA FUNCIÓN
Aunque lo hago con una función puede copiar el código y pasarlo a un procedimiento.
Public Function nocoincide()
Dim aux As Variant
Dim aux2 As String
Dim x As Long
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim mid As Long
Dim mdesde As Long
Dim mhasta As Long
'Retiro los registros de la tabla temporal
CurrentDb.Execute "DELETE FROM tem_actas_faltan"
Set db = CurrentDb
Set rs = db.OpenRecordset("tblrangos")
Do Until rs.EOF
mid = rs!id
mdesde = rs!NRO_ACTA_DESDE
mhasta = rs!NRO_ACTA_HASTA
For x = mdesde To mhasta
aux = Nz(DLookup("[NRO_ACTA]", "tblactas", "STR([NRO_ACTA]) =" & x), "")
If aux = "" Then
aux2 = Format(x, "000000")
CurrentDb.Execute "INSERT INTO tem_actas_faltan(id,NRO_ACTA) VALUES(" & mid & ",'" & aux2 & "'" & ")"
End If
Next x
rs.MoveNext
Loop
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
If MsgBox("¿Quiere ver la tabla de los no coincidentes?", vbYesNo + vbDefaultButton2 + vbQuestion, "NO COINCIDENTES") = vbYes Then
DoCmd.OpenTable "tem_actas_faltan", acViewNormal, acReadOnly
End If
End Function
Puede solicitar el ejemplo a [email protected], favor en el asunto hacer referencia a la consulta.