none
Caixa de Listagem (Seleção) Access RRS feed

  • Pergunta

  • Bom dia!

    Pessoal estou com o seguinte problema:

    Tenho duas listagem de materiais sendo que uma é de materiais pendentes para contar e outra de materiais que estão sendo contados. Quando o material é enviado de uma lista para outra o status é alterado de Pendente para Contando.

    O meu problema é o seguinte, quando envio o material da lista de Pendente para a lista de Contando não consigo "travar com erro" o material ou seja, posso ficar enviando um material que já está sendo contado varias vezem pra mesma lista que ele já se encontra, quero que ele não adicione pois ele já se encontra na lista!

    O código que estou usando é esse:

                                                

    Private Sub btn_contar_Click()
    On Error GoTo erro
    1:  'variaveis
        Dim bd As DAO.Database
        Dim wm As DAO.Recordset
        Dim pen As DAO.Recordset
        Dim i As Variant
        Dim SQL As String
        Dim edit As Boolean

        Set bd = CurrentDb
        SQL = "SELECT bd_contagem.Indice, bd_contagem.Material, bd_contagem.Linha, bd_contagem.Status, bd_contagem.Controlador, bd_contagem.Tipo FROM bd_contagem;"
        Set wm = bd.OpenRecordset(SQL, dbOpenDynaset)
        Set pen = bd.OpenRecordset("bd_contagem", dbOpenDynaset)

        edit = False

    2:  '&&&&&&&&&&& Verifica se foram selecionado lotes em sequencia &&&&&&&&&
        For Each i In lista_contar.ItemsSelected

            If Len(lista_contar.Column(5, i)) = "Contando" Then
                MsgBox "Este material já está sendo contado!", vbInformation, "Ação Cancelada!"
                GoTo sair
            End If

            With pen
                .FindFirst "[indice] = " & lista_contar.Column(0, i)
                If .NoMatch Then
                    MsgBox "Erro ao selecionar o item! Talvez o item já tenha sido contado!" & vbCrLf & "Atualize a tela!", vbExclamation, "Atenção"
                    GoTo sair
                Else
                    edit = True
                    .edit
                    .Fields("status") = "Contando"
                    .Fields("Fechado_Por") = Me.box_logado
                    .update
                End If

            End With

        Next

    3:  'finaliza
        If edit = True Then
            MsgBox "Iten(s) adicionado(s) a lista de contagem com êxito!", vbInformation, "Aviso"
        Else
            MsgBox "Não foi possível adicionar o(s) iten(s) a lista", vbInformation, "Aviso"
        End If
        bd.Close
        Me.lista_contando.Requery
        Me.lista_contar.Requery
    sair:
        Exit Sub

    erro:
        GeraLog "CONTAR", "btn_contar_Click()", Erl
    End Sub

    Tela

    Desde já agradeço!


    quarta-feira, 18 de julho de 2012 14:31