Como combinar vários registros de filho em um registro no Access 2002

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 318642
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Avançadas: Requer especialista de codificação, interoperabilidade e habilidades de multiusuário.

Para uma versão deste artigo do Microsoft Microsoft Access 2000, consulte 322813.
Para uma versão deste artigo do Microsoft Microsoft Access 97, consulte 322863.
Sumário
Este artigo mostra como combinar vários registros de filho em um registro. No exemplo a seguir, que usa o banco de dados de exemplo Northwind.mdb, a consulta SQL passa o nome da categoria para a função CombineChildRecords . A função cria um objeto Recordset do categoria específicas que se baseia na tabela Produtos e, em seguida, analisa o objeto Recordset para gerar uma lista delimitada por vírgulas de produtos.
Mais Informações
A função CombineChildRecords aceita os seguintes argumentos.
   Argument                   Description   ---------------------------------------------------------------------   strTblQryIn                The name of the table that contains the                               data that you want, or the name of the                               query that returns the data that you want.                               If you use a query, the query must not                               contain parameters.     strFieldNameIn             The name of the field that contains the                               data that you want.   strLinkChildFieldNameIn    The name of the field on which the                               child records link.   varPKVvalue                A value from the field in the current                               record in the query.   strDelimiter               The character that you want to delimit                               the results. If this argument is                               not supplied, the function uses a                               semicolon (;).				

Para combinar todos os nomes dos produtos de cada categoria em um campo, execute estas etapas:
  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Adicione a seguinte função a um módulo global:
    Function CombineChildRecords(strTblQryIn As String, _strFieldNameIn As String, strLinkChildFieldNameIn As String, _varPKVvalue As Variant, Optional strDelimiter) As Variant   Dim db As DAO.Database       Dim qd As DAO.QueryDef       Dim rs As DAO.Recordset       Dim strSQL As String       Dim varResult As Variant         Set db = CurrentDb     Set qd = db.CreateQueryDef("")   If IsMissing(strDelimiter) Then strDelimiter = "; "   strSQL = "SELECT [" & strFieldNameIn & "] FROM [" & strTblQryIn & "]"   qd.SQL = strSQL & " WHERE [" & strLinkChildFieldNameIn & "] = [ParamIn]"    qd.Parameters("ParamIn").Value = varPKVvalue       Set rs = qd.OpenRecordset()      Do Until rs.EOF            varResult = varResult & rs.Fields(strFieldNameIn).Value & strDelimiter     rs.MoveNext   Loop   rs.Close   If Len(varResult) > 0 Then varResult = Left$(varResult, _Len(varResult) - 2)    CombineChildRecords = varResult    Set rs = Nothing   Set qd = Nothing   Set db = NothingEnd Function					
  3. Salve o módulo e fechá-lo.
  4. Clique na guia consultas e, em seguida, clique em novo .
  5. Clique em OK e em seguida, clique em Fechar para fechar a caixa de diálogo Mostrar tabela .
  6. No menu Exibir , clique em Exibir SQL .
  7. No Editor do SQL, adicione o seguinte código:
    SELECT Categories.CategoryID, Categories.CategoryName, Categories.Description, CombineChildRecords("Products","ProductName","CategoryID",[CategoryID],",") AS ProductsListFROM Categories;					
  8. Salve a consulta como qryCombineProducts e executá-lo.

    O campo ProductsList contém todos os nomes dos produtos em uma determinada categoria, separados por vírgulas.
PRB inf

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 318642 - Última Revisão: 12/07/2015 09:05:10 - Revisão: 3.2

Microsoft Access 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbfunctions kbhowto KB318642 KbMtpt
Comentários