Ir para conteúdo
Entre para seguir isso  
DinhoPHP

Inserção duplicada

Recommended Posts

Bom dia!

 

Estou utilizando esta programação para cadastrar nomes de PCs e partir desta lista checar se o nome da máquina consta nela para exibir uma planilha e esconder a mesma, só que está havendo um cadastramento duplicados e não sei porque. Isso não pode ocorrer.

 

Obs: Não programo macros, e sim para web como: JAVA, PHP, HTML5 e etc.i

Compartilhar este post


Link para o post
Compartilhar em outros sites
Private Sub btnok_Click()

'verifica se tudo foi preenchido

If Me.txtnome = "" Then

MsgBox "Insira o nome computador", vbExclamation, "Erro!"

Exit Sub

Me.txtnome.SetFocus

'ElseIf Me.txtcargo = "" Then

'MsgBox "Insira cargo / setor!", vbExclamation, "Erro!"

'Exit Sub

'Me.txtcargo.SetFocus

'ElseIf Len(Me.txtdata) < Me.txtdata.MaxLength Then

'MsgBox "Insira data no formato dd/mm/aaaa!", _

' vbExclamation, "Erro!"

'Exit Sub

'Me.txtdata.SetFocus

End If


'solicita autorização

If MsgBox("Deseja inserir estes dados?", vbOKCancel + vbQuestion, _

"Atenção!") = vbCancel Then Exit Sub


'desabilita atualização de tela

Application.ScreenUpdating = False


'LANÇA NA ABA GERAL


'desprotege a planilha

ActiveSheet.Unprotect

'exibe todas as linhas

ActiveSheet.Rows.Hidden = False

'define última linha da lista

Dim lin As Integer

lin = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

'lança o nome na última linha

Cells(lin, 1) = Me.txtnome

Cells(lin, 1).HorizontalAlignment = xlLeft

'Cells(lin, 2) = Me.txtcargo

'Cells(lin, 2).HorizontalAlignment = xlLeft

'Cells(lin, 3) = Format(Me.txtdata, "mm/dd/yyyy")

'Cells(lin, 3).HorizontalAlignment = xlCenter

'desenha bordas na linha preenchida

Range(Cells(lin, 1), _

Cells(lin, 1)).Borders.LineStyle = xlContinuous

'organiza em ordem crescente (pela coluna A)

With ActiveSheet

.Sort.SortFields.Clear

.Sort.SortFields.Add Key:=Range("A3"), _

SortOn:=xlSortOnValues, Order:=xlAscending, _

DataOption:=xlSortNormal

End With

With ActiveSheet.Sort

.SetRange Range("A3:C" & lin)

.Header = xlNo

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

'oculta linhas vazias

Range(Cells(lin + 1, 1), Cells(Rows.Count, 1)).EntireRow.Hidden = True

Range("A1").Select

'protege a planilha

ActiveSheet.Protect


'LANÇA NA ABA ESPECÍFICA


'Sheets(Format(Month(Me.txtdata), "00")).Select

'desprotege a planilha

ActiveSheet.Unprotect

'exibe todas as linhas

ActiveSheet.Rows.Hidden = False

'define última linha da lista

Dim lin2 As Integer

lin2 = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

'lança o nome na última linha

Cells(lin2, 1) = Me.txtnome

Cells(lin2, 1).HorizontalAlignment = xlLeft

'Cells(lin2, 2) = Me.txtcargo

'Cells(lin2, 2).HorizontalAlignment = xlLeft

'Cells(lin2, 3) = Format(Day(Me.txtdata), "00")

'Cells(lin2, 3).HorizontalAlignment = xlCenter

'desenha bordas na linha preenchida

Range(Cells(lin2, 1), _

Cells(lin2, 3)).Borders.LineStyle = xlContinuous

'organiza em ordem crescente (pela coluna A)

With ActiveSheet

.Sort.SortFields.Clear

.Sort.SortFields.Add Key:=Range("C3"), _

SortOn:=xlSortOnValues, Order:=xlAscending, _

DataOption:=xlSortNormal

End With

With ActiveSheet.Sort

.SetRange Range("A3:C" & lin2)

.Header = xlNo

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

'oculta linhas vazias

Range(Cells(lin2 + 1, 1), Cells(Rows.Count, 1)).EntireRow.Hidden = True

Range("A1").Select

'protege a planilha

ActiveSheet.Protect


