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


2 participantes

    Criar Campo em Tabela x Back End

    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    Criar Campo em Tabela x Back End Empty Criar Campo em Tabela x Back End

    Mensagem  vinicius.anna 17/5/2013, 17:55

    Boa tarde

    Pesquisando aqui no fórum encontrei um tópico interessante para a criação de campos em tabelas vinculadas através do VBA, conforme segue:

    Código:

    Public Function AdicionaCampoValor()
    'Créditos: http://maximoaccess.forumeiros.com - J Paulo
    On Error Resume Next
    Dim strAltera As String, strPass
    Dim strBancoExterno As Access.Application
    Dim strCaminho As String
    'Caminho do Back end
    strCaminho = "c:\InserirCamposViaVBA_be.accdb"
    'Senha do BackEnd
    strPass = "123"
    Set strBancoExterno = CreateObject("Access.Application")
    strBancoExterno.OpenCurrentDatabase strCaminho, , strPass
    'Adiciona o campo como texto
    strAltera = "ALTER TABLE tblMateriais ADD COLUMN ValorMaterial text(100);"
    strBancoExterno.DoCmd.RunSQL strAltera

    'Aqui exemplo para alterar o campo para moeda (Poderia ser adicionado já como moeda)
    'strAltera = "ALTER TABLE tblMateriais alter COLUMN ValorMaterial CURRENCY;"
    'strBancoExterno.DoCmd.RunSQL strAltera

    strBancoExterno.CloseCurrentDatabase
    Set strBancoExterno = Nothing
    End Function

    Uso o Access 2010, o código funcionou perfeitamente, mas estou com duas dúvidas:
    1 - O instalador de meu software permite a instalação em qualquer lugar, há como adaptar o código para buscar o local do banco;
    2 - Preciso criar um campo do tipo numero decimal mas a declaração a seguir não cria o campo: strAltera = "ALTER TABLE tblMateriais alter COLUMN ValorMaterial dbDecimal;"


    Se alguém tiver alguma dica, agradeço

    Att. Vinicius
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    Criar Campo em Tabela x Back End Empty Re: Criar Campo em Tabela x Back End

    Mensagem  Avelino Sampaio 17/5/2013, 19:19

    OLá!

    1) O seu aplicativo é dividido em back-end e front-end ?

    2) Parece existir uma falha no DAO para usar o decimal. Garimpe neste artigo, usando o ADO:

    http://www.access-programmers.co.uk/forums/showthread.php?t=212487

    Aguardamos


    Última edição por Avelino Sampaio em 18/5/2013, 11:07, editado 1 vez(es)


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    Criar Campo em Tabela x Back End Empty Re: Criar Campo em Tabela x Back End

    Mensagem  vinicius.anna 17/5/2013, 19:39

    Boa tarde,

    Sim, é dividido em front end e back end;

    Ok, entendi sobre o número decimal, Obrigado
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    Criar Campo em Tabela x Back End Empty Re: Criar Campo em Tabela x Back End

    Mensagem  Avelino Sampaio 17/5/2013, 19:44

    Para saber a localização do back-end pelo front-end, use este código abaixo, tirado do meu aplicativo exemplo Maestro:

    Código:
    Public Function fncBackEndAtual() As String
    Dim strCon As String
    Dim strTabelaLink As String
    Dim tbl As DAO.TableDef
    Dim k
    On Error GoTo trataerro

    For Each tbl In CurrentDb.TableDefs
        If Len(tbl.Connect & "") > 0 Then strTabelaLink = tbl.Name
    Next
    '-----------------------------------------------------
    'Vou usar a última tabela vinculada, para obter
    'o caminho do back-end (propriedade Connect).
    '-----------------------------------------------------
    strCon = CurrentDb.TableDefs(strTabelaLink).Connect
    '-----------------------------------------------------
    'Agora vou retirar apenas o caminho do accdb,
    'sem o ";DATABASE=" que o precede na string Connect.
    '-----------------------------------------------------
    fncBackEndAtual = Right$(strCon, (Len(strCon) - (InStr(1, strCon, ";DATABASE=", 2) + 9)))

    sair:
        Exit Function
    trataerro:
        MsgBox "Erro: " & Err.Number & vbCrLf & Err.Description, vbCritical, "Aviso", Err.HelpFile, Err.HelpContext
        Resume sair:
    End Function


    strCaminho = fncBackEndAtual

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.

    Conteúdo patrocinado


    Criar Campo em Tabela x Back End Empty Re: Criar Campo em Tabela x Back End

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 06:29