MaximoAccess

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

Obrigado

Administração do MaximoAccess


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.

Obrigado

Administração do MaximoAccess

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

    Boas Praticas na Programação/Montagem de Bases de Dados Access

    Leandro
    Leandro
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  Leandro 7/3/2013, 12:40

    Prezados forumeiros, esse tópico destina-se a apresentação de Boas Praticas na Programação e Montagem das Bases de Dados.

    É aberto a todos que quiserem contribuir!

    Não é destinado a postagem de dúvidas.


    Última edição por Leandro em 7/3/2013, 17:18, editado 1 vez(es)

    Leandro
    Leandro
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Re: Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  Leandro 7/3/2013, 12:54

    Começo apresentando este esquema para nomeação de variáveis.
    Boas Praticas na Programação/Montagem de Bases de Dados Access Vars

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7871
    Registrado : 05/11/2009

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Re: Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  Alexandre Neves 7/3/2013, 18:45

    Boa tarde, Leandro
    Eu usaria sempre prefixo de 3 letras.
    boolean - bol
    byte - byt
    date - dat
    double - dbl
    integer - int
    long - lng
    object - obj
    single - sng
    string - str
    variant - var
    Abraç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
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Re: Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  HARYSOHN 10/3/2013, 14:32

    Boas, quanto a tabelas e forms....Em nome de campos e objetos, utilizo:

    Para campos em Tabelas:
    CpXXXXX
    CpYYYYY

    Para caixas texto:
    txtXXXXXX

    Para caixas texto contendo datas:
    dtXXXXXX
    Para ListBox:
    lstXXXXXX

    Para ChkBox:
    chkXXXXX

    Para Rótulos:
    lblXXXXXX

    Para Caixas de Combinação:
    cboXXXXX

    Para controle Imagem:
    imgXXXXX

    E sempre Tenho declarado o uso da expressão OptionExplicit , nos módulos
    Ao explicitar Option Explicit você diz ao VBA que
    ele deve forçá-lo a declarar todas as variáveis que forem usadas. Isto
    torna fácil esvitar erros de programação por erro ao digitar nomes de
    variáveis



    Um bom artigo para leitura sobre padronização:

    ARTIGO

    Cumprimentos.
    Leandro
    Leandro
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Re: Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  Leandro 7/3/2014, 18:59

    Boa tarde!!!

    Esse procedimento tomo por padrão das minhas aplicações, e tem me ajudado muito no reconhecimento de campos e a quais tabelas eles pertencem.

    No momento da criação de tabelas tomo por convenção nunca usar espaços ou underlines entre os nomes das tabelas e qualquer outro objeto do banco, ex:

    Errado: Tabela_Cadastro ou Tabela Cadastro
    Certo: TabelaCadastro ou TabCadastro

    Sigo também um padrão na nomeação dos campos, como mostrado acima, separo os nomes pela letra maiúscula, ex: TabCadastro.
    E deixo o mais claro possível a que se refere essa tabela, ex: TabCadastroFornecedores

    Seguindo com as tabelas. No momento da criação dos campos, nomeio os mesmos referenciando a tabela, ex: IdCadastroFornecedores.

    Um outro padrão que utilizo é esse:

    Quando crio uma tabela de informações, exemplo TabCadastroEmpregados, nomeio o campo Id como IdCadastroEmpregados e somente essa tabela terá esse campo com esse nome, se eu precisar inserir um campo em outra tabela que seja relacionado a esse ele receberá o prefixo Cod no começo do nome, ex: CodEmpregadoFerias, assim quando eu localizar o nome IdCadastroEmpregados no VBA ou SQL saberei exatamente que ele se refere ao a campo em uma tabela de cadastro e isso tem me ajudado muito.

    Espero que seja útil.

    Dilson
    Dilson
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Re: Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  Dilson 7/3/2014, 21:34

    Olá Leandro,

    Bom tópico e ótimas dicas, obrigado por compartilhar sua prática.

    Abrindo um pitaco, seria bom explicitar que a nomenclatura Tabela_Cadastro está errada baseado numa regra subjetiva, pelo que de fato não está errada.

    Com referência ao prefixo cod, quero dizer que também uso essa regra, mas com sufixo assim:

    Campos Chave primária, uso sufixo _p:

    nomeDoCampo_p

    Campos Chave estrangeira, uso sufixo _e:

    nomeDoCampo_e

    Que bom que desenvolveu a idéia, pois é muito importante seguir nessa linha de organização.
    good guy
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  good guy 12/3/2014, 15:12

    Olá aos colegas,

    Em se tratando de programação em Access VBA, também é muito conhecido as regras de Reddick que estabelecem uma convenção ou normas de padronização das nomenclaturas dos objetos presentes na plataforma Access que são semelhantes aos apresentados pelos colegas. No livro Programando em Access VBA de Flávio Morgado, também é explicado esta padronização no volume 1 da sua coletânea de cinco volumes, fora o volume sobre Macros e o outro Guia de Referência para programadores pela editora Ciência Moderna.

    Veja mais aqui:

    http://pt.scribd.com/doc/120387983/Programando-em-vba

    Leandro
    Leandro
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Re: Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  Leandro 18/3/2015, 14:18

    Sempre faça BackUp!!!

    avatar
    fsmartins
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 19/05/2015

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Re: Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  fsmartins 10/6/2015, 01:03

    Além de seguir um padrão para os nomes dos ]controles ou variáveis procuro sempre indentar o código para que fique mais fácil identificar cada seção do código. Very Happy
    avatar
    Edcronos
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 28/06/2015

    Boas Praticas na Programação/Montagem de Bases de Dados Access Empty Re: Boas Praticas na Programação/Montagem de Bases de Dados Access

    Mensagem  Edcronos 29/6/2015, 03:02

    Ola
    Sou novo no forum, participo de um de excel "planilhando"
    ainda não sei usar o access " vou aprender aqui"
    e desculpa por este ser minha primeira participação,
    "qualquer coisa o moderador pode apagar"

    Eu sempre li sobre regras de programação e até levei alguns foras e puxões de orelha em discussões acirradas  por não seguir regra nenhuma Sad

    já tentei e tentei seguir tais regras... não usar variáveis publicas e deixar as variáveis o mais explicativo possível..., mas acabo largando o projeto de lado.

    e tbm já li relatos de pessoas que simplesmente embaralham e bagunçam o máximo possível para dificultar o roubo da ideia.

    depois de tantas tentativas frustradas acabei desistindo e aceitando as minhas limitações
    "simplesmente não consigo acompanhar codigos escritos com palavras muito grandes, não lembro nomes de funções complicados"
    agora a minha única regra é me divertir escrevendo o código, ele funcionar e ser o mais eficiente possível
    mesmo que para isso tenha que criar meu próprio código para função que já existe

    não sou profissional
    uso variaveis tipo
    Li,Lf,Ci,Cf,Lio,Pio...
    uso muito arrays com laços  for next,  if , goto, gosub

    umas funções simples que fiz para uma pessoa que acompanha a mega sena:
    retorna o fechamento de um ciclo a partir de um sorteio especifico ( quando saiu todas as 60 dezenas)
    Código:
       Function CicloTo(concursoNum As Long)

            Dim valt(1 To 60) As Long, linSort()
            With ThisWorkbook.Worksheets("Mega-Sena")

                lf = .Cells(Rows.Count, 1).End(xlUp).Row + 1
                L = concursoNum + 1
        ijSini:

                linSort = .Range("C" & L, "H" & L).Value2
                For v = 1 To 6
                    valt(linSort(1, v)) = 1
                Next
                If L < lf Then
                    For v = 1 To 60
                        If valt(v) = 0 Then L = L + 1: GoTo ijSini:
                    Next
                End If
            End With
            CicloTo = L - 1

        End Function
    conta quantas vezes saiu o conjunto de dezenas e retorna o ultimo concurso que saiu
    Código:

    Function Cont_grupo(ParamArray Grupos_juntos() As Variant)
        Dim TG1 As Long, TtL As Long, Coluno(), L1 As Long, C1 As Long

        With ThisWorkbook.Worksheets("Mega-Sena")
            lf1 = .Cells(Rows.Count, 1).End(xlUp).Row
            Coluno = .Range("A2:H" & lf1).Value2
        End With

        Cc1 = UBound(Coluno, 2)
        Lc1 = UBound(Coluno, 1)
        CC2 = UBound(Grupos_juntos, 1)

        For L1 = Lc1 To 1 Step -1
            TtL = 0
            For C1 = 3 To Cc1
                For c2 = 0 To CC2
                    If Coluno(L1, C1) = Grupos_juntos(c2) Then
                        TtL = TtL + 1:
                        If TtL = CC2 + 1 Then
                            TG1 = TG1 + 1:
                            If TG1 = 1 Then concs = Coluno(L1, 1)
                            GoTo lk0
                        End If
                    End If
                Next
            Next
    lk0:
        Next
        Cont_grupo = " total= " & TG1 & "  ultimo= " & concs
    End Function
    nesses ainda usei certas regras, mas apenas pq as macros são  simples e pequenas

    mas uma das minhas primeiras macros que desenvolvo até hoje quando estou com animo e já está com 600 linhas fora as macros e funções auxiliares é composto basicamente por isso...
    Código:

        If Op = 1 Then
            t = 0: Loi = Loi + Lig
            If OZig_L = False Then
                If Loi = OLf Then
                    t = 1
                    If Oquadante_L = True Then GoSub OCoL: If t = 1 Then OLf = OLf + OqL: OLi = OLi + OqL: t = 0
                    Loi = OLi + Lig
                End If
            Else
                If Loi = OLi Or Loi = OLf Then
                    t = 1
                    If Oquadante_L = True Then GoSub OCoL: If t = 1 Then OLf = OLf + OqL: OLi = OLi + OqL: t = 0: Loi = Loi + OqL
                    Lig = Lig * -1: Loi = Loi + Lig
                End If
            End If
        End If
        Return
    como pode ver não costumo nem pular de linha ou colocar comentários no meio da macro
    e explico,
    é para consegui acompanhar o fluxo de execução
    "para mim de nada vale nome de variáveis grandes, e explicações no meio da macro, eu acabo me perdendo e tendo que trocar tudo"

    acho o importante é aprender, gostar de criar, se tiver, entender e aceitar suas limitações e se adaptar ou até criar regras que consiga acompanhar

    e como dizem...
    existe mil maneiras de se fazer, invente a sua


    "ressalva,
    Se trabalhar em grupo  tem que seguir todas as regras impostas (a não ser que vc seja o chefe Razz ),  ou até para outros que está pagando tbm pela ideia e não apenas pelo projeto pronto. "

    tudo bem que oq eu falei somente serve para quem está começado ir se adaptando
    nesse ponto acho que vale algo

    o pessoal fala para os iniciantes declarar todas as variaveis, que uma usa mais memoria, é mais rápida...

    se a pessoa não sabe nem como usar os comandos ou para que serve na pratica cada tipo de variável
    como saber se tem que usar long, intenge, byte ...?

    pelo menos no uso do vba de inicio não se deve preocupar com isso e apenas curtir o aprendizado fazendo coisas que apenas funcionam e pegar o seu próprio jeito e ritmo, senão apenas trava em algo que acha monótono ou chato

    ultimamente que passei a declarar as variaveis e esbarrei em um problema de declaração
    uso de long em divisão , eu não sei quantas vezes eu refiz a macro pq a conta não batia e quando não declarei vai e dá certo.
    apesar de ser contas com dezenas apenas, entra na questão de pontos flutuantes e long não estava dando conta
    depois mudei para Double, funcionou.
    mas vivia dando erros aleatórios e depois de varias reformulações da macro e totalmente deixada de lado descobrir que Double  tbm não dava conta e tinha que ser Currency

    No fim, a maior regra a se seguir é
    deixar as regras de lado e se divertir aprendendo e fazendo coisas que funciona, mesmo que tudo bagunçado.
    para então escolher as regras que mais lhe ajude a ser um profissional capaz de fazer um trabalho satisfatório para o cliente.

    falaram de um livro que cita regras,
    mas já repararam que as próprias linguagens não seguem regras e cada uma tem suas particularidades mesmo para coisas simples como um loop com for e cada um tem maneira diferente de se escrever  ?

    bem, melhor parar por aqui senão daqui a pouco terei escrito meu proprio livro de como não seguir as regras

    mas como falei, caso o moderador não ache apropriado a minha declaração prolongada pode apagar

    Até.

      Data/hora atual: 6/3/2021, 23:36