MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Ter 12 Jun - 13:37

    Boa tarde a todos!

    1 . Tenho uma tabela onde constam os seguintes campos: [Nome Funcionário]; [Número Funcionário]; [Cargo Funcionário]; [Nome Empresa]; [Data Admissão]; [Data Demissão]. A tabela em questão possui mais de 50.000 registos e um funcionário pode exercer funções em diversas empresas em períodos diferentes. (existem cerca de 150 Empresas)



    2. Face à tabela acima mencionada foi-me pedido um estudo sobre se existem grupos de Funcionários que sejam comuns durante um período de tempo a várias empresas!


    Bloqueei por completo e não consigo sair daqui, se alguém conseguir dar umas dicas agradecia!


    Abraço a todos!
    Davi.lrcampos
    Davi.lrcampos
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 80
    Registrado : 02/02/2012

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Davi.lrcampos Ter 12 Jun - 15:27

    Olá Sergio,

    Desculpa mas não consegui entender o item 2, poderia detalhar um pouco mais?


    Grato,



    Davi
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Ter 12 Jun - 16:39

    Antes de mais obrigado pela ajuda, ou pela disponibilidade.

    "2. Face à tabela acima mencionada foi-me pedido um estudo sobre se existem grupos de Funcionários que sejam comuns durante um período de tempo a várias empresas!"

    Pretendo uma consulta à tabela mencionada em que consiga verificar quais os grupos de Funcionários que trabalharam em várias empresas durante certos períodos de tempo baseados na data de admissão e de Demissão, exemplificando:

    No Trimestre "XX" (ou Semestre)do ano de "XXXX" Os Funcionários A, B, C, D, E, exerceram funções na Empresa 1, 2, 3 e 4, sendo que estes mesmos funcionários trabalharam no Trimestre ou Semestre "YY" do ano "YYYY" nas empresas 7, 8, 9, 10, 11 e 12.

    Já tentei de diversas formas e não consigo chegar a lado nenhum, também não sou nenhum expert no assunto mas dou uns toques. Espero ter conseguido fazer-me entender, muito obrigado!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Alexandre Neves Ter 12 Jun - 16:48

    Boa tarde, sergio, e bem-vindo ao fórum

    Como se obtém os períodos de trabalho em simultâneo?
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Qui 14 Jun - 7:36

    Estava a tentar algo do género: Acrescentar à tabela um campo "calculado" que com base nas [Data Admissão] e de [Data Demissão] permita um agrupamento designado [Período] onde serão calculados os trimestres de trabalho efectuado nas diversas empresas.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Alexandre Neves Qui 14 Jun - 8:08

    Bom dia, sergio

    Não se preocupe como está a pensar fazer o cálculo. Diga qual a(s) regra(s) para o cálculo
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Sex 15 Jun - 7:13

    apurar grupos de Funcionários que sejam comuns durante um período de tempo (por exemplo 1.º Trimestre de 2011) a várias empresas e o trimestre nem necessitaria de ser calculado com base no período de trabalho, basta apenas que a data de admissão se refira ao trimestre o que é facilmente efectuado formatando este campo neste tipo q "-" aaaa. Não sei se era isto que pretendia,
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Alexandre Neves Sex 15 Jun - 16:18

    Continuo a não entender o âmbito do que pretende.
    Disponibilize dados significativos. Se for com bd (2003), melhor.
    Davi.lrcampos
    Davi.lrcampos
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 80
    Registrado : 02/02/2012

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Davi.lrcampos Sáb 16 Jun - 7:32

    Saudações amigos,

    Alexandre, acho que o colega Sérgio se refere à um relátório com grupamentos por períodos de datas. Tipo crtério "entre datas" na consulta de origem do relatório...

    Seria isso Sérgio?

    Att,


    Davi
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Sáb 16 Jun - 10:44

    É isso sim, obrigado amigo
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Alexandre Neves Sáb 16 Jun - 18:38

    Sérgio,

    Continuo a ter dúvidas sobre o trabalho concrecto que pretende realizar. No entanto, vamos arrancar...
    Crie um procedimento num módulo e execute:
    Sub CriaTabelaCargosSimultaneos()
    Dim Rst as DAO.recordset, rstDatas as dao.recordset, rstCargos as dao.recordset,UltimaData as date, strCargos as string
    Currentdb.execute "INSERT INTO tdfCargosSimultaneos SELECT DISTINCT NomeFuncionario, '' as Cargos;"

    set rst=currentdb.openrecordset("SELECT DISTINCT [Nome Funcionario] FROM Tabela;")
    do while not rst.eof
    set rstdatas=currentdb.openrecordset("SELECT [Data Admissão] FROM Tabela WHERE [Nome Funcionario]='" & RST(0) & "' UNION SELECT [Data Demissão] FROM Tabela WHERE [Nome Funcionario]='" & RST(0) & "';")
    do while not rstdatas.eof
    if rstdatas.AbsolutePosition =0 then
    UltimaData=rstdatas(0)
    else
    set rstCargos=currentdb.openrecordset("SELECT [Cargo Funcionario],[Nome Empresa] FROM Tabela WHERE [Nome Funcionario]='" & RST(0) & "' AND [Data Admissão]<=#" & UltimaData & "# and [Data Demissão]>=#" RSTDATAS(0) & "#;")
    rstcargos.movelast:rstcargos.movefirst
    if rstcargos>1 then
    strCargos="Entre " & UltimaData & " e " & rstcargos(0) & " nas empresas "
    do while not rstcargos.eof
    strcargos=strcargos & rstcargos(1) & " (cargo " & rst(0) & ")"
    rstcargos.movenext
    loop
    Currendb.execute "UPDATE tdfCargosSimultaneos SET Cargos='" & strcargos &"';"
    UltimaData=rstdatas(0)
    end if
    end if
    rstdatas.movenext
    loop
    rst.movenext
    loop
    set rst=nothing
    Currentdb.execute "DELETE * FROM tdfCargosSimultaneos WHERE Cargos='';"
    End Sub
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Ter 19 Jun - 9:43

    Antes de mais peço muita desculpa por ainda não ter dado qualquer resposta ao amigo Alexandre Neves a quem agradeço desde já a sua resposta, muito obrigado.
    Sou um curioso avançado no Access, o procedimento que escreveu da-me um erro que mais tarde relatarei aqui pois so hoje vou conseguir ver e tentar perceber o procedimento uma vez que não utilizei muito módulos até ao momento, mas aqui está uma grande oportunidade para aprender.
    Entretanto deixo (penso eu) a tabela em formato 2003 embora esteja a trabalhar com o 2010, e tento clarificar o que pretendia para o amigo Alexandre Neves.
    Anexos
    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver AttachmentModelo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (9 Kb) Baixado 10 vez(es)
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Ter 19 Jun - 9:53

    [Nome Funcionario]; [Número Funcionário]; [Cargo Funcionário]; [Nome Empresa]; [Data Admissão]; [Data Demissão]

    Quanto aos dados:

    O campo nome de funcionário será o campo que em princípio tem as "chaves" que não são chaves uma vez que os nomes se podem repetir pois o mesmo funcionário pode ter números diversos que lhe foram atribuídos pelas várias empresas.

    Os cargos serão irrelevantes para o estudo uma vez que o que se pretende é apurar de possíveis grupos de funcionários que sejam comuns a algumas das empresas durante determinado período. Dito de outra forma, apurar se existem grupos de funcionários que de forma mais ou menos estável tenha circulado nas várias empresas. Se não tiver sido claro por favor diga.

    Muito obrigado
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Alexandre Neves Ter 19 Jun - 10:49

    Boa tarde, Sérgio

    Antes de mais, para testar códigos, deve ter dados significativos, o que não acontece no exemplo que disponibilizou e, assim, esse exemplo não dá para testar. Já reparou nisso?
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Ter 19 Jun - 11:12

    Reparei sim, apenas mandei algo rápido de forma a entender melhor uma vez que os dados que existem na base real são cerca de 50.000 e tem nomes e dados pessoais, é naquela base que faço os testes, logo ja lhe darei um feedback, obrigado pela chamada de atenção, nem sei como agradecer a atenção que o forum tem tido comigo, o meu muito obrigado
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Qua 20 Jun - 14:05

    Boa tarde dá-me erro na linha seguinte:

    set rstCargos=currentdb.openrecordset("SELECT [Cargo Funcionario],[Nome Empresa] FROM Geral WHERE [Nome Funcionario]='" & RST(0) & "' AND [Data Admissão]<=#" & UltimaData & "# and [Data Demissão]>=#" RSTDATAS(0) & "#;")

    devo estar a fazer algo mal Surprised(
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Alexandre Neves Qua 20 Jun - 15:53

    Boa noite, sergio

    Já reparei que algum código não estava certo e outro não funcionou aqui (nem percebi porquê a ordenação das datas não realiza devidamente).
    Fiz alguns ajustes e funcionou em alguns casos que testei

    Sub CriaTabelaCargosSimultaneos()
    Dim Rst As DAO.Recordset, rstDatas As DAO.Recordset, rstCargos As DAO.Recordset, UltimaData As Date, strCargos As String

    CurrentDb.Execute "SELECT DISTINCT [Nome Funcionario] as NomeFuncionario, '' as Cargos INTO tdfCargosSimultaneos FROM Geral;"

    Set Rst = CurrentDb.OpenRecordset("SELECT DISTINCT [Nome Funcionario] FROM Geral;")
    Do While Not Rst.EOF

    Set rstDatas = CurrentDb.OpenRecordset("SELECT [Data Admissao],year([Data Admissao]) as dtAno,Month([Data Admissao]) as dtMes,Day([Data Admissao]) as dtDia FROM Geral WHERE [Nome Funcionario]='" & Rst(0) & "' UNION SELECT IIf(IsNull([Data Demissao]),Format(Now,'dd-mm-yyyy'),[Data Demissao]),IIf(IsNull([Data Demissao]),Year(Now),Year([Data Demissao])),IIf(IsNull([Data Demissao]),Month(Now),Month([Data Demissao])),IIf(IsNull([Data Demissao]),Day(Now),Day([Data Demissao])) FROM Geral WHERE [Nome Funcionario]='" & Rst(0) & "' ORDER BY dtAno, dtMes, dtDia;")
    Do While Not rstDatas.EOF
    If rstDatas.AbsolutePosition = 0 Then
    UltimaData = rstDatas(0)
    Else
    Set rstCargos = CurrentDb.OpenRecordset("SELECT [Cargo Funcionario],[Nome Empresa] FROM Geral WHERE [Nome Funcionario]='" & Rst(0) & "' AND [Data Admissao]<=#" & Format(UltimaData, "mm-dd-yyyy") & "# and (IsNull([Data Demissao]) or [Data Demissao]>=#" & Format(rstDatas(0), "mm-dd-yyyy") & "#);")
    If Not rstCargos.EOF Then rstCargos.MoveLast: rstCargos.MoveFirst
    If rstCargos.RecordCount > 1 Then
    strCargos = "Entre " & UltimaData & " e " & rstDatas(0) & " nas empresas"
    Do While Not rstCargos.EOF
    strCargos = strCargos & " " & rstCargos(1) & " (cargo " & rstCargos(0) & ")"
    rstCargos.MoveNext
    Loop
    CurrentDb.Execute "UPDATE tdfCargosSimultaneos SET Cargos=Cargos&'" & strCargos & ". ' WHERE NomeFuncionario='" & Rst(0) & "';"

    End If
    UltimaData = rstDatas(0)
    End If
    rstDatas.MoveNext
    Loop
    Rst.MoveNext
    Loop
    Set Rst = Nothing: Set rstDatas = Nothing: Set rstCargos = Nothing
    CurrentDb.Execute "DELETE * FROM tdfCargosSimultaneos WHERE Cargos='';"
    End Sub
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Qui 21 Jun - 18:35

    Boa Noite Alexandre, o seu código realmente funcionou, mas não era bem o que pretendia, embora seja de algum modo em parte, ou seja o seu código constrói uma tabela onde demonstra de um modo individual as empresas onde os funcionários prestaram serviço com a indicação da data de início e de final, o que pretendia era o grupo de pessoas que foram comuns às referidas empresas em certos períodos de tempo, ou seja algo que me disse-se que A, B e C trabalharam nas empresas C, D e E, ou que são coincidentes nestas empresas a fim de apurar que os mesmos sairam da empresa A e reagruparam-se de novo na empresa B e posteriormente na C, isto a fim de apurar factos que se passaram nessas empresas sempre que estes se encontraram nas mesmas de alguma forma.
    Sei que deve ser algo muito difícil e quero deixar aqui expressos os meus mais sinceros agradecimentos e parabéns pelo tempo que me tem disponibilizado bem como aos restantes membros deste forum, pelo que deixo um grande abraço a todos
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Alexandre Neves Qui 21 Jun - 18:39

    Boa noite, sergio

    Já lhe havia dito que não estava a ser claro no que pretendia.
    Terá mesmo que disponibilizar dados significativos e o resultado pretendido. Sem isto, não nos conseguiremos entender
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Alexandre Neves Sex 22 Jun - 18:40

    Boa noite, sergio

    Crie uma tabela. Designe-a por Tabela2 (porque vai receber o que pretende (?) com os funcionários relacionados 2 a 2)
    campos da tabela2: Empresa (texto), Periodo (texto), Emp1 (texto), Cargo1 (texto),Emp2 (texto),Cargos2 (texto)

    Execute o seguinte código:

    Sub CriaTabelaEmpresasSimultaneas()
    Dim Rst As DAO.Recordset, rstDatas As DAO.Recordset, UltimaData As Date
    Dim I As Integer, NrEmp As Integer, NomeEmp As String, Cont As Integer, RstEmpresas As DAO.Recordset, Empresa As String, UltimoFuncionario As String, UltimaEmpresa As String, UltimoCargo As String

    CurrentDb.Execute "DELETE * FROM Tabela2;"

    Set Rst = CurrentDb.OpenRecordset("SELECT DISTINCT [Nome Funcionario] FROM Geral ORDER BY [Nome Funcionario];")
    Rst.MoveLast: Rst.MoveFirst
    NrEmp = Rst.RecordCount - 1
    For I = 0 To NrEmp - 1
    Rst.MoveFirst
    Rst.Move I
    NomeEmp = Rst(0)
    Rst.MoveNext
    Do While Not Rst.EOF
    CurrentDb.Execute "INSERT INTO Tabela2(Emp1,Emp2) VALUES('" & NomeEmp & "','" & Rst(0) & "')"
    Rst.MoveNext
    Loop
    Next
    Set Rst = CurrentDb.OpenRecordset("SELECT DISTINCT Emp1, Emp2 FROM Tabela2;")
    Do While Not Rst.EOF
    Set rstDatas = CurrentDb.OpenRecordset("SELECT [Data Admissao],year([Data Admissao]) as dtAno,Month([Data Admissao]) as dtMes,Day([Data Admissao]) as dtDia FROM Geral WHERE [Nome Funcionario]='" & Rst(0) & "' or [Nome Funcionario]='" & Rst(1) & "' UNION SELECT IIf(IsNull([Data Demissao]),Format(Now,'dd-mm-yyyy'),[Data Demissao]),IIf(IsNull([Data Demissao]),Year(Now),Year([Data Demissao])),IIf(IsNull([Data Demissao]),Month(Now),Month([Data Demissao])),IIf(IsNull([Data Demissao]),Day(Now),Day([Data Demissao])) FROM Geral WHERE [Nome Funcionario]='" & Rst(0) & "' or [Nome Funcionario]='" & Rst(1) & "' ORDER BY dtAno, dtMes, dtDia;")
    Do While Not rstDatas.EOF
    If rstDatas.AbsolutePosition = 0 Then
    UltimaData = rstDatas(0)
    Else
    Set RstEmpresas = CurrentDb.OpenRecordset("SELECT [Nome Funcionario],[Nome Empresa],[cargo funcionario] FROM Geral WHERE [Nome Funcionario]='" & Rst(0) & "' and [Data Admissao]<=#" & UltimaData & "# And IIf(IsNull([Data Demissao]),Format(Now(),'dd-mm-yyyy'),[Data Demissao])>=#" & rstDatas(0) & "# UNION SELECT [Nome Funcionario],[Nome Empresa],[cargo funcionario] FROM Geral WHERE [Nome Funcionario]='" & Rst(1) & "' and [Data Admissao]<=#" & UltimaData & "# And IIf(IsNull([Data Demissao]),Format(Now(),'dd-mm-yyyy'),[Data Demissao])>=#" & rstDatas(0) & "# ORDER BY [Nome Empresa], [Nome Funcionario], [cargo Funcionario];")
    UltimoFuncionario = "": UltimaEmpresa = "": UltimoCargo = ""
    Do While Not RstEmpresas.EOF
    If RstEmpresas(1) = UltimaEmpresa Then
    If IsNull(DLookup("Empresa", "Tabela2", "Emp1='" & Rst(0) & "' and Emp2='" & Rst(1) & "'")) Then
    CurrentDb.Execute "UPDATE Tabela2 SET Empresa='" & UltimaEmpresa & "',Periodo='Entre " & UltimaData & " e " & rstDatas(0) & "',Cargo1='" & UltimoCargo & "',Cargo2='" & RstEmpresas(2) & "' WHERE Emp1='" & Rst(0) & "' and Emp2='" & Rst(1) & "';"
    Else
    CurrentDb.Execute "INSERT INTO Tabela2(Empresa,Periodo,Emp1,cargo1,emp2,cargo2) VALUES ('" & RstEmpresas(1) & "','Entre " & UltimaData & " e " & rstDatas(0) & "','" & Rst(0) & "','" & UltimoCargo & "','" & Rst(1) & "','" & RstEmpresas(2) & "');"
    End If
    Else
    UltimoFuncionario = RstEmpresas(0): UltimaEmpresa = RstEmpresas(1): UltimoCargo = RstEmpresas(2)
    End If
    RstEmpresas.MoveNext
    Loop
    End If
    UltimaData = rstDatas(0)
    rstDatas.MoveNext
    Loop
    Rst.MoveNext
    Loop
    Set Rst = Nothing: Set rstDatas = Nothing: Set RstEmpresas = Nothing
    CurrentDb.Execute "DELETE * FROM Tabela2 WHERE IsNull(Empresa);"
    End Sub

    Veja o código e os registos para o relacionamento de 2 em 2 funcionários. Tente adaptar para um nº de funcionários variável.
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Seg 25 Jun - 13:17

    Entendi a ideia, vou tentar depois dou o feedback, muito obrigado!

    cheers
    avatar
    sergio-pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 27
    Registrado : 13/02/2011

    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  sergio-pereira Ter 10 Jul - 17:50

    Boa noite, antes demais quero agradecer toda a ajuda que me tem dado sobre este tópico, infelizmente por não perceber muito da linguagem utilizada estou a tentar entender passo a passo com grandes limitações a ideia que aqui me foi dada.

    Fiz o que o amigo Alexandre Neves sugeriu ou seja a replicação do código para situações análogas e a leitura é exactamente a que pretendia.

    Ante o expoxto o meu mais sincero agradecimento ao forum e em especial ao Alexandre.

    Por tal o meu Bem Hajam!

    Conteúdo patrocinado


    [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver Empty Re: [Resolvido]Consulta ou outra que possa resolver esta embrulhada que não consigo resolver

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qui 21 Nov - 9:20