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

    OpenRecordset - ListBox

    Compartilhe
    avatar
    FabioLeitao
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 21/12/2016

    OpenRecordset - ListBox

    Mensagem  FabioLeitao em Qui 11 Maio 2017, 03:21

    Boa noite pessoal,

    Estou com a seguinte situação

    Após preencher um formulario e clicar em salvar o formulario salva todas as informações em um campo "aguardandoLiberação"

    separadas por | da função Split na Coluna 8
    Código:
    strSplit = Split(cbxPendencias.Column(8), "|")

    Estou usando a função rs.Addnew e rs.Edit em um botão Aprovar.

    Ao usuario clicar e selecionar o item em uma ListBox e clicar em "Aprovar" o formulario cria o registro na tabela e adiciona as informações nos campos determinados.

    Porem meu campo DESCRIÇÃO tem muitas informações e ao ultrapassar 255 Caracteres, aparece a seguinte mensagem
    "Subscrito fora do intervalo"

    Me Parece que a coluna de um ListBox deve ter uma tamanho limitado a 255 caracteres e por este motivo o Rs.edit nao consegue copiar o que esta no campo "aguardandoliberacao" para os determinados campos separados por |.

    Segue os codigos.

    Botão Aprovar da ListBox

    Código:
    Private Sub btnLiberar_Click()
        If Not IsNull(cbxPendencias) = True Then
            If MsgBox("Confirma a inclusão de um novo produto referente ao registro " & cbxPendencias.Column(0) & "?", vbQuestion + vbYesNo, cbxPendencias.Column(2)) = vbYes Then
                Dim strSplit() As String
                
                Set db = CurrentDb
                Set rs = db.OpenRecordset("select * from Glossario where codigo = " & cbxPendencias.Column(0) & "")
                
                strSplit = Split(cbxPendencias.Column(8), "|")
                
                rs.AddNew
                    rs("produto") = strSplit(0)
                    rs("descricao") = strSplit(1)
                    rs("manual") = strSplit(2)
                    rs("status") = strSplit(3)
                    rs("data") = strSplit(4)
                    rs("pendente") = False
                    rs("solicitacao") = Null
                    rs("aguardandoLiberacao") = Null
                rs.Edit
                    rs("produto") = strSplit(0)
                    rs("descricao") = strSplit(1)
                    rs("manual") = strSplit(2)
                    rs("status") = strSplit(3)
                    rs("data") = strSplit(4)
                    rs("pendente") = False
                    rs("solicitacao") = Null
                    rs("aguardandoLiberacao") = Null
                rs.Update
                rs.Close
                db.Close
                
                MsgBox "Aprovação realizada!", vbInformation, "Sucesso"
                cbxPendencias.Requery
            End If
        Else
            MsgBox "Nenhuma pendência selecionada.", vbCritical, "Erro"
        End If
    End Sub


    Botão Salvar do Formulario.


    Código:
    Private Sub btnSalvar_Click()
        If Not IsNull(txtProduto) = True Then
            Set db = CurrentDb
            Set rs = db.OpenRecordset("select * from Glossario where produto = '" & txtProduto & "'")

            rs.AddNew
                rs("Pendente") = True
                rs("Solicitacao") = tipoPendencia(1)
                rs("AguardandoLiberacao") = txtProduto & "|" & txtDescricao & "|" & txtManual & "|" & txtStatus & "|" & txtData & "|"
            rs.Update
            rs.Close
            db.Close
            
            MsgBox tipoPendencia(1) & " Encaminhada para aprovação do responsável.", vbInformation, "Sucesso"
            Call limpaCampos
        Else
            MsgBox "Selecione um registro!", vbCritical, "Erro"
            txtProduto.SetFocus
        End If
    End Sub
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: OpenRecordset - ListBox

    Mensagem  ronaldojr1 em Seg 22 Maio 2017, 19:42

    antes de tentar mexer no codigo, tenta alterar o tipo do seu campo de "Texto" para "memorando"
    caso ja esteja ou nao de certo tenta substituir por instruções sql.
    exemplo:
    Código:

    dim sql as string
    dim aguardandoLiberacaoTemp as string

    aguardandoLiberacaoTemp = txtProduto & "|" & txtDescricao & "|" & txtManual & "|" & txtStatus & "|" & txtData & "|"
    sql = "INSERT INTO Glossario(Pendente,Solicitacao,AguardandoLiberacao)values('True','" & me.tipoPendencia(1) & "','" & aguardandoLiberacaoTemp & "')"
    docmd.RunSQL = sql


      Data/hora atual: Sab 18 Nov 2017, 01:10