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

    Mudar campo de numérico para texto

    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    Mudar campo de numérico para texto Empty Mudar campo de numérico para texto

    Mensagem  Carlao2 1/9/2022, 19:32

    Boa tarde a todos!!

    Mais uma vez venho recorrer a preciosa ajuda dos senhores


    No módulo abaixo o Campo patrim está como numérico e preciso alterar para Texto por conta de tamanho etc.
    Me deu um branco e não consigo lembrar como fazer, lembro qualquer coisa de Aspas simples mais não lembro ao certo como fazer
    Poderiam, por favor me ajudar

    Desde já agradeço


    Código:
    Option Compare Database

    Private Sub Btn_RateioCusto_Click()
    SubRateio
    End Sub

    Public Sub SubRateio(Optional ByVal pNota As String = "")
    Dim MyDb As Database
    Dim MyTabNota As Recordset
    Dim MyTabItens As Recordset
    Dim vSQl As String
    Dim vcusto As Double
    Dim vcustoTotal As Double
    Dim vDiferenca As Double

    Set MyDb = CurrentDb
    vSQl = "SELECT * FROM ConsPatrimCusto "
    vSQl = vSQl & "WHERE 1 = 1  "
    vSQl = vSQl & IIf(pNota <> "", "AND patrim = " & pNota, "")


    Set MyTabNota = MyDb.OpenRecordset(vSQl, dbOpenDynaset)
    If Not MyTabNota.EOF Then
       While Not MyTabNota.EOF
       vSQl = "SELECT * FROM Fisico_tot "
       vSQl = vSQl & "WHERE patrim = " & MyTabNota("patrim") & ""
       vSQl = vSQl & "ORDER BY Ativo"
       Set MyTabItens = MyDb.OpenRecordset(vSQl, dbOpenDynaset)
       If Not MyTabItens.EOF Then
           While Not MyTabItens.EOF
             vcusto = CDbl(Format(((MyTabItens("ValorNovo") / MyTabNota("Vno")) * MyTabNota("custo")), "0.00"))
             vcustoTotal = vcustoTotal + vcusto
             'edita
             MyTabItens.Edit
             MyTabItens("custo") = vcusto
             MyTabItens.Update
             
             MyTabItens.MoveNext
           Wend
       End If
       If vcustoTotal <> MyTabNota("custo") Then
         MyTabItens.MoveFirst
         MyTabItens.Edit
         vDiferenca = CDbl(Format((MyTabNota("custo") - vcustoTotal), "0.00"))
         MyTabItens("custo") = MyTabItens("custo") + (vDiferenca)
         MyTabItens.Update
       End If
       vcusto = 0
       vcustoTotal = 0
       
         MyTabNota.MoveNext
       Wend
    End If
    MsgBox "RATEIO CUSTO EFETUADO COM SUCESSO"
    End Sub


    Private Sub Btn_RateioDepre_Click()
    SubRat
    End Sub

    Public Sub SubRat(Optional ByVal pNota As String = "")
    Dim MyDb As Database
    Dim MyTabNota As Recordset
    Dim MyTabItens As Recordset
    Dim vSQl As String
    Dim vdepre As Double
    Dim vdepreTotal As Double
    Dim vDiferenca As Double

    Set MyDb = CurrentDb
    vSQl = "SELECT * FROM ConsPatrimDepr "
    vSQl = vSQl & "WHERE 1 = 1  "
    vSQl = vSQl & IIf(pNota <> "", "AND patrim = " & pNota, "")


    Set MyTabNota = MyDb.OpenRecordset(vSQl, dbOpenDynaset)
    If Not MyTabNota.EOF Then
       While Not MyTabNota.EOF
       vSQl = "SELECT * FROM Fisico_tot "
       vSQl = vSQl & "WHERE patrim = " & MyTabNota("patrim") & " "
       vSQl = vSQl & "ORDER BY Ativo"
       Set MyTabItens = MyDb.OpenRecordset(vSQl, dbOpenDynaset)
       If Not MyTabItens.EOF Then
           While Not MyTabItens.EOF
             vdepre = CDbl(Format(((MyTabItens("ValorNovo") / MyTabNota("Vno")) * MyTabNota("depre")), "0.00"))
             vdepreTotal = vdepreTotal + vdepre
                      'edita
             MyTabItens.Edit
             MyTabItens("depr") = vdepre
             MyTabItens.Update
             
             MyTabItens.MoveNext
           Wend
       End If
       If vdepreTotal <> MyTabNota("depre") Then
         MyTabItens.MoveFirst
         MyTabItens.Edit
         vDiferenca = CDbl(Format((MyTabNota("depre") - vdepreTotal), "0.00"))
         MyTabItens("depr") = MyTabItens("depr") + (vDiferenca)
         MyTabItens.Update
       End If
       vdepre = 0
       vdepreTotal = 0
       
         MyTabNota.MoveNext
       Wend
    End If
    MsgBox "RATEIO DEPRECIAÇÃO EFETUADO COM SUCESSO,E RESIDUAL CALCULADO COM ÊXITO"
    DoCmd.SetWarnings False
    DoCmd.OpenQuery ("Cons_aturesidual")
    End Sub
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7613
    Registrado : 15/03/2013

    Mudar campo de numérico para texto Empty Re: Mudar campo de numérico para texto

    Mensagem  Alvaro Teixeira 2/9/2022, 10:53

    Olá Carlos Prisco,

    Após uma breve leitura do código o "patrim" é o campo da tabela ConsPatrimCusto .
    Será ir à tabela e ajustar o campo para tipo "texto".

    Abraço
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    Mudar campo de numérico para texto Empty Re: Mudar campo de numérico para texto

    Mensagem  Carlao2 2/9/2022, 14:05

    Olá Alvaro
    Bom dia!!
    Obrigado pelo retorno

    Então:

    No MDB tenho a Tabela Contábil e a tabela Físico
    Ambas tem o campo Patrim que está como número
    A informação que vem do cliente para esse campo, e nesse caso, é muito grande para o campo patrim
    Ele não permite que seja preenchido, diz que a informação é maior que o tamanho permitido pelo campo
    Se eu mudar a propriedade do campo de número para texto o módulo não roda, pois nele o campo patrim está como número, por isso
    estou tentando, no módulo colocar o campo patrim como texto.
    A ConsPatrimCusto é uma consulta que envolve as duas tabelas e elas são cruzadas pelo campo patrim

    Espero ter conseguido explicar

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    Mudar campo de numérico para texto Empty Re: Mudar campo de numérico para texto

    Mensagem  Alexandre Fim 2/9/2022, 16:32

    Carlão,

    Qual a versão do Access que roda o sistema?
    Porque vc mencionou que as tabelas estão em arquivo "mdb", e provavelmente, é uma versão mais antiga.
    Nas versões mais novas (extensão "accdb"..não me recordo a partir de qual versão), possuem tipo de campo "Número" e "Número Longo", que talvez resolveria seu problema.
    Ao mudar o tipo do campo de Numero para texto, poderá gerar impactos no funcionamento dos sistema, onde este campo estiver contido em consultas, código VBA, módulos e etc.

    Espero ter ajudado.

    Atenciosamente

    Alexandre Fim


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Mudar campo de numérico para texto Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    Mudar campo de numérico para texto Empty Re: Mudar campo de numérico para texto

    Mensagem  Carlao2 2/9/2022, 17:11

    Alexandre
    Obrigado também pelo retorno

    Meu acces é 2016

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7613
    Registrado : 15/03/2013

    Mudar campo de numérico para texto Empty Re: Mudar campo de numérico para texto

    Mensagem  Alvaro Teixeira 4/9/2022, 19:15

    Olá a todos,

    Carlos Prisco, o colega Alexandre já disse tudo.
    Sem ver a base de dados e código não é fácil.
    Mas pode tentar assim.

    1º efetue um Backup
    2º altere a propriedade do campo e tabela em questão para numero duplo e teste.

    A titulo de exemplo, segue imagem para ver se ajuda
    Mudar campo de numérico para texto 0217

    Abraço
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    Mudar campo de numérico para texto Empty Re: Mudar campo de numérico para texto

    Mensagem  Carlao2 5/9/2022, 13:31

    Alvaro

    Bom dia!!!

    Mas a informação que o campo vai receber é texto

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7613
    Registrado : 15/03/2013

    Mudar campo de numérico para texto Empty Re: Mudar campo de numérico para texto

    Mensagem  Alvaro Teixeira 9/9/2022, 09:23

    Olá Carlos,

    No seguimento da sua descrição:

    "A informação que vem do cliente para esse campo, e nesse caso, é muito grande para o campo patrim
    Ele não permite que seja preenchido, diz que a informação é maior que o tamanho permitido pelo campo
    Se eu mudar a propriedade do campo de número para texto o módulo não roda, pois nele o campo patrim está como número"


    Na minha opinião pode resolver, efetue um backup e teste a sugestão.

    Se o problema se mantiver o melhor será partilhar base de dados com a parte envolvida para se testar (deve ter o minimo possivel do seu aplicativo , mas funcional , sem erros).

    Abraço
    avatar
    Carlao2
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 258
    Registrado : 19/10/2016

    Mudar campo de numérico para texto Empty Re: Mudar campo de numérico para texto

    Mensagem  Carlao2 14/9/2022, 12:54

    Alvaro

    Bom dia

    Tudo bem?

    Vou testar e em caso de negativo, eu posto o banco para que tente resolver

    Desde já agradeço a atenção


    Abraços

      Data/hora atual: 6/10/2022, 09:34