** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Otros Productos Microsoft
  Mensajes nuevos Mensajes nuevos RSS - Solapamiento de fechas
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSolapamiento de fechas

 Responder Responder
Autor
Mensaje
cabraloca Ver desplegable
Nuevo
Nuevo


Unido: 04/Agosto/2014
Localización: españa
Estado: Sin conexión
Puntos: 32
Enlace directo a este mensaje Tema: Solapamiento de fechas
    Enviado: 25/Septiembre/2014 a las 13:57
Hola aquí os dejo código para el solapamiento de fechas, espero que os sea de gran utilidad por que me ha costado lo mio . Un saludo.

vba:
Public Function convertirFechaMMDDAAAA(dateF As String) As String
Dim fecha As Date
fecha = Conversion.CDate(dateF)
Dim dia As String
Dim mes As String
Dim ano As String

dia = Day(fecha)
mes = Month(fecha)
ano = year(fecha)
'convertirFechaMMDDAAAA = mes + "/" + dia + "/" + ano
convertirFechaMMDDAAAA = "'" & mes + "/" + dia + "/" + ano & "'"
End Function




Public Function validaSolapamientoFechas(DateFrom As String, DateTo As String, idEmp As Integer, tbl As String, Optional id As Integer = 0) As Boolean
Dim str1 As String
Dim ok As Integer

DateFrom = convertirFechaMMDDAAAA(DateFrom)
DateTo = convertirFechaMMDDAAAA(DateTo)
    Dim cnn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set cnn = GetNewConnection
    Set rs = New ADODB.Recordset
   

    str1 = "exec Val_SolapamientoFechas " & DateFrom & "," & DateTo & "," & idEmp & "," & tbl & "," & id
   
    
    On Error Resume Next
    Set rs = cnn.Execute(str1)
    ok = rs(0)
    If ok > 0 Then
        validaSolapamientoFechas = False
                
         Dim Msg, Style, Title, Help, Ctxt, Response, MyString
         Msg = "solpamienot de fecha."
         Style = vbOKOnly + vbInformation + vbDefaultButton1
         Title = "HR Tool"
         Response = MsgBox(Msg, Style, Title, Help, Ctxt)
    Else
        validaSolapamientoFechas = True
    End If
    
    rs.Close
    Set rs = Nothing
    cnn.Close
    Set cnn = Nothing

Debug.Print Err.Number, Err.Description, ok, str1

End Function

Store Procedure:

USE [HRTDB]
GO

/****** Object:  StoredProcedure [dbo].[Val_SolapamientoFechas]    Script Date: 25/09/2014 13:56:52 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE proc  [dbo].[Val_SolapamientoFechas]

@dateFor as  varchar(20), 
@dateTo as  varchar(20),
@idEmp as  varchar(20),
@tbl as varchar(50),
@id as varchar(20)

as

-- exec dbo.Val_SolapamientoFechas '2/1/2014','6/21/2014',2,'Employee_ContractT',1

declare @sql as varchar(500)
declare @tb as table (Num int)
DECLARE @result int 
--begin try

--sacamos el mobre del identity de la tabla
DECLARE @nomId AS VARCHAR(50)
SELECT @nomId=(SELECT COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where TABLE_SCHEMA = 'dbo' AND TABLE_NAME= @tbl 
and COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
)

set @sql= ' select count(*)
from [dbo].['+ @tbl +'] 
WHERE Emp_Id='+ @idEmp +'
and '+@nomId+' <> '+@id+'
and( '+''''+ @dateFor+'''' +' BETWEEN [DateFrom] AND [DateTo]
or '+''''+ @dateTo+'''' +' BETWEEN [DateFrom] AND [DateTo]
or ( '+''''+ @dateFor +''''+'  > [DateFrom] and  '+''''+ @dateTo +''''+'  <[DateTo])
or ( '+''''+ @dateFor +''''+'  < [DateFrom] and  '+''''+ @dateTo +''''+'  >[DateTo]))'


exec(@SQL)


GO




Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable