Postada em 07/11/2009 13:37 hs
Só falta um pouco para encerrar esse codigo e o problema esta nesse primeiro bloco. Esse codigo só deve entrar em ação se o campo Dados.FlagReq para todos os itens do documento for igual a (Requisitado), tentei ContaReq > 1 e ContaReq >= 1 e nada. Não estou sabendo como percorrer o campo. Agradeço se alguem puder ajudar.
Set BuscaReq = New ADODB.Recordset If BuscaReq.State = 1 Then BuscaReq.Close BuscaReq.Open "SELECT LMnr.LM_1,Dados.Dispositivo,Dados.Codigo,Dados.LM_1,Dados.FlagReq FROM LMnr, Dados WHERE (LMnr.LM_1 = '" & Procura & "' And Dados.LM_1 = '" & Procura & "')and Dados.FlagReq = 'Requisitado'", ConexaoLM, adOpenKeyset, adLockPessimistic ContaReq = 0 Do While Not BuscaReq.EOF ContaReq = ContaReq + 1 BuscaReq.MoveNext Loop If ContaReq > 1 Then MsgBox "Todo material de estoque dessa LM já foi requisitado.", vbCritical, "Erro de pesquisa" Exit Sub End If BuscaReq.Close Set BuscaReq = Nothing
Aqui o código completo:
Private Sub CmdBuscar_Click() LimpaTudo Dim Conta As Integer Dim ContaReq As Integer Dim Procura As String Dim LM_BuscaGerados As Recordset Dim BuscaInexistente As Recordset Dim BuscaReq As Recordset Procura = TxtBuscaLM.text NR_Copia = TxtBuscaLM.text Set BuscaReq = New ADODB.Recordset If BuscaReq.State = 1 Then BuscaReq.Close BuscaReq.Open "SELECT LMnr.LM_1,Dados.Dispositivo,Dados.Codigo,Dados.LM_1,Dados.FlagReq FROM LMnr, Dados WHERE (LMnr.LM_1 = '" & Procura & "' And Dados.LM_1 = '" & Procura & "')and Dados.FlagReq = 'Requisitado'", ConexaoLM, adOpenKeyset, adLockPessimistic ContaReq = 0 Do While Not BuscaReq.EOF ContaReq = ContaReq + 1 BuscaReq.MoveNext Loop If ContaReq > 1 Then MsgBox "Todo material de estoque dessa LM já foi requisitado.", vbCritical, "Erro de pesquisa" Exit Sub End If BuscaReq.Close Set BuscaReq = Nothing
Set BuscaInexistente = New ADODB.Recordset If BuscaInexistente.State = 1 Then BuscaInexistente.Close BuscaInexistente.Open "SELECT LMnr.LM_1,Dados.Dispositivo,Dados.Codigo,Dados.LM_1,Dados.FlagReq AS Flag FROM LMnr,Dados WHERE LMnr.LM_1 = Dados.LM_1 And Dados.LM_1 = '" & Procura & "'", ConexaoLM, adOpenKeyset, adLockPessimistic If BuscaInexistente.RecordCount = 0 Then MsgBox "Lista de Material não cadastrada!", vbCritical, "Erro de pesquisa" Exit Sub Else Do While Not BuscaInexistente.EOF If BuscaInexistente!Dispositivo = "" Or BuscaInexistente!Dispositivo = "103" Or BuscaInexistente!Dispositivo = "203" Or BuscaInexistente!Dispositivo = "000" Then MsgBox "Não existe nesta Lista de Material item de estoque!", vbCritical, "Erro de pesquisa" Exit Sub ElseIf IsNull(BuscaInexistente!Flag) Then MsgBox "Lista de Material ainda não foi baixada. É necessário efetuar a baixa dos itens para gerar a requisição!", vbCritical, "Erro de pesquisa" Exit Sub End If BuscaInexistente.MoveNext Loop End If BuscaInexistente.Close Set BuscaInexistente = Nothing Set LM_Busca = New ADODB.Recordset If LM_Busca.State = 1 Then LM_Busca.Close LM_Busca.Open "SELECT LMnr.LM_1,Dados.Dispositivo,Dados.Codigo,Dados.LM_1,Dados.FlagReq FROM LMnr, Dados WHERE (LMnr.LM_1 = '" & Procura & "' And Dados.LM_1 = '" & Procura & "') and Dados.Codigo = '' and Dados.FlagReq = 'Pendente'", ConexaoLM, adOpenKeyset, adLockPessimistic Conta = 0 Do While Not LM_Busca.EOF Conta = Conta + 1 LM_Busca.MoveNext Loop
If Conta >= 1 Then MsgBox "Atenção!! Exitem ainda" & " " & Conta & " items pendentes para baixa nesta Lista de Material.", vbInformation, "Informação da Lista" End If LM_Busca.Close Set LM_Busca = Nothing
Set LM_BuscaGerados = New ADODB.Recordset If LM_BuscaGerados.State = 1 Then LM_BuscaGerados.Close LM_BuscaGerados.Open "SELECT LMnr.LM_1,Dados.Dispositivo,Dados.Codigo,Dados.LM_1,Dados.FlagReq FROM LMnr,Dados WHERE (LMnr.LM_1 = '" & Procura & "' And Dados.LM_1 = '" & Procura & "') and Dados.Codigo <> null and Dados.FlagReq = 'Gerado'", ConexaoLM, adOpenKeyset, adLockPessimistic
Do While Not LM_BuscaGerados.EOF CarregaCabecalho CarregaDados LM_BuscaGerados.MoveNext Loop LM_BuscaGerados.Close Set LM_BuscaGerados = Nothing End Sub
|