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

    [Resolvido]Como aumentar quantidade caracteres

    avatar
    NADIRONUNES
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 451
    Registrado : 30/08/2010

    [Resolvido]Como aumentar quantidade caracteres Empty [Resolvido]Como aumentar quantidade caracteres

    Mensagem  NADIRONUNES em 1/11/2016, 11:24

    boa tarde


    Como aumentar quantidade caracteres caixa de texto desaclopada

    preciso mais do que 255

    pois to usando esse codigo e chamo ele numa caixa de texto desaclopada num relatorio

    Public Function EstoqueInter()
    Parametros_de_Usuarios "SysUsuario.par"
    Parametros_de_Empresa "SysEmpresa.par"
    Call fncAbreConexao(102030)
    Dim rsq, rsT, RSE As DAO.Recordset
    Dim strSQL, StrSQLS, strSqLE As String
    strSQL = "SELECT Dados.Cód, Dados.Descricao, Dados.Idunidade, Dados.Qde, Dados.Cto_medio, [qde]*[cto_medio] AS Total " & vbCrLf & _
    "FROM Dados " & vbCrLf & _
    "WHERE (((Dados.Qde)>0) AND ((Dados.Cto_medio)>0)) " & vbCrLf & _
    "ORDER BY Dados.Descricao;"
    Set rsT = Db.OpenRecordset(strSQL)
    Dim LS As Byte
    Dim C1, C2, C3, C4 As String
    Dim pag, pagi, i As Byte
    Dim acum As Single, acd As Single
    Dim valorTotal As Single
    Dim Equant As Single
    valorTotal = 0
    acum = 0
    acd = 0
    pag = 1
    LS = 83
    Dim C1, C2, C3, C4 As String
    C1 = "RELATORIO DE ESTOQUE DO ANO.: " & Format(Now, "yyyy")
    C2 = "Razao.: " & XEmpresa
    C3 = "Endereco.: " & Xendereco & "-" & Xbairro & "-" & Xcidade & "-" & xuf
    C4 = "Cnpj.: " & Xcnpj & "-InscEst.: " & Xie & "-Email.:" & Xemail
    H_D = Format(StrConv(Left(C1, 65), 2, 1049), ">")
    H_D = H_D & Space(65 - Len(H_D))

    H_c = Format(StrConv(Left(C2, 91), 2, 1049), ">")
    H_c = H_c & Space(91 - Len(H_c))

    H_A = Format(StrConv(Left(C3, 101), 2, 1049), ">")
    H_A = H_A & Space(101 - Len(H_A))

    H_B = Format(StrConv(Left(C4, 101), 2, 1049), ">")
    H_B = H_B & Space(101 - Len(H_B))

    Do While Not rsT.EOF
    If LS >= 83 Then
    pag = pag + 1
    If acum > 0 Then
    EstoqueInter = EstoqueInter & Space(55) & "VALOR A TRANSPORTAR PARA PAGINA " & pag & "..: " & Format(acum, "standard") & vbCrLf
    End If
    EstoqueInter = EstoqueInter & "|-----------------------------------------------------------------------------------------------------|" & vbCrLf
    EstoqueInter = EstoqueInter & "|" & H_D & "DATA IMPRESSAO.: " & Now & "|" & vbCrLf
    EstoqueInter = EstoqueInter & "|" & H_c & "Pagina.: " & pag & "|" & vbCrLf
    EstoqueInter = EstoqueInter & "|" & H_A & "|" & vbCrLf
    EstoqueInter = EstoqueInter & "|" & H_B & "|" & vbCrLf
    EstoqueInter = EstoqueInter & "|-----------------------------------------------------------------------------------------------------|" & vbCrLf
    EstoqueInter = EstoqueInter & "| CODIGO | DESCRICAO |UNI | QUANT| V.UNIT| V.TOTAL|" & vbCrLf
    EstoqueInter = EstoqueInter & "|-----------------------------------------------------------------------------------------------------|" & vbCrLf
    LS = 8
    End If
    h_Descr = Format(StrConv(Left(strMeng & rsT!Descricao, 51), 2, 1049), ">")
    h_Descr = h_Descr & Space(51 - Len(h_Descr))
    d_Cod = String(10 - Len(rsT!cód), "0") & rsT!cód
    Sai = Space(0) & "|" & JustStr(d_Cod, " ", 10, True) & "|" & Space(0) & "" & JustStr(h_Descr, " ", 51) & "|" & Space(1) & JustStr(rsT!Idunidade, " ", 3) & "|" & Space(1) & JustStr(Format(rsT!Qde, "#,###0.00"), " ", 6, True) & "|" & Space(1) & JustStr(Format(rsT!Cto_medio, "#,###0.00"), " ", 11, True) & "|" & Space(1) & JustStr(Format(Nz(rsT!total), "#,###0.00"), " ", 11, True) & "|"
    EstoqueInter = EstoqueInter & Sai & vbCrLf
    LS = LS + 1
    acum = acum + (rsT!total)
    rsT.MoveNext
    If LS = 83 Then
    For i = 1 To 83
    Next i
    EstoqueInter = EstoqueInter & "|-----------------------------------------------------------------------------------------------------|" & vbCrLf
    End If
    Loop
    EstoqueInter = EstoqueInter & "|-----------------------------------------------------------------------------------------------------|" & vbCrLf
    EstoqueInter = EstoqueInter & Space(71) & " Valor do Estoque.: " & Format(acum, "standard") & vbCrLf
    EstoqueInter = EstoqueInter & vbCrLf
    End Function

    =>Nois
    =>Nois
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 817
    Registrado : 09/11/2012

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  =>Nois em 1/11/2016, 19:13

    crie uma tabela com um campo do tipo memorando

    insira em um formulario qualquer e depois remova a referencia de campo (desacople)

    aqui aceitou mais de 1400 caracteres normal


    .................................................................................
    Arrow Att. Nois

    Se tudo não der certo... Descanse e tente novamente!
    avatar
    NADIRONUNES
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 451
    Registrado : 30/08/2010

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  NADIRONUNES em 3/11/2016, 05:29

    mas to fazendo em relatorio
    =>Nois
    =>Nois
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 817
    Registrado : 09/11/2012

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  =>Nois em 3/11/2016, 06:01

    em teoria é o mesmo raciocínio, poste um exemplo para analise.


    .................................................................................
    Arrow Att. Nois

    Se tudo não der certo... Descanse e tente novamente!
    avatar
    NADIRONUNES
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 451
    Registrado : 30/08/2010

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  NADIRONUNES em 3/11/2016, 10:11

    exemplo
    Anexos
    [Resolvido]Como aumentar quantidade caracteres AttachmentBanco de Dados2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (558 Kb) Baixado 18 vez(es)
    =>Nois
    =>Nois
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 817
    Registrado : 09/11/2012

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  =>Nois em 3/11/2016, 10:31

    segue
    Anexos
    [Resolvido]Como aumentar quantidade caracteres AttachmentBanco de Dados2_alt.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (577 Kb) Baixado 6 vez(es)


    .................................................................................
    Arrow Att. Nois

    Se tudo não der certo... Descanse e tente novamente!
    avatar
    NADIRONUNES
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 451
    Registrado : 30/08/2010

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  NADIRONUNES em 3/11/2016, 10:47

    mas se vc reparar bem meu relatorio tem varias paginas e esse seu so tem uma, acho que a tem aumentar a quantidade de caracteres pra um 1500 caracteres
    =>Nois
    =>Nois
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 817
    Registrado : 09/11/2012

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  =>Nois em 3/11/2016, 11:53

    segue.
    Anexos
    [Resolvido]Como aumentar quantidade caracteres AttachmentBanco de Dados2_alterado2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (589 Kb) Baixado 8 vez(es)


    .................................................................................
    Arrow Att. Nois

    Se tudo não der certo... Descanse e tente novamente!
    avatar
    NADIRONUNES
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 451
    Registrado : 30/08/2010

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  NADIRONUNES em 3/11/2016, 12:05

    o seu tambem parou na mesma linha que o meu se nao me engano tem mas ou menos 582 arquivos
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3913
    Registrado : 14/08/2013

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  FabioPaes em 3/11/2016, 14:29

    Amigo, seu relatório no total terá 69.298 Carácter... Portanto um unico campo nao comporta todos eles...

    Sugiro que na sua Função vc divida em partes de 65.000 Carácter...

    Sendo assim coloque Alguns campos no Relatório, e preencha esses campos com cada parte...

    Outra alternativa, seria Abrir um Arquivo Texto, e chamar a função dentro desse arquivo Texto. Assim, ao final apenas abriria esse txt.


    Obs: É muita coisa para um Único Campo amigo... Muita coisa mesmo!


    Última edição por FabioPaes em 4/11/2016, 12:03, editado 1 vez(es) (Razão : O Access nao aceita 69mil Caracters e sim pouco mais de 65mil.)


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    NADIRONUNES
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 451
    Registrado : 30/08/2010

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  NADIRONUNES em 4/11/2016, 05:09

    mas como vou dividir essa funcao em partes?
    =>Nois
    =>Nois
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 817
    Registrado : 09/11/2012

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  =>Nois em 4/11/2016, 07:09

    no bloco de notas apareceu somatório total


    coloquei no botão de impressao:

    Código:
    Dim strFicheiro As String

        strFicheiro = "c:\teste.txt"

        Open strFicheiro For Output As #1
        
            Print #1, EstoqueInter()

        Close #1

    MsgBox "ok"


    .................................................................................
    Arrow Att. Nois

    Se tudo não der certo... Descanse e tente novamente!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3913
    Registrado : 14/08/2013

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  FabioPaes em 4/11/2016, 10:33

    Amigão, logo mais tento pensar em algo para dividir esse Texto em ate 65mil Caracter por campos....


    Correção:

    Falei la em cima para reduzir para 69mil caracter, porem me equivoquei, o access aceita pouco mais de 65mil caracter por campo... mesmo sendo Texto Longo.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3913
    Registrado : 14/08/2013

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  FabioPaes em 4/11/2016, 18:02

    Bom, Sabemos que há um limite de 65.535 Caracteres por caixa de texto. (https://www.maximoaccess.com/t1057-qual-a-capacidade-do-access#6464)
    E eu desconheço como inserir mais que isso em uma única Caixa de Texto. Sua Função resulta em muitos Caracteres...  A solução encontrada então, é dividir Esse Valor (No exemplo postado é de 69.298) em frações de no máximo 65.535, para evitar perda de dados, recomendo 64.000.
     
    Outro agravante no seu Caso é que essa função constrói um relatório, linha a linha... E nem sempre no Caracteres de Nº 64.000 é o Fim de uma linha... Portanto teremos que saber dentro dessa sequência de Texto onde termina a Última Linha de registros, para não acontecer isso:

    https://ap.imagensbrasil.org/image/p7gZGu
    [Resolvido]Como aumentar quantidade caracteres P7gZGu
    A Saída para isso foi utilizar a InStrRev  para localizarmos o Último caractere da Última Linha de registros e extrairmos o Texto somente até esse Número de Caracteres.
    Dessa forma, Pegamos todo o Texto, dividimos ele em partes com no máximo 64.000.... Verificamos o final do último REGISTRO COMPLETO, colocamos na primeira Caixa de Texto.
    Na segunda Caixa de texto Extraímos mais 64.000 Caracteres porem iniciando do Número que paramos e colocamos na Caixa Texto 1. Repetimos isso até Acabar o Texto...
     
    Veja o Código Comentado para entender...
     
    No exemplo esta dividindo a cada 17.000 para teste, para utilizar 5 Caixa de Texto, mas no seu sistema mude para 64.000
     
     

     

    https://www.dropbox.com/s/47lsymad4sap23x/Dividir%20Texto%20em%20partes%20de%2065mil%20Caracters.rar?dl=0


    Codigo:
    Código:
    Private Sub Report_Load()
    '-------------------------------------------------------------------'
    '                                                                  '
    '                  Criado por FabioPaes                            '
    '            Em 04/11/2016 para o MaximoAccess                    '
    '          Livre para a utilização e aprendizado,                  '
    '                  preservando a autoria                          '
    '                                                                  '
    '-------------------------------------------------------------------'

    Dim TextoTotal As String ' Armazenará Todo o Texto
    Dim totCampos As Integer 'Calculará a quantidade de Campos necessarios no relatorio
    Dim valFinal As String  'Armazenará o Valor que sera impresso em cada campo
                           
                            'tCar (Conta quantos caracters tem em todo Texto;
                            'carFim (Armazenara o Numero do Caracter Final para Extração)
                            'carInicio (Armazenara o Numero do Caracter Inicial para Extração)
    Dim tCar, carFim, carInicio As Long
    Dim C As String          'Armazenara o Nome do Campo para ser usado no Loop

        'Passa Todo o texto para a Variavel
    TextoTotal = EstoqueInter()
        'Conta os Caracteres de todo Texto
    tCar = Len(TextoTotal)
        'Calcula a quantidade de Campos necessarios
    totCampos = ((tCar / 17000) + 0.99) \ 1

    If totCampos > 5 Then
    MsgBox "Atenção, o Relatorio gerou muitos Dados, por Informe o Administrador!", vbInformation
    Exit Sub
    Else
        'Inicia a extração do primeiro Caracter
    carInicio = 1
        'Inicio do LOOP que vai de 1 até a qnd de campos Necessarios para imprimir todo o Texto
    For i = 1 To totCampos
        C = "Txt" & i 'Controi o Nome do Campo que vai ser: txt+i (i=1,2,3,4...)
                'Extrai os primeiros 64mil caracters
        valFinal = Mid(TextoTotal, carInicio, 17000) 'Mude aqui para a Quantidade de Caracter que quer em cada Campo (preferencialmente 64000)
                'Localiza a posição Final da ultima linhas, para evitar linha quebrada (descrção em uma linha e valores em outra)
        carFim = InStrRev(valFinal, vbNewLine)
       
                'Extrai o Texto até a posição da ultima linha, e despresa o restante da linha que foi quebrada
        valFinal = Left(valFinal, carFim)
                'Aplica o Texto No Campo de acordo com a passagem do Loop (txt1, txt2,txt3...)
        Me.Controls(C) = valFinal
                'Armazena na variavel até que Caracter foi extraido do Texto, para pegar a partir dele no proximo LOOP
        carInicio = carInicio + Len(valFinal)
                'Limpa o ValorFinal para ser novamente construido no proximo LOOP
        valFinal = ""
    Next
    End If
    End Sub


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    NADIRONUNES
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 451
    Registrado : 30/08/2010

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  NADIRONUNES em 5/11/2016, 05:41

    blz, mas como configurar pra caber em cada folha normal, ta ficando folha em branco, passando de uma folha pra outra
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3913
    Registrado : 14/08/2013

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  FabioPaes em 5/11/2016, 07:07

    Aqui nao tem nenhuma folha em branco nao amigo... Reveja!

    No Exemplo gerou relatorio com 9 Paginas, sendo a Nona pagina apenas uma parte contem texto pois e o final do relatorio...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    NADIRONUNES
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 451
    Registrado : 30/08/2010

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  NADIRONUNES em 8/11/2016, 06:34

    obrigado
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3913
    Registrado : 14/08/2013

    [Resolvido]Como aumentar quantidade caracteres Empty Re: [Resolvido]Como aumentar quantidade caracteres

    Mensagem  FabioPaes em 10/11/2016, 12:26

    Grato pelo Retorno, até a próxima se Deus quiser!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

      Data/hora atual: 1/6/2020, 14:49