Olá pessoal do MaximoAccess!
Como sempre, preciso de uma ajudinha de vocês.
Tenho uma tablela mãe com um INDEX, onde cadastro processos. Tenho outra tabela, também com INDEX, onde coloco as informações de tramitação de cada processo. (Os dois INDEX estão relacionados) Ou seja, um registro da primeira tabela é vinculado a vários registros da segunda. O que tenho que fazer é apresentar um relatório e, para cada registro, popular uma listbox com os registros da segunda tabeja cujo INDEX coincida com o da primeira. Fiz o seguinte código VBA, no evento Report_Load():
Private Sub Report_Load()
Me.Lista17.RowSource = "SELECT REG_TEMPO_MEDIO_LEGIS.INDEX, REG_TEMPO_MEDIO_LEGIS.ORDEM_REG, REG_TEMPO_MEDIO_LEGIS.CLASSE, REG_TEMPO_MEDIO_LEGIS.TIPO_DOC, REG_TEMPO_MEDIO_LEGIS.NUM_DOC, REG_TEMPO_MEDIO_LEGIS.DATA_ENTRADA, REG_TEMPO_MEDIO_LEGIS.UNIDADE_ORG, REG_TEMPO_MEDIO_LEGIS.DATA_SAIDA, REG_TEMPO_MEDIO_LEGIS.TEMPO_TOTAL, REG_TEMPO_MEDIO_LEGIS.FASE_LEGIS FROM REG_TEMPO_MEDIO_LEGIS WHERE (((REG_TEMPO_MEDIO_LEGIS.INDEX)= " & Me.[INDEX] & ")) ORDER BY REG_TEMPO_MEDIO_LEGIS.DATA_ENTRADA, REG_TEMPO_MEDIO_LEGIS.DATA_SAIDA, REG_TEMPO_MEDIO_LEGIS.ORDEM_REG"
Me.Lista17.Requery
End Sub
O que ocorre é que para todos os registros da primeira tabela ele está apresentando na list box, os registros da segunda tabela, mas referentes apenas ao último registro da primeira tabela. Ou seja, a listbox é populada mas para todos os registros com o mesmo conteúdo. Tenho que por esse código em outro evento? Há como fazer isso mais fácil, mesmo sem VBA, ou com outro método? Ajuda é bem vinda.
OBRIGADO!!!!
BONUS: Se alguém ainda puder me ajudar a, após populada a listbox, o tamanho dela se ajuste no relatório segundo o número de itens (há mais linhas do que altura, então os dados estão sendo cortados na impressão).
Onde eu devo colocar esse código para que ele calcule a listbox para cada registro da primeira tabela?
Como sempre, preciso de uma ajudinha de vocês.
Tenho uma tablela mãe com um INDEX, onde cadastro processos. Tenho outra tabela, também com INDEX, onde coloco as informações de tramitação de cada processo. (Os dois INDEX estão relacionados) Ou seja, um registro da primeira tabela é vinculado a vários registros da segunda. O que tenho que fazer é apresentar um relatório e, para cada registro, popular uma listbox com os registros da segunda tabeja cujo INDEX coincida com o da primeira. Fiz o seguinte código VBA, no evento Report_Load():
Private Sub Report_Load()
Me.Lista17.RowSource = "SELECT REG_TEMPO_MEDIO_LEGIS.INDEX, REG_TEMPO_MEDIO_LEGIS.ORDEM_REG, REG_TEMPO_MEDIO_LEGIS.CLASSE, REG_TEMPO_MEDIO_LEGIS.TIPO_DOC, REG_TEMPO_MEDIO_LEGIS.NUM_DOC, REG_TEMPO_MEDIO_LEGIS.DATA_ENTRADA, REG_TEMPO_MEDIO_LEGIS.UNIDADE_ORG, REG_TEMPO_MEDIO_LEGIS.DATA_SAIDA, REG_TEMPO_MEDIO_LEGIS.TEMPO_TOTAL, REG_TEMPO_MEDIO_LEGIS.FASE_LEGIS FROM REG_TEMPO_MEDIO_LEGIS WHERE (((REG_TEMPO_MEDIO_LEGIS.INDEX)= " & Me.[INDEX] & ")) ORDER BY REG_TEMPO_MEDIO_LEGIS.DATA_ENTRADA, REG_TEMPO_MEDIO_LEGIS.DATA_SAIDA, REG_TEMPO_MEDIO_LEGIS.ORDEM_REG"
Me.Lista17.Requery
End Sub
O que ocorre é que para todos os registros da primeira tabela ele está apresentando na list box, os registros da segunda tabela, mas referentes apenas ao último registro da primeira tabela. Ou seja, a listbox é populada mas para todos os registros com o mesmo conteúdo. Tenho que por esse código em outro evento? Há como fazer isso mais fácil, mesmo sem VBA, ou com outro método? Ajuda é bem vinda.
OBRIGADO!!!!
BONUS: Se alguém ainda puder me ajudar a, após populada a listbox, o tamanho dela se ajuste no relatório segundo o número de itens (há mais linhas do que altura, então os dados estão sendo cortados na impressão).
Onde eu devo colocar esse código para que ele calcule a listbox para cada registro da primeira tabela?
Última edição por Quincasborba em 29/8/2016, 18:30, editado 1 vez(es)