'VOLTA NA ABA GERAL

Sheets("geral").Select


'habilita atualização de tela

Application.ScreenUpdating = True


'limpa o formulário

Me.txtnome = ""

'Me.txtcargo = ""

'Me.txtdata = ""

Me.txtnome.SetFocus


End Sub


Private Sub btnlimpar_Click()

Me.txtnome = ""

'Me.txtcargo = ""

'Me.txtdata = ""

Me.txtnome.SetFocus

End Sub


Private Sub btnsair_Click()

Unload Me

End Sub


Private Sub Label1_Click()


End Sub


Private Sub txtnome_Change()

Me.txtnome.MaxLength = 50

Me.txtnome = UCase(Me.txtnome)

End Sub


Private Sub txtcargo_Change()

'Me.txtcargo.MaxLength = 30

'Me.txtcargo = UCase(Me.txtcargo)

End Sub


Private Sub txtdata_Change()

'txtdata.MaxLength = 10

Select Case KeyAscii

Case 8, 48 To 57 ' backspace e numéricos

Case Else ' o resto é travado

KeyAscii = 0

End Select


If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyBack Then Exit Sub


If KeyAscii < vbKey0 Or KeyAscii > vbKey9 Then

KeyAscii = 0

End If


'If Len(txtdata) = 2 Then

' txtdata.Text = txtdata.Text & "/"

' SendKeys "{End}", False

'ElseIf Len(txtdata) = 5 Then

' txtdata.Text = txtdata.Text & "/"

' SendKeys "{End}", False

'End If


End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

por Reinaldo » Seg Jan 04, 2016 11:27 am

