none
Inserir dados numa mesma linha do access RRS feed

  • Pergunta

  • Ola pessoal,

    estou desenvolvendo um sistema de ponto eletrônico, Tenho a seguinte duvida,

    Quando o funcionario iniciar o expediente dele, quero q o VB insira no banco de dados o horario de inicio, o nome e a data, Ate ai tudo bem, Mas quando ele fecha o expediente eu queria inserir na mesma linha acima,( A que consta no DB a data, hora e nome,) insira a hora do fim... No meu caso quando isso ocorre ele inseri na linha de baixo, Cria uma nova linha... constando só o campo FIM...

    Codigo do botao iniciar:

     Public Sub iniciarsessão()
            data = Date.Today()
            inicio = TimeOfDay()
            Try
                comando = New OleDbCommand("insert into funcionario1 (Nome,Data,inicio) values ('" & user & "','" & data & "','" & inicio & "')", conecta) "Aqui a linha principal, Quero que o valor fim seja inserido nesta mesma linha a ser criada no db"
                comando.ExecuteNonQuery()
                MsgBox("Sessão iniciada em: " & inicio, 64, "Bem Vindo")
            Catch ex As Exception
                MsgBox("Falha", 16, "Alerta")
            End Try

        End Sub

    Do botao finalizar

     Public Sub fecharsessão()

    fim = TimeOfDay()
            'Introduzindo informações no banco de dados
            Try
                comando = New OleDbCommand("insert into funcionario1 (Fim) values ('" & fim & "')", conecta) "Aqui ele cria uma outra linha"
                comando.ExecuteNonQuery()
                MsgBox("Sessão finalizada em: " & fim, 64, "Ate logo")
                frmmenuprincipal.Hide()
                frmlogin.Show()
                frmlogin.tbs.Text = ""
                frmlogin.tbu.Text = ""

            Catch ex As Exception
                MsgBox("Falha", 16, "Alerta")
            End Try

        End Sub

    domingo, 17 de novembro de 2013 01:43

Respostas

  • Primeiro crie um campo chamado ID como chave primaria ou seja este ID será um INT e o valor NUNCA pode ser repetido. Depois você usa este ID para atualizar faça isto e tente inserir e poste novamente.
    • Sugerido como Resposta Giovani Cr segunda-feira, 25 de novembro de 2013 12:08
    • Marcado como Resposta Giovani Cr quarta-feira, 27 de novembro de 2013 12:17
    sexta-feira, 22 de novembro de 2013 18:12

Todas as Respostas

  • Edenilson você está utilizando  INSERT ou seja inserir isto cria uma nova linha sim, o correto seria um UPDATE você terá que ver um campo como sendo unico ou seja uma chave primaria e realizar o UPDATE desta sua linha e não o INSERT olha estes exemplos :

    UPDATE ACCES

    Exemplo Update Access

    domingo, 17 de novembro de 2013 19:07
  • É eu reparei mas ainda estou travado neste problema, Não consigo de jeito nenhum fazer este update, Na condição eu nao sei como especificar no comando q eu quero inserir no campo FIM da ultima linha criado ja pensei de tudo e nada se resolve...

    Vc não conseguiria olhando este codigo me dar uma luz??

    Vou colocar uma imagem de como esta minha tabela...

    Sabendo q O nome do usuario logado e variavel e se eu usar update com base nisso ele alteraria todos os campos fim dete usuario, Pensei e um id mas daria o msm problema... Olhando ai vc nao conseguiria??

    sexta-feira, 22 de novembro de 2013 15:52
  • Primeiro crie um campo chamado ID como chave primaria ou seja este ID será um INT e o valor NUNCA pode ser repetido. Depois você usa este ID para atualizar faça isto e tente inserir e poste novamente.
    • Sugerido como Resposta Giovani Cr segunda-feira, 25 de novembro de 2013 12:08
    • Marcado como Resposta Giovani Cr quarta-feira, 27 de novembro de 2013 12:17
    sexta-feira, 22 de novembro de 2013 18:12