Access inicio | | | | | |
Olá,
Seja Bem Vindo ao Blog.

Conecte-se ou registre-se e utilize gratuitamente este equipamento, temos exemplos referente a criação de banco de dados e desenvolvimento de softwares e programas utilizando o Microsoft Access.


Administração do Blog AccessDoProgramador.

Como gerar uma Ordem de Serviços de um mesmo equipamento ja registrado

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

07112014

Mensagem 

Como gerar uma Ordem de Serviços de um mesmo equipamento ja registrado






Boa noite..

Em cima do ultimo registro de um equipamento, no sistema de ordem de serviços que estou desenvolvendo, quero que o sistema me de a opção de gerar outra ordem de serviços puxando a informações do equipamento desta ultima Ordem de serviços.
Segue abaixo o código que estou usando onde o sistema me acusa que ja existe um registro do equipamento.

Private Sub txtNumeroControleEquipamento_AfterUpdate()
Dim strDocNome As String
Dim strLinkCriteria As String
    strDocNome = "frmOrdemDeServiços"
If (Not IsNull(DLookup("[NumControleEquipamento]", "tblOrdemDeServiços", _
        "[NumControleEquipamento] ='" & Me!NumControleEquipamento & "'"))) Then
MsgBox "Este Número de Controle de Equipamento ja se encontra Cadastrado no Sistema.: " & txtNumeroControleEquipamento.Value, vbInformation, "Sistema de Geração de Ordem de Serviços - Aviso"
Cancel = True
Me!txtNumeroControleEquipamento.Undo
 strLinkCriteria = "[NumControleEquipamento]=" & "'" & Me![NumControleEquipamento] & "'"
    DoCmd.OpenForm strDocNome, , , strLinkCriteria
    End If

End Sub


avatar
Samuel Ribeiro

Brasil


Voltar ao Topo Ir em baixo

- Tópicos similares
Compartilhar este artigo em: BookmarksDiggRedditDel.icio.usGoogleLiveSlashdotNetscapeTechnoratiStumbleUponNewsvineFurlYahoo!Smarking

Como gerar uma Ordem de Serviços de um mesmo equipamento ja registrado :: Comentários

avatar

Mensagem em Seg 10 Nov 2014 - 11:50 por Dilson

Olá Samuel seja bem vindo a essa sala de discussão!

É possivel, mas antes preciso de mais detalhes.

Você deseja localizar a ultima ordem de serviço do equipamento e gerar a próxima acrescentando +1, ex: ordem do equipamento tal = 1, a próxima será ordem+1 = 2.

Mas, ao realizar a operação acima deseja buscar os dados desse equipamento e autopreencher na nova ordem.

É assim ?

Confirme para que eu formule o código.

Aguardamos.

Última edição por Dilson em Sab 15 Nov 2014 - 22:46, editado 1 vez(es)

Voltar ao Topo Ir em baixo

avatar

Mensagem em Seg 10 Nov 2014 - 20:34 por Samuel Ribeiro

Boa Noite placeholder...

Muito Obrigado pelo retorno..
Eu tentei postar o bd exemplo para vcs analisarem, mas não teve como, não aceitou o anexo de modo algum.
Mas em principio é isto mesmo, eu digitarei o código de controle do equipamento e o sistema me acusa que este equipamento ja foi lançado no sistema como o código postado no inicio do tópico, e me pergunte se eu desejo abrir outra ordem de serviços para este equipamento, se eu responder sim, ele me traz as informações da ordem de serviços anterior e eu preencho ou altero os campos que precisão ser alterados.
Segue abaixo os campos da ordem de serviço conforme suas nomenclaturas:.
CodigoOs = Numeração Automatica.
NumConroleEquipamento = Informado pelo usuário
SerialAganp = Informado pelo usuário
SerialEquipamento = Informado pelo usuário
DataEntrada = Informado pelo usuário
NomeEntregador =            "
MatrEntrgador =               "
NomeTecnico =   caixa de combinação Ligada à tabela de cadastro de técnicos
Defeito = Informado pelo usuário
região = Caixa de combibinação (Conforme NomeTecnico)
TipoEquipamento = Caixa de combinação (Idem ambas acima)
MarcaEquipamento = Caixa de combinação (idem ambas acima)
ModeloEquipamento = Caixa de Combinação (Idem ambas acima)
StatusDoEquipamento = Caisa de combinação (Idem ambas acima)
recibo e data de entrega só serão preenchidos no fechamento da ordem de serviços.

Desde ja deixo meus sinceros agradecimento

um abraço

Voltar ao Topo Ir em baixo

avatar

Mensagem em Sab 15 Nov 2014 - 22:38 por Dilson

Olá,

Espero que não tenha ficado chateado pela demora em responder sua questão. Na minha cidade tenho uma função a mais que é Pregoeiro e essa semana tive que julgar duas licitações e o tempo foi-se.

Bom, analisei e veja a sugestão de código:

Private Sub txtNumeroControleEquipamento_AfterUpdate()
Dim strDocNome As String
Dim strLinkCriteria As String
   strDocNome = "frmOrdemDeServiços"
If (Not IsNull(DLookup("[NumControleEquipamento]", "tblOrdemDeServiços", _
       "[NumControleEquipamento] ='" & Me!NumControleEquipamento & "'"))) Then

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblOrdemDeServiços WHERE NumControleEquipamento='" & Me!NumControleEquipamento & "'")
rs.MoveLast
If MsgBox("Este Número de Controle de Equipamento ja se encontra Cadastrado no Sistema: " & txtNumeroControleEquipamento.Value & "" _
& vbCrLf & vbCrLf & "Você deseja abrir outra ordem de serviço para este equipamento?", vbQuestion + vbYesNo, "Decisão") = vbYes Then
'Autopreencher os campos com os dados do registro encontrado:
Me.txtSerialEquipamento = rs("SerialEquipamento")
'Me.txtOutroCampo = rs("OutroCampo")

Else
'Outros comandos caso aperte a opção Não.
End If


Cancel = True
Me!txtNumeroControleEquipamento.Undo
strLinkCriteria = "[NumControleEquipamento]=" & "'" & Me![NumControleEquipamento] & "'"
   DoCmd.OpenForm strDocNome, , , strLinkCriteria
   End If
End Sub


Tente.

Nota: Enviar arquivos só é possivel se hospedar em sites como dropbox, onedrive, googledos e outros e postar o link na postagem.

Voltar ao Topo Ir em baixo

avatar

Mensagem em Ter 18 Nov 2014 - 21:10 por Samuel Ribeiro

Boa noite Dilson..

Quase Funcionou, só na hora que respondo sim para criar uma nova os e que da um erro , e no segundo teste deu erro e sublinhou em amarelo esta linha.
rs.MoveLast


Muito Obrigado.

Voltar ao Topo Ir em baixo

avatar

Mensagem em Ter 18 Nov 2014 - 22:54 por Dilson

Oi Samuel,

O exemplo que me mandou, Não vi nada lá que tenha implementado com relação na dúvida que postou. Acho que errou o arquivo na hora de postar.

Se desejar, anexe novamente o arquivo certo.

Sobre o erro:
O erro que tá dando é porque não existe mais de um registro no recordset que possa percorrer e ir até o ultimo (last). Nesse caso pode usar assim:

if rs.recordcount > 0 then
rs.movelast
end if

Voltar ao Topo Ir em baixo

avatar

Mensagem em Qua 19 Nov 2014 - 19:07 por Samuel Ribeiro

Boa noite Dilson..

Desculpa pela falha errei o arquivo mesmo segue link do verdadeiro..
mega.co.nz #!U4ACmQqA!eWSf5KUdvkegKbPQVyatLieF1bv9VmIbdGkbYB-xGnU

E em teste que fiz cheguei a conclusão que sera melhor abrir uma nova os a partir da ultima da tabela. 

Desde ja agradeço

muito obrigado e tenha uma excelente noite.

Voltar ao Topo Ir em baixo

avatar

Mensagem em Qui 20 Nov 2014 - 19:53 por Dilson

Veio somente o front-end, faltou o banco com os dados nas tabelas.

Voltar ao Topo Ir em baixo

avatar

Mensagem em Sex 21 Nov 2014 - 6:51 por Samuel Ribeiro

Bom dia Dilson.

Parece que estou esquecendo de como compartilhar bd.
Desculpa novamente pela falha. Segue p link para o be.

mega.co.nz #!UoRBTASQ!ecRyezZ5KwC_wqyDGui-Mh4NOBEYqJYaaAZM0zrc81w

Muito Obrigado pela atenção.

Voltar ao Topo Ir em baixo

avatar

Mensagem em Ter 25 Nov 2014 - 21:04 por Samuel Ribeiro

Boa noite Dilson


Espero que tenha conseguido puxar o be no link que te enviei e tenha entendido o que eu preciso que aconteça no sistema.
 No aguardo
Muito obrigado
Um abraço.

Voltar ao Topo Ir em baixo

avatar

Mensagem em Qua 26 Nov 2014 - 21:16 por Dilson

Olá, foi bom ter lembrado o post.

Amigo fiz o teste aqui e deu certo com o código que lhe passei acima.

O detalhe:
Acrescentei mais um End If no final e usei o código no evento Antes de Atualizar.

Experimente aí e veja (Se não funcionar com as dicas, informe que anexarei o seu exemplo modificado.)

Aguardo o retorno.

Voltar ao Topo Ir em baixo

avatar

Mensagem em Qui 27 Nov 2014 - 20:08 por Samuel Ribeiro

Boa noite Dison

Infelizmente não deu certo ainda segue abaixa o link do  print screen do erro.

mega.co.nz #!Et4TiIpC!7MOfKXHVUBahToT-ZHotufRSzey8DcQsYEQ0pwqthqo

desde ja agradeço..

Voltar ao Topo Ir em baixo

avatar

Mensagem em Sex 28 Nov 2014 - 6:49 por Dilson

Olhei o print e assim como está lá não vai funcionar mesmo, porque não está como orientei.

Faça assim:
Retire o código dessa finalidade do evento Após Atualizar e coloque no evento Antes de Atualizar:

Dim strDocNome As String
Dim strLinkCriteria As String
  strDocNome = "frmOrdemDeServiços"
If (Not IsNull(DLookup("[NumControleEquipamento]", "tblOrdemDeServiços", _
      "[NumControleEquipamento] ='" & Me!NumControleEquipamento & "'"))) Then

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblOrdemDeServiços WHERE NumControleEquipamento='" & Me!NumControleEquipamento & "'")
rs.MoveLast
If MsgBox("Este Número de Controle de Equipamento ja se encontra Cadastrado no Sistema: " & txtNumeroControleEquipamento.Value & "" _
& vbCrLf & vbCrLf & "Você deseja abrir outra ordem de serviço para este equipamento?", vbQuestion + vbYesNo, "Decisão") = vbYes Then
'Autopreencher os campos com os dados do registro encontrado:
Me.txtSerialEquipamento = rs("SerialEquipamento")
'Me.txtOutroCampo = rs("OutroCampo")

Else
'Outros comandos caso aperte a opção Não.
End If
End If

Obs: O código acima pode parecer que está cortado, porém basta selecionar copiar e colar onde desejar que o conteúdo é copiado e colado por completo.

Estou enviando anexo o front com a implementação no  campo txtNumeroControleEquipamento:
Download

Bom trabalho!

Última edição por Dilson em Ter 4 Abr 2017 - 22:20, editado 1 vez(es)

Voltar ao Topo Ir em baixo

avatar

Mensagem em Sex 28 Nov 2014 - 20:40 por Samuel Ribeiro

Boa Note Dilson


Muito Obrigado pela ajuda.
Funcionou.
Como faço para dr o tópico com resolvido?
Desde ja agradeço


Um abraço..

Voltar ao Topo Ir em baixo

avatar

Mensagem em Sab 29 Nov 2014 - 11:40 por Dilson

Informou que resolveu, então o tópico tá resolvido. 

sempre que precisar retorne e publique sua dúvida que tentaremos uma solução.

Abraço!

Nota: Por enquanto ainda não aderimos ao uso do botão [Resolvido].

Voltar ao Topo Ir em baixo

Mensagem  por Conteúdo patrocinado

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum