locked
Consulta Simples? RRS feed

  • Pergunta

  • Pessoal tenho as seguintes tabelas

     

    Pai

     

    pai_id pai_nome

         1 Fujika Maria Nakombi

         2 Fujika Maria Namoto

     

    Filho

     

    fil_id fil_nome            pai_id

         1 Pedro K Beludo      1

         2 Chico do Morro      2

         3 Leonardo da Quinze  1

     

    O que eu gostaria é retornar a seguinte consulta:

     

    pai                  filhos

    Fujika Maria Nakombi Pedro K Beludo / Leonardo da Quinze

    Fujika Maria Namoto  Chico do Morro

     

    Obrigado.

     

    terça-feira, 3 de junho de 2008 12:58

Respostas

Todas as Respostas

  • Carlos,

     

    Adicione um módulo no access e adicione o seguinte código:

     

    Code Snippet

    Option Compare Database
    Option Explicit

     

    Public Function ListaFilhos(lngPAI_ID As Long) As String

      Dim cnnDB As ADODB.Connection
      Dim rstDados As ADODB.Recordset
      Dim strFilhos As String

      ' Get connection to current database.
      Set cnnDB = CurrentProject.Connection
       
      Set rstDados = New ADODB.Recordset
      rstDados.Open "SELECT * FROM FILHO WHERE PAI_ID = " & lngPAI_ID, cnnDB
       
      strFilhos = ""
      Do While Not rstDados.EOF()
     
        strFilhos = strFilhos & " / " & rstDados("fil_nome")
        rstDados.MoveNext
      Loop

      'liberar objetos
      rstDados.Close
      Set rstDados = Nothing
     
      cnnDB.Close
      Set cnnDB = Nothing
     
      ListaFilhos = strFilhos
       
    End Function

     

     

    Depois, Adicione a seguinte consulta:

     

    Code Snippet
    SELECT Pai.pai_id, Pai.pai_nome, ListaFilhos([pai_id]) AS NomeFilhos
    FROM Pai;

     

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

    terça-feira, 3 de junho de 2008 13:17
  • Era exatamente o que eu estava precisando muito obrigado.

    terça-feira, 3 de junho de 2008 13:31
  • terça-feira, 3 de junho de 2008 13:32
  • Obrigado pela ajuda, no entanto, tenho outro problema a função que está contida no módulo só funciona dentro do Access, ou seja, meu sistema desenvolvido em C# que acessa o mesmo não tem condições de executar a consulta, a mesma gera um erro dizendo que não encontrou a função, pelo que pesquisei na internet não é possível mesmo executar uma função fora do Access o que torna essa solução ineficiente.

     

    Gostaria de saber o que você me sugere fazer, obrigado.

     

    quinta-feira, 5 de junho de 2008 14:00