O trecho 'LANÇA NA ABA GERAL e 'LANÇA NA ABA ESPECÍFICA não se movimentam entre as abas do arquivo, lançam dados SEMPRE na aba ativa (activesheet).
Aparentemente o arquivo está posicionado na Aba Geral no inicio do "Lançamento de Dados", como a linha :
'Sheets(Format(Month(Me.txtdata), "00")).Select foi comentada/inibida, os dados à partir dessa linha são inseridos na mesma aba; é preciso determinar/selecionar a aba especifica, ou elininar essas linhas da rotina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Conteúdo Similar

    • Por FIM1999
      Preciso montar um sistema para geração automática de carteirinha para membros de um clube de benefícios. Alguém já tem alguma codificação pronta para isso?
      Ou então sabe como fazer?
    • Por Leo_2019
      Sou novato em access e vba. Estou utilizando uma textbox e gostaria de colar vários nomes na textbox e ao clicar no botão salvar gostaria que fosse inserido todos os valores na tabela, sendo cada nome como um registro, ou seja, incluir em lote ao invés de um por um. Se existir outra forma diferente da textbox também é válido. Tal propósito é devido um sistema de novos colaboradores que tenho que criar. Já criei 80%, mas está faltando essa parte, uma vez que, tentei de várias formas mas não consegui e estou precisando muito dessa ajuda. Tentei inserir a imagem do código que eu fiz, mas não foi possível devido ao tamanho. Desde já agradeço.
    • Por sheepziiin
      Boa tarde colegas !
      Estou quebrando a cabeça com um job para tratamento de logradouros. Segue o raciocínio:  
      Tenho uma lista com todos os endereços do estado de São Paulo, onde os mesmos são extraídos da seguinte forma:
       
      Exemplo:
      AL-AFONSO SCHMIDT/CDM:ED. SOPHIS SANTANA_COM PRUMADA/BLC:A-555-AP - Apartamento: 61 A AL-ANAPURUS/EDI:BOULEVARD/BLC:A-777-AP - Apartamento: 131 AL-ARAPANES/EDI:CDOE,6-5ºANDAR-309-AP - Apartamento: 42 AL-ARAPANES/EDI:COND.ED.MOEMA DUPLEX LIFE-1142-AP - Apartamento: 102 AL-ARAPANES/EDI:COND.ED.MOEMA DUPLEX LIFE-1142-AP - Apartamento: 42 AL-ARAPANES/EDI:PARC BRUMENADI-982-AP - Apartamento: 191 AL-BARROS/EDI:PERVAL-186-AP - Apartamento: 1601 AL-BARROS/EDI:PERVAL-186-BL - Blocos: B AP - Apartamento: 1302 AL-CAETANO,S/CDM:ED. GIARDINO_CDOE_1_ANDAR_11 A 13-165-AP - Apartamento: 63 AL-CAETANO,S/EDI:ESPLENDOR-1234-AP - Apartamento: 71 AL-CAETANO,S/EDI:MAGENTA I_CDOE_1_ANDAR_7 A 10-2575-AP - Apartamento: 94 AL-CALCUTA-195-AP - Apartamento: 02 AL-CAMPESTRE-728-CS - Casa: 1 AL-CASA BRANCA/CDM:BRISTOL-851-CJ - Conjunto: 11 AN - Andar: 01 AL-CASA BRANCA/CDM:SAINT SIMON-667-AP - Apartamento: 11
      Notem que os casos "não tem um padrão" (até tem por tipo de residencia). Utilizei inúmeras postagens aqui do fórum e consegui solucionar os casos para residencias (padrão TIPO_LOG;LOG;COMPL;NUM), no entanto as formulas e soluções aqui indicadas por vocês "param" na primeira sequencia numérica, entretanto para a maioria dos casos, o texto continua com letras, números e caracteres.
       
      Segue o padrão final que preciso chegar.
      Exemplo: AL-AFONSO SCHMIDT/CDM:ED. SOPHIS SANTANA_COM PRUMADA/BLC:A-555-AP - Apartamento: 61 A
      Resultado Tratado: AFONSO SCHMIDT 555
       
      Desde de já muito obrigado pelos retornos que certamente virão.
    • Por MayaraTorres
      Estou fazendo um comando no firebird 
       
      preciso comparar dois selects,
       
      eu preciso que seja listado os campos numero do lançamento, origem, data, debito, credito e valor
      somente quando o valor for igual.
      ou seja quando tiver origens diferentes e valores iguais isso na mesma tabela.
       
       
      fiz esse comando : 
       
       
       
       select CHAVELCTOCTB,DATALCTOCTB,CODIGOORIGLCTOCTB,CONTACTBDEB,CONTACTBCRED,VALORLCTOCTB  from lctoctb 
      where CONTACTBDEB= 1687 and CODIGOORIGLCTOCTB ='IP'
      and codigoempresa=:CODEmpresa and   DATALCTOCTB between :INICIAL and :FINAL  AND contactbcred= :CONTABANCO 
      union
       
      select CHAVELCTOCTB,DATALCTOCTB,CODIGOORIGLCTOCTB,CONTACTBDEB,CONTACTBCRED,VALORLCTOCTB from lctoctb 
      where CONTACTBCRED= 1687 and CODIGOORIGLCTOCTB ='CP'
      and codigoempresa=:CODEmpresa and   DATALCTOCTB between :INICIAL and :FINAL 
       
      os campos são exatamente o que preciso, porém quero que liste apenas quando o campo VALORLCTOCTB for igual nos dois select
       
    • Por antonio_milat
      Meu listener está sendo chamado duas vezes, mas o evento só é disparado uma vez.
      Eu copiei a base do código da documentação do Lumen 5.7 e aparentemente está tudo configurado corretamente. Não consigo encontrar o problema.
       
      bootstrap/app.php
      $app->register(App\Providers\EventServiceProvider::class);  
      app/Providers/EventServiceProvider.php
      protected $listen = [ 'App\Events\NewAuthEvent' => [ 'App\Listeners\SendNewAuthListener', ], ];  
      app/Events/NewAuthEvent.php
      use Illuminate\Queue\SerializesModels; use App\Data\Entity\User; use App\Data\Entity\Authorization; use Illuminate\Support\Facades\Log; class NewAuthEvent { use SerializesModels; public $user; public $auth; public function __construct(User $user, Authorization $auth) { Log::debug("Disparado uma vez"); $this->user = $user; $this->auth = $auth; } }  
      app/Listeners/SendNewAuthListener.php
      use App\Events\NewAuthEvent; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use App\Data\Service\MessengerService; use Illuminate\Support\Facades\Log; class SendNewAuthListener { private $messenger; public function __construct(MessengerService $messenger) { Log::debug("Chamado duas vezes"); $this->messenger = $messenger; } public function handle(NewAuthEvent $event) { Log::debug("Chamado duas vezes também"); $this->messenger->new($event->user, $event->auth); } }  
      Disparando o evento:
      event(new NewAuthEvent($objUser, $objAuthorization)); Estou me esquecendo de algum parâmetro ou configuração? Agradeço desde já!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.