Usuário com melhor resposta
Inserir dados numa mesma linha do access

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 SubDo 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
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
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 :
-
É 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??
-
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