IMPEDIR QUE EL USUARIO CIERRE UN FORM EN VBASIC: En el evento QueryUnload del formulario colocar un codigo como el siguiente: Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) MsgBox "Imposible cerrar el formulario" ' evidentemente esto es opcional If UnloadMode = vbFormControlMenu Then ' valor cero Cancel = True End If End Sub Esto no impide que se haga Unload Me controlado por un boton o lo que sea. ---------------------------------------------------------------------------------- IMPRIMIR UN INFORME DE ACCESS DESDE VISUAL BASIC: ' Agregar una referencia en el proyecto a: MS Access Dim MSAccess as Access.Application Private Sub cmdReport_click() Set MSAccess = New Access.Application MSAccess.OpenCurrentDatabase("c:\xxxx\basedatos.mdb") ' si la base de datos esta protegida con contraseña el unico metodo que conozco es: ' enviarle la contraseña de esta forma: SendKeys "contraseña{ENTER}" MSAccess.Docmd.OpenReport "rptNombreReport", acviewNormal MSAccess.CloseCurrentDatabase Set MSAccess = nothing End Sub ----------------------------------------------------------------------------------- CALCULO DE VENCIMIENTOS: Esta función te calcula una fecha de vencimiento, envíale los siguientes parámetros: 1.- Fecha de partida, 2.- Num. de dias, 3.- Dia de pago (puede ser 0) Te devolverá la fecha del vencimiento en formato fecha. No es muy sofisticada, pero es un punto de partida si quieres complicarla más Function FVencim(dFechaIni As Date, nDias As Integer, nDiaPag As Integer) As Date Dim nDia, nMes, nAnyo As Integer Dim sFecha As String FVencim = dFechaIni + nDias nDia = Day(FVencim) nMes = Month(FVencim) nAnyo = Year(FVencim) ' Si hay dia de pago If nDiaPag > 0 Then If nDiaPag >= Day(FVencim) Then nDia = nDiaPag Else nDia = nDiaPag nMes = nMes + 1 If nMes > 12 Then nAnyo = nAnyo + 1 nMes = 1 End If End If End If sFecha = nDia & "/" & nMes & "/" & nAnyo FVencim = CDate(sFecha) End Function Enlace página sobre código de Visual Basic http://personal2.iddeo.es/fustej/faq/faq.htm