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

    OpenRecordset - ListBox

    FabioLeitao
    FabioLeitao
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    OpenRecordset - ListBox Empty OpenRecordset - ListBox

    Mensagem  FabioLeitao 11/5/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
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    OpenRecordset - ListBox Empty Re: OpenRecordset - ListBox

    Mensagem  ronaldojr1 22/5/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: 22/11/2024, 17:13