MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    Ajuda com Banco de Dados

    Compartilhe

    pfdstm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 04/11/2016

    Ajuda com Banco de Dados

    Mensagem  pfdstm em Sex 04 Nov 2016, 17:40

    Olá amigos do fórum,

    Não sei é referente ao assunto, se não for, podem mover para o grupo certo.

    É a minha primeira postagem, não conheço muito de access, mas já o utilizei para resolver um problema com os simulados do colégio onde trabalho. Faço tudo manualmente, desde a importação das planilhas como os relatórios, gostaria de automatizar ao máximo esse processo. Diante disso tentarei ser o mais detalhista possível para explicar o que pretendo fazer com a ajuda de vocês. O post vai ficar longo mas vamos lá (Espero que alguém leia)
    Temos um simulado aqui no colégio na qual eu faço a conferência dos cartões-resposta pelo scanner, esse arquivo de conferência é no formato XLS no Excel na quais as colunas estão distribuídas da seguinte forma:
    RA             RESP-01  RESP-02  TOTAL

    20155555         A           B          90
    Planilha Resultados
    Obs: as RESP vão de RESP-01 a RESP-90 na planilha
    Onde RA é o registro acadêmico do aluno, resp-0X a alternativa que ele marcou e total é a quantidade de acertos.
    Outra tabela é onde ficam armazenados os nomes dos alunos e seus respectivos RAs.

    R.A.           Aluno        Período letivo      Curso           Nº do aluno    Habilitação Situação de matrícula      Turma
    20065003    José João   2016D          Ensino Médio       1                  1ª Série           Ativo                    M_1SC

    Tabela Turmas

    Há também uma prova de redação que é feita separadamente do simulado feito com os cartões resposta.
    Agora vou detalhar o que faço:
    1 – Na planilha resultados, excluo a primeira linha em branco ou outras linhas que contiverem o RA em Branco e adiciono mais uma coluna chamada Nota da Redação, e na coluna criada adiciono zeros a todos os valores e depois salvo a planilha como mostra a tabela abaixo
    RA           RESP-01   RESP-02     TOTAL     Nota da Redação
    20155555       A          B               90                  0

    2 – Na planilha turmas não faço nada
    3 – Abro o Access e começo um novo banco de dados
    4 – Vou em Dados Externos e importo as Planilhas de resultados e também a de turmas. Configuro como chave primária tanto o Campo RA da tabela de resultados como o Campo RA da tabela turmas. Obs: Por isso excluir as linhas em branco e os RAs , para o Access não dar erro de chave primária
    5 – Depois em Relações, crio as relações entre tabelas usando as chaves primarias. Salvo e fecho
    6 – Crio uma consulta que exibe o RA, Número do Aluno, Nome, Nota do Simulado, Nota da Redação, Total e Conceito. A consulta é mostrada abaixo
    SELECT Turmas.Identificação, Turmas.RA, Turmas.[Nº do aluno], Turmas.Aluno, [3_SERIE_A].Total AS Nota_Simulado, [3_SERIE_A].Redação AS Nota_Redação, [3_SERIE_A]![Total]+[3_SERIE_A]![Redação] AS Total_Geral, Switch([3_SERIE_A].Redação+[3_SERIE_A].Total<=34,"F",[3_SERIE_A].Redação+[3_SERIE_A].Total>=35 And [3_SERIE_A].Redação+[3_SERIE_A].Total<=49,"E",[3_SERIE_A].Redação+[3_SERIE_A].Total>=50 And [3_SERIE_A].Redação+[3_SERIE_A].Total<=64,"D",[3_SERIE_A].Redação+[3_SERIE_A].Total>=65 And [3_SERIE_A].Redação+[3_SERIE_A].Total<=79,"C",[3_SERIE_A].Redação+[3_SERIE_A].Total>=80 And [3_SERIE_A].Redação+[3_SERIE_A].Total<=92,"B",[3_SERIE_A].Redação+[3_SERIE_A].Total>=93 And [3_SERIE_A].Redação+[3_SERIE_A].Total<=100,"A") AS Conceito
    FROM Turmas INNER JOIN 3_SERIE_A ON Turmas.RA = [3_SERIE_A].INSCRIÇÃO
    ORDER BY Turmas.Turma, Turmas.[Nº do aluno];
    Obs.: Se eu não colocar o zero na tabela redação, não é mostrado o conceito, nem é mostrada mensagem de erro.
    Depois disso tudo crio um formulário para inserção das notas da redação, daí gero um relatório com os conceitos.

    O que gostaria de fazer e automatizar?

    1 – Importação da planilha do Excel para o Access. Na parte da planilha de resultados já excluísse as linhas em branco e com o RA e também faria a inserção da coluna nota da redação no ato a importação. Não sei se é possível criar uma macro ou fazer por VBA.

    2 – Automatizar a relação das tabelas.
    Não sei se usei os termos certos, mas não achei no fórum essas questões para o meu objetivo. Não sei se é possível criar uma macro ou fazer por VBA.

    Se alguém souber e puder indicar agradeço também.
    avatar
    rubenscouto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 618
    Registrado : 02/10/2011

    Re: Ajuda com Banco de Dados

    Mensagem  rubenscouto em Ter 15 Nov 2016, 01:54

    A parte da importação da planilha de resultados creio que ainda pode ficar sendo feita no excell, mas a do cadastro de Alunos, Periodo, Curso, Habilitação e Turma pode perfeitamente ser feito no access. Só me diga uma coisa: para cada planilha de resultados você cria um banco de dados novo?

    pfdstm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 04/11/2016

    Re: Ajuda com Banco de Dados

    Mensagem  pfdstm em Qua 16 Nov 2016, 18:41

    Não crio um novo banco, utilizo o anterior removendo as tabelas de resultados e depois recrio as relações. Quero eliminar esse processo. Quero automatizar essa importação e que nela já faça a exclusão dos arquivos null e já faça a relação com a tabela turmas. Não sei se expliquei de forma correta.
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: Ajuda com Banco de Dados

    Mensagem  Silvio em Qua 16 Nov 2016, 19:23

    apenas um simples pitaco...

    eu uso esse código abaixo para importar do Excel para o Acess

    Código:
    Private Sub bt_ImportarPreposto_Click()
    ' Requer referencia a Microsoft Office 11 Object Library
        On Error GoTo PROC_ERR
       
        Dim fd As FileDialog
        Set fd = Application.FileDialog(msoFileDialogFilePicker)
       
        fd.Title = "selecione o arquivo"
        fd.Filters.Add "Arquivo XLS", "*.xls", 1  'se for o caso, mude a extensão para XLSX, onde esta xls

        fd.Show
       
        If (fd.SelectedItems.Count > 0) Then
            '------inicio importação excel para sincronização
            Dim strPathFile As String, strFile As String, strPath As String
            Dim strTable As String
            Dim blnHasFieldNames As Boolean
            blnHasFieldNames = True
            strPathFile = fd.SelectedItems(1)
            strTable = "TblPrepostoTmp"  ' tabela temporária
         
            'apaga temporários, não é necessário, mas por segurança estou limpando a tabela antes
            DoCmd.RunSQL "Delete * from TblPrepostoTmp"
           
            'importa para tabela local temporária
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames
            MsgBox "Registros importados com sucesso !" & vbCrLf & _
                  "Atualizando registros de comissão", vbInformation, Me.Caption
                   
                   
            'Declaração das Variaveis
    Dim db As Database
    Dim rs As DAO.Recordset ' TblPrepostoTmp - onde estão os dados que serão importados
    Dim rs1 As DAO.Recordset ' tblacertocomissao -  para onde irão os dados a serem importados.


    Set db = CurrentDb()


                    'Filtra os dados da tabela de Origem e Define a tabela de Destino dos dados.
        Set rs = db.OpenRecordset("SELECT * FROM TblPrepostoTmp ")
        Set rs1 = db.OpenRecordset("tblacertocomissao")

     
    'Inicia a Gravação dos dados na Tabela de Destino Selecionada Nas Condições acima
    'Repete até COPIAR todos os Registros que foram importados
    Do While Not rs.EOF
            'Inicia a Gravação dos dados na tblacertocomissao
            rs1.AddNew
            rs1("CodPed") = rs("CodPed")
            rs1("DataPed") = rs("DataPed")
            rs1("NossoPedido") = rs("NossoPedido") & " / " & rs("VendedorOculta")
            rs1("VendedorOculta") = rs("VendedorOculta")
            rs1("Cliente") = rs("Cliente")
            rs1("PrazoOculta") = rs("PrazoOculta")
            rs1("ValortotalPedido") = rs("ValortotalPedido")
            rs1("ForneOculta") = rs("ForneOculta")
            rs1("Efetivado") = rs("Efetivado")
            rs1.Update
        rs.MoveNext
        Loop


        'Ao Final Encerra as Conexões
        rs.Close
        rs1.Close
        db.Close

       


           
            MsgBox "Operação concluída.", vbInformation, Me.Caption
           
            'apaga temporarios da tblprepostotmp que recebeu a importação.
            DoCmd.RunSQL "Delete * from TblPrepostoTmp"
           
        Else
            MsgBox "Não foi escolhido nenhum arquivo", vbInformation, Me.Caption

        End If
       
    PROC_EXIT:
        Exit Sub
       
    PROC_ERR:
        DoCmd.Hourglass False
        If Err.Number = 3011 Then
          LocalXML = ""
          MsgBox ("Arquivo inválido.")
        Else
            MsgBox Err.Description
        End If
        Resume PROC_EXIT
    End Sub

    Adapte-o conforme a tua necessidade.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    pfdstm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 04/11/2016

    Re: Ajuda com Banco de Dados

    Mensagem  pfdstm em Qui 17 Nov 2016, 14:33

    Muito obrigado pelas respostas, vou verificar e adequar a necessidade. Depois posto o resultado.
    avatar
    rubenscouto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 618
    Registrado : 02/10/2011

    Re: Ajuda com Banco de Dados

    Mensagem  rubenscouto em Dom 20 Nov 2016, 16:56

    poderia dispor o arquivo exemplo da importação do excell conforme mensagem silvio?

      Data/hora atual: Ter 21 Nov 2017, 12:11