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]Dúvida com calendário

    Thearles
    Thearles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 26/12/2011

    [Resolvido]Dúvida com calendário Empty [Resolvido]Dúvida com calendário

    Mensagem  Thearles 19/3/2020, 22:59

    Saudações a todos!

    Sou iniciante em Access, e venho, mais uma vez, pedir a ajuda dos amigos a respeito de uma questão.

    Peguei aqui no fórum um exemplo de calendário, maravilhoso, e adaptei ao meu banco de dados. O meu formulário (chamado "Acessar"), que faz a entrada dos dados na tabela "Dados" salva no campo "Título" da tabela o número correspondente ao título que eu escolhi através da caixa de combinação "Título".

    Mas, ao abrir o formulário "Calendário_publicação", e navegar até a data do registro (se for o registro n° 1, 25/02/2013), o formulário exibe o número associado ao título, e não o próprio título. Eu gostaria de abrir o formulário "Calendário_publicação" e ver os títulos, e não os números.

    Segue link para download do banco de dados.

    Agradeço a todos que puderem ajudar.

    ths.box.com/s/5cnn70y631d4r53h4bq3lw9uwi53nxbt




    O código original era este:

    Public Sub PutInData()
       Dim sql As String
       Dim f As Form
       Dim db As DAO.Database
       Dim rs As DAO.Recordset
       Dim mynum
       Dim i As Integer
       Dim MinhaData As Date
                     
       Set f = Forms!Calendário_downloads
       
       For i = 1 To 37
           f("text" & i) = Null
       Next i
       
       sql = "SELECT * FROM [Dados] WHERE ((MONTH(Data) = " & f!Month & " AND YEAR(Data) = " & f!Year & ")) ORDER BY Data;"
           
       Set db = CurrentDb()
       Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
       If rs.RecordCount > 0 Then
           For i = 1 To 37
              If IsDate(f("date" & i)) Then
                   MinhaData = Format((f("date" & i)), "mm/dd/yyyy")
                   rs.FindFirst "Data_do_download = #" & MinhaData & "#"

                   If Not rs.NoMatch Then
                       f("text" & i) = rs!Título
               End If
               End If
           Next i
       End If
    End Sub



    Tentei fazer assim, mas não funcionou, conforme mostra a imagem anexada.

    Public Sub PutInData()
       Dim sql As String
       Dim f As Form
       Dim db As DAO.Database
       Dim rs As DAO.Recordset
       Dim mynum
       Dim i As Integer
       Dim MinhaData As Date
                     
       Set f = Forms!Calendário_publicação
       
       For i = 1 To 37
           f("text" & i) = Null
       Next i
       
       sql = "SELECT * FROM [Dados] WHERE ((MONTH(Data) = " & f!Month & " AND YEAR(Data) = " & f!Year & ")) ORDER BY Data;"
           
       Set db = CurrentDb()
       Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
       If rs.RecordCount > 0 Then
           For i = 1 To 37
              If IsDate(f("date" & i)) Then
                   MinhaData = Format((f("date" & i)), "mm/dd/yyyy")
                   rs.FindFirst "Data = #" & MinhaData & "#"

                   If Not rs.NoMatch Then
                       f("text" & i) = "SELECT * FROM [Título] WHERE Título.Título_Cx_Listagem = Dados.Título;"
               End If
               End If
           Next i
       End If
    End Sub
    Anexos
    [Resolvido]Dúvida com calendário AttachmentImagem.jpg
    Você não tem permissão para fazer download dos arquivos anexados.
    (32 Kb) Baixado 14 vez(es)
    cleverson_manaus
    cleverson_manaus
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1022
    Registrado : 23/09/2011

    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  cleverson_manaus 20/3/2020, 18:00



    boas,


    o campo Titulo da tabela Dados bem como outros estão sem dados.

    A integridade referencial não existe entre as tabelas que deseja manipular.

    abraços,







    .................................................................................
    afro

    "É fazendo que se aprende a fazer aquilo que se deve aprender a fazer."(Aristóteles)
    - Dúvida resolvida!!! Marcar o tópico como resolvido!!!
    Thearles
    Thearles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 26/12/2011

    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Thearles 20/3/2020, 21:57

    Saudações!

    Agradeço ao amigo cleverson_manaus pela resposta. Não procede. Os dados estão lá, é o número zero, que corresponde ao título "O Profeta" na tabela "Título.
    Aparentemente você não entendeu o meu problema.
    Ao abrir o formulário "Calendário_publicação", e navegar até a data do registro (se for o registro n° 1, 25/02/2013), o formulário exibe o número associado ao título, e não o próprio título. Eu gostaria de abrir o formulário "Calendário_publicação" e ver os títulos, e não os números.

    Agradeço quem puder ajudar.
    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]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Alexandre Neves 20/3/2020, 22:34

    Boa noite
    Explique o que quer mostrar e condições


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Thearles
    Thearles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 26/12/2011

    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Thearles 20/3/2020, 22:56

    Boa noite!

    Novamente:

    ao abrir o formulário "Calendário_publicação", e navegar até a data do registro (se for o registro n° 1, 25/02/2013), gostaria que o formulário exibisse os títulos, e não os números.
    É preciso fazer uma consulta, conforme está destacado nas linhas em vermelho no código abaixo, porém desta forma não funciona. Obrigado.

    Public Sub PutInData()
      Dim sql As String
      Dim f As Form
      Dim db As DAO.Database
      Dim rs As DAO.Recordset
      Dim mynum
      Dim i As Integer
      Dim MinhaData As Date
                   
      Set f = Forms!Calendário_publicação
     
      For i = 1 To 37
          f("text" & i) = Null
      Next i
     
      sql = "SELECT * FROM [Dados] WHERE ((MONTH(Data) = " & f!Month & " AND YEAR(Data) = " & f!Year & ")) ORDER BY Data;"
         
      Set db = CurrentDb()
      Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
      If rs.RecordCount > 0 Then
          For i = 1 To 37
             If IsDate(f("date" & i)) Then
                  MinhaData = Format((f("date" & i)), "mm/dd/yyyy")
                  rs.FindFirst "Data = #" & MinhaData & "#"

                  If Not rs.NoMatch Then
                      f("text" & i) = "SELECT * FROM [Título] WHERE Título.Título_Cx_Listagem = Dados.Título;"
              End If
              End If
          Next i
      End If
    End Sub
    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]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Alexandre Neves 22/3/2020, 12:55

    Boa tarde
    Sim, mas o que quer mostrar? Explique textualmente


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Thearles
    Thearles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 26/12/2011

    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Thearles 22/3/2020, 13:05

    Bom dia!

    Com todo respeito, parece que os amigos não estão lendo as mensagens aqui no fórum. Já está perfeitamente explicado, mas vou repetir. Só lembrando que o banco de dados e os códigos estão nas mensagens anteriores.

    Ao abrir o formulário "Calendário_publicação", e navegar até a data do registro (se for o registro n° 1, 25/02/2013), gostaria que o formulário exibisse os títulos, e não os números.
    É preciso fazer uma consulta, conforme está destacado nas linhas em vermelho no códigos das mensagens anteriores, porém desta forma não funciona. Obrigado.
    Thearles
    Thearles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 26/12/2011

    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Thearles 22/3/2020, 13:10

    Passo a passo:
    1) Abrir o formulário "Calendário_publicação"
    2) Navegar até a dada 25/02/2013, digitando o ano na caixa de seleção e voltando um mês através do botão de comando "Ir para anterior".
    3) Olhe os dias 25, 26, 27 e 28. Estão mostrando a consulta que não funciona, ao invés do título, que é o que eu gostaria de ver.
    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]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Alexandre Neves 22/3/2020, 14:28

    O colega é que não está a explicar bem
    Já tinha percebido o que explicou agora, Só não entendi o que ainda não disse
    Que título é que quer que mostre? Ainda não vi nenhuma explicação


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Thearles
    Thearles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 26/12/2011

    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Thearles 22/3/2020, 17:25

    Boa tarde!

    Ao abrir o formulário "Editar", há uma caixa de combinação chamada "Combinação1494" que puxa dados da tabela "Título". Essa caixa de combinação salva, na tabela "Dados", o número correspondente ao título escolhido.
    Só que, salvando o número, e não o título, ao abrir o formulário "Calendário_publicação" ele exibe o número salvo, e não o título, o que gera a necessidade de incluir no código uma consulta para fazer essa correspondência.
    Eu quero ver no formulário "Calendário_publicação" o título, e não o número.
    Por exemplo, se abrir o formulário "Calendário_publicação" e navegar até a data 25/02/2013, no dia 25, deveria aparecer o texto "O Profeta", pois está salvo na tabela "Dados" o número zero, que na tabela "Título" corresponde a "O Profeta".
    Estou tentando esclarecer melhor, se ainda não estiver claro, por favor questione novamente.

    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]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Alexandre Neves 22/3/2020, 19:57

    Agora, ficou mais claro mas, ao tempo que anda com o Access, já devia ter precauções essenciais na construção da bd, de forma a evitar situações confusas até para o Access
    Por exemplo, não deve usar palavras reservadas (Data não deve ser usada para campo, para variáveis, etc); Não deve usar palavras acentuadas (Título confunde-se facilmente com Titulo), etc

    Sobre a sua questão, é de um Dlookup básico:
    f("text" & i) = DLookup("Título", "Título", "Título_Cx_Listagem=" & rs("Título"))


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Thearles
    Thearles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 26/12/2011

    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Thearles 22/3/2020, 21:08

    Boa tarde!

    Funcionou perfeitamente. Muito obrigado.

    Agradeço também sobre as recomendações em relação ao banco de dados.
    Ao clicar duas vezes sobre a data selecionada, no formulário "Calendário_publicação", recebo como retorno o seguinte erro: "A expressão contém um nome ambíguo. Verifique se cada nome na expressão refere-se a um objeto exclusivo." Saberia dizer onde está o erro?
    Eu gostaria, ainda, de exibir mais de um título dentro de cada data. Ou seja, ao clicar sobre a data, gostaria que fossem exibidos todos os registros do banco de dados com a data selecionada. Mas talvez isso seja assunto para um novo tópico.
    Agradeço se puder ajudar.
    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]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Alexandre Neves 22/3/2020, 22:30

    Isso deve-se ao facto de ter 2 funções com o mesmo nome (SendToInputBox)
    Afinal trata-se da mesma função repetida. Elimine uma delas e funcionará


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Thearles
    Thearles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 26/12/2011

    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Thearles 22/3/2020, 22:45

    Boa noite!

    Muito obrigado, Alexandre Neves! Forte abraço.
    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]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Alexandre Neves 22/3/2020, 22:45

    Para juntar os nomes todos
    Código:
    Public Sub PutInData()
        Dim sql As String
        Dim f As Form
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Dim mynum
        Dim i As Integer
        Dim MinhaData As Date
                     
        Set f = Forms!Calendário_publicação
       
        For i = 1 To 37
            f("text" & i) = Null
        Next i
       
        sql = "SELECT * FROM Dados LEFT JOIN Título ON Dados.Título=Título.Título_Cx_Listagem WHERE Month(Data)=" & f!Month & " AND Year(Data)=" & f!Year & " ORDER BY Data;"
           
        Set db = CurrentDb()
        Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
        If rs.RecordCount > 0 Then
            For i = 1 To 37
              If IsDate(f("date" & i)) Then
                    MinhaData = Format((f("date" & i)), "mm/dd/yyyy")
                    rs.FindFirst "Data = #" & MinhaData & "#"
                    If Not rs.NoMatch Then
                        Do Until rs.EOF
                            f("text" & i) = f("text" & i) & "+" & rs("Título.Título")
                            rs.MoveNext
                        Loop
                        f("text" & i) = Mid(f("text" & i), 2)
                    End If
                End If
            Next i
        End If
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Thearles
    Thearles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 26/12/2011

    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Thearles 22/3/2020, 23:01

    Boa noite Alexandre!

    Agradeço a disponibilidade.
    Testei o código, porém ele parece ignorar a data selecionada. No dia 25/02/2013, ele mostra todos os registros com datas a partir do dia 25/02/2013, com os títulos entre sinais de +, e assim sucessivamente, nos dias seguintes.
    Gostaria que ele mostrasse apenas os registros da data selecionada.
    Para fazer o teste, alterei o registro nº 70 para "Jornal Nacional", e incluí a data 25/02/2013 na caixa de seleção Combinação1494 (Título). Desta forma, ao abrir "Calendário_publicação" na data de 25/02/2013 eu deveria ver Jornal Nacional, O Profeta, dois registros. Mas vejo "Jornal Nacional+O Profeta+O Profeta+O Profeta+O Profeta". Agradeço se puder ajudar.

    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]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Alexandre Neves 22/3/2020, 23:24

    Veja se funciona como pretende (não verificar pelos últimos dados que apresentou)
    Código:
    Public Sub PutInData()
        Dim sql As String, f As Form, db As DAO.Database, rs As DAO.Recordset, rs2 As DAO.Recordset, mynum, i As Integer, MinhaData As Date
                     
        Set f = Forms!Calendário_publicação
       
        For i = 1 To 37
            f("text" & i) = Null
        Next i
       
        sql = "SELECT * FROM Dados LEFT JOIN Título ON Dados.Título=Título.Título_Cx_Listagem WHERE Month(Data)=" & f!Month & " AND Year(Data)=" & f!Year & " ORDER BY Data;"
        Set db = CurrentDb()
        Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
        If rs.RecordCount > 0 Then
            For i = 1 To 37
              If IsDate(f("date" & i)) Then
                    MinhaData = Format((f("date" & i)), "mm/dd/yyyy")
                    rs.Filter = "Data = #" & MinhaData & "#"
                    Set rs2 = rs.OpenRecordset
                    If Not rs2.NoMatch Then
                        f("text" & i) = Null
                        Do Until rs2.EOF
                            f("text" & i) = f("text" & i) & "+" & rs2("P1.Título.Título")
                            rs2.MoveNext
                        Loop
                        f("text" & i) = Mid(f("text" & i), 2)
                    End If
                End If
            Next i
        End If
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    [Resolvido]Dúvida com calendário Empty Re: [Resolvido]Dúvida com calendário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 10:09