MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Select... Where

    Compartilhe

    Adao Carlos Alves
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 23/11/2015

    [Resolvido]Select... Where

    Mensagem  Adao Carlos Alves em Seg 23 Nov 2015, 15:09

    Olá Pessoal!

    Tenho uma tabela com as seguintes colunas:
    Coluna1     Coluna2      Coluna3             Coluna4
    12345678      10         10/10/2015           João
    90123456       5          10/10/2015           Maria
    78901234       5          10/10/2015           Carlos
    12345678      10          10/10/2015           Marcos

    Usei a seguinte instrução:

    Public Function fNomes(Coluna 1 As Double) As String

    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("Select Coluna 4 From tabela Where (Coluna1, coluna2, coluna3) = " & coluna 1, " & coluna2, " & coluna3)
    Dim str As String

    str = rs!Coluna4
    rs.MoveNext
    Do While Not rs.EOF
       str = str & ", " & rs!NomeGuerra
       rs.MoveNext
    Loop
    fNomes = str
    rs.Close

    End Function


    Sempre da erro?

    O resultado que esperava:

    Coluna1     Coluna2      Coluna3             Coluna4
    12345678      10         10/10/2015           João, Marcos
    90123456       5          10/10/2015           Maria
    78901234       5          10/10/2015           Carlos
         


    Alguma dica???


    Obrigado a todos....

    clynton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 307
    Registrado : 08/07/2013

    Re: [Resolvido]Select... Where

    Mensagem  clynton em Seg 23 Nov 2015, 19:24

    Adão, bem vindo ao Fórum!

    As informações estão subentendidas...
    ...descreva por favor que tipo de informações são essas.
    Exemplo: O que é para a primeira linha: 12345678, 10, 10/10/2015 e João.
    Pergunto porque ficou impossível compreender, já que os nomes dos campos estão como: Coluna1, Coluna2, Coluna3 e Coluna4.
    Onde e de que forma pretende exibir o resultado?
    Passe o nome da Tabela, se tiver alguma Consulta, informe o nome também e claro o nome dos Formulários.
    Se não for simplesmente o resultado de uma consulta, diga-nos que processo exatamente está tentando executar.


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."

    Adao Carlos Alves
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 23/11/2015

    Select... Where

    Mensagem  Adao Carlos Alves em Seg 23 Nov 2015, 23:23

    Sim, é uma consulta onde quero mostrar os dados agrupados das colunas ordem, ppu e data, já a coluna NomeGuerra fique em linha com os nomes separados por vírgula. Usei o código que enviei anteriormente, funciona apenas com uma das colunas (Ordem, PPU, Data), mas o que preciso é que os nomes mostrados sejam aqueles onde o conteúdo da coluna se repetir nas três colunas citadas.

    Espero ter esclarecido...


    Por exemplo:

    Ordem PPU Data Fnomes (ordem, ppu, data)
    2009747200 0 13/11/2015 FABIANO
    2009747200 0 13/11/2015 ALESSANDRO
    2009747200 100 12/11/2015 DÊNIS
    2009747200 100 13/11/2015 MARCOS
    2009747200 100 13/11/2015 DÊNIS
    2009747200 100 13/11/2015 DÊNIS

    Aplicando o código ficaria

    Ordem PPU Data Fnomes (ordem, ppu, data)
    2009747200 0 13/11/2015 FABIANO, ALESSANDRO
    2009747200 100 12/11/2015 DÊNIS
    2009747200 100 13/11/2015 DÊNIS, MARCOS


    Public Function fNomes(ORDEM As Double) As String

    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("Select NomeGuerra From teste Where[ORDEM]= " & ORDEM)
    Dim str As String

    str = rs!NomeGuerra
    rs.MoveNext
    Do While Not rs.EOF
    str = str & ", " & rs!NomeGuerra
    rs.MoveNext
    Loop
    fNomes = str
    rs.Close

    End Function





    clynton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 307
    Registrado : 08/07/2013

    Re: [Resolvido]Select... Where

    Mensagem  clynton em Ter 24 Nov 2015, 15:28

    Pretende exibir o resultado da Consulta numa Caixa de Listagem ou Grade?!


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1097
    Registrado : 21/01/2012

    Re: [Resolvido]Select... Where

    Mensagem  Cláudio Más em Ter 24 Nov 2015, 16:13

    Set rs = CurrentDb.OpenRecordset("Select Coluna4 From tabela Where Coluna1 = " & [coluna 1] & " And coluna2 = " & coluna2 & " And coluna3 = " & coluna3)

    Adao Carlos Alves
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 23/11/2015

    Re: [Resolvido]Select... Where

    Mensagem  Adao Carlos Alves em Qua 25 Nov 2015, 16:06

    Cláudio,

    Funcionou parcialmente, ou seja, com a colunas1 e coluna2 funciona perfeitamente, mas quando acrescento a coluna3 dá: "erro de tempo de execução - nenhum registro atual", ao depurar destaca em amarelo a linha "str = rs!NomeGuerra".
    Tentei declarar de duas formas:
    Public Function fNomes(campo1 As Double, campo2 As Double, campo3 as date) As String
    Public Function fNomes(campo1, campo2, campo3) As String
    Entretanto nenhuma funcionou. Conferi o tipo de dados na tabela referente ao campo3 e está data/hora.

    Outra dúvida: Gostaria que o campo4 não mostra-se valor repetidos, exemplo: tenho quatro situação onde aparece o nome joão, preciso que o resultado seja apenas joão e não joão, joão, joão, joão, em caso de nomes diferentes aí sim joão, maria, joana, margarida.

    Funciona:
    Set rs = CurrentDb.OpenRecordset("Select Coluna4 From tabela Where Coluna1 = " & [coluna 1] & " And coluna2 = " & coluna2)

    Não Funciona:
    Set rs = CurrentDb.OpenRecordset("Select Coluna4 From tabela Where Coluna1 = " & [coluna 1] & " And coluna2 = " & coluna2 & " And coluna3 = " & coluna3)

    Clynton,

    Exibir na Grade..


    Obrigado pelo apoio...

    Grato!

    Adao Carlos Alves
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 23/11/2015

    Re: [Resolvido]Select... Where

    Mensagem  Adao Carlos Alves em Qua 25 Nov 2015, 16:15

    Desculpe a linha que destaca ao depurar é "str = rs!campo4".

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1097
    Registrado : 21/01/2012

    Re: [Resolvido]Select... Where

    Mensagem  Cláudio Más em Qua 25 Nov 2015, 16:32

    Set rs = CurrentDb.OpenRecordset("Select Coluna4 From tabela Where Coluna1 = " & coluna1 & " And coluna2 = " & coluna2 & " And coluna3 = #" & coluna3 & "# Group By Coluna4")
    If rs.EOF then
       str=""
    Else

    Adao Carlos Alves
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 23/11/2015

    Re: [Resolvido]Select... Where

    Mensagem  Adao Carlos Alves em Qua 25 Nov 2015, 20:00

    Claúdio,

    O código ficou como abaixo, por gentileza dá uma olhadinha e vê se consegue ajudar, não funcionou...

    Obrigado!

    Public Function fNomes15(ordem As Long, ppu As Integer, data As Date) As String

    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("Select NomeGuerra From Teste Where ordem =" & ordem & " And ppu = " & ppu & " And data = # " & data & "# Group by NomeGuerra")
    Dim str As String
    If rs.EOF Then
      str = ""
    Else
    str = rs!NomeGuerra 'A execução do código parou aqui'
    rs.MoveNext
    Do While Not rs.EOF
       str = str & ", " & rs!NomeGuerra
       rs.MoveNext
    Loop
    fNomes = str
    rs.Close
    End If


    End Function

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1097
    Registrado : 21/01/2012

    Re: [Resolvido]Select... Where

    Mensagem  Cláudio Más em Qua 25 Nov 2015, 20:27

    Talvez tenha que formatar a data:

    Set rs = CurrentDb.OpenRecordset("Select NomeGuerra From Teste Where ordem =" & ordem & " And ppu = " & ppu & " And Format$(data,'dd/mm/yy') = '" & Format$(data,"dd/mm/yy") & "' Group by NomeGuerra")

    Se ainda não funcionar, pode ter relação com os dados, nesse caso vou precisar de uma cópia do banco de dados.

    Adao Carlos Alves
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 23/11/2015

    Re: [Resolvido]Select... Where

    Mensagem  Adao Carlos Alves em Seg 30 Nov 2015, 11:33

    Cláudio,

    Muito obrigado!

    Funcionou perfeitamente.

    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1097
    Registrado : 21/01/2012

    Re: [Resolvido]Select... Where

    Mensagem  Cláudio Más em Seg 30 Nov 2015, 12:22

    De nada, valeu.

      Data/hora atual: Sab 10 Dez 2016, 12:37