Bom dia,
Estou quebrando a cabeça com a alteração do meu BD.
Devido ao constante erro de rede, resolvi desvincular para ver se resolve.
Bem eu usava o método DAO, o TXT_Down depois de atualizar, inserir um numero, na Tab_LiberaColetor por ex.
e busca o numero relacionado no campo "TXT_Down " e grava [DATA ENT] a data atual e hora como mostra a de atualização, e seguida atualizar a tabela com base no campo [DATA LIB].
se Maior ou <> de 0 ele limpava essa "Tab_LiberaColetor" e atualizava uma de TAB_HISTÓRICO.
na segunda e na terceira consulta, a primeira eu consegui assim:
obrigado!
Estou quebrando a cabeça com a alteração do meu BD.
Devido ao constante erro de rede, resolvi desvincular para ver se resolve.
Bem eu usava o método DAO, o TXT_Down depois de atualizar, inserir um numero, na Tab_LiberaColetor por ex.
e busca o numero relacionado no campo "TXT_Down " e grava [DATA ENT] a data atual e hora como mostra a de atualização, e seguida atualizar a tabela com base no campo [DATA LIB].
se Maior ou <> de 0 ele limpava essa "Tab_LiberaColetor" e atualizava uma de TAB_HISTÓRICO.
- Código:
Private Sub TXT_Down_AfterUpdate()
DoCmd.SetWarnings False
Me.Txt_down.SetFocus
Dim BancoDados As Database
Dim Coletor As Recordset
Dim Talkman As Recordset
Dim HeadSet As Recordset
Dim Histo_Coletor As Recordset
Set BancoDados = CurrentDb
If Txt_down <= 1000 Then
On Error GoTo fim
Set Coletor = BancoDados.OpenRecordset("Tab_LiberaColetor", dbOpenTable)
Set Histo_Coletor = BancoDados.OpenRecordset("TAB_HISTÓRICO", dbOpenTable)
'======================================
'Consulta atualização:
'======================================
DoCmd.RunSQL "UPDATE Tab_LiberaColetor SET Tab_LiberaColetor.[DATA ENT] = Date(), Tab_LiberaColetor.[HORA ENT] = Time(), Tab_LiberaColetor.IPModificacao = DameIpMaquina(), Tab_LiberaColetor.UserModificacao = GetUserName_TSB(), Tab_LiberaColetor.UserModificacaoLog = getUser() " & vbCrLf & _
"WHERE (((Tab_LiberaColetor.[DATA ENT]) Is Null) AND ((Tab_LiberaColetor.IDCALL)=[Txt_down]));"
'======================================
'Consulta acrecimo:
'======================================
DoCmd.RunSQL "INSERT INTO TAB_HISTÓRICO ( Cadastro, Coletor, [DATA LIB], [HORA LIB], [DATA ENT], [HORA ENT], NOME, [C/C], [Cargo Atual], Turno, Status, IDGESTOR, Gestor, UserRegisto, UserRegistoLog, IPRegisto, DataModificacao, UserModificacao, UserModificacaoLog, IPModificacao, Login_Usuario ) " & vbCrLf & _
"SELECT Tab_LiberaColetor.CADASTRO, Tab_LiberaColetor.IDCALL, Tab_LiberaColetor.[DATA LIB], Tab_LiberaColetor.[HORA LIB], Tab_LiberaColetor.[DATA ENT], Tab_LiberaColetor.[HORA ENT], TAB_COLABORADOR.NOME, TAB_COLABORADOR.[C/C], TAB_COLABORADOR.[Cargo Atual], TAB_COLABORADOR.Turno, TAB_COLABORADOR.Status, TAB_COLABORADOR.IDGESTOR, TAB_COLABORADOR.Gestor, Tab_LiberaColetor.UserRegisto, Tab_LiberaColetor.UserRegistoLog, Tab_LiberaColetor.IPRegisto, Tab_LiberaColetor.DataModificacao, Tab_LiberaColetor.UserModificacao, Tab_LiberaColetor.UserModificacaoLog, Tab_LiberaColetor.IPModificacao, Tab_LiberaColetor.Login_Usuario " & vbCrLf & _
"FROM TAB_COLABORADOR RIGHT JOIN Tab_LiberaColetor ON TAB_COLABORADOR.Cadastro = Tab_LiberaColetor.CADASTRO " & vbCrLf & _
"WHERE (((Tab_LiberaColetor.[DATA ENT]) Is Not Null));"
'======================================
'Consulta exclusão
'======================================
DoCmd.RunSQL "DELETE Tab_LiberaColetor.*, Tab_LiberaColetor.[DATA ENT], Tab_LiberaColetor.[DATA ENT], Tab_LiberaColetor.IDCALL, Tab_LiberaColetor.IDCALL " & vbCrLf & _
"FROM Tab_LiberaColetor " & vbCrLf & _
"WHERE (((Tab_LiberaColetor.[DATA ENT]) Is Not Null) AND ((Tab_LiberaColetor.IDCALL)=[Txt_down]));"
Txt_down.Value = Empty
ElseIf Txt_down >= 70000000 And Txt_down <= 78281237 Then
On Error GoTo fim
Set HeadSet = BancoDados.OpenRecordset("Tab_LiberaHeadSet", dbOpenTable)
Set Histo_Coletor = BancoDados.OpenRecordset("TAB_HISTÓRICO", dbOpenTable)
'======================================
'Consulta atualização:
'======================================
DoCmd.RunSQL "UPDATE Tab_LiberaHeadSet SET Tab_LiberaHeadSet.[DATA ENT] = Date(), Tab_LiberaHeadSet.[HORA ENT] = Time(),Tab_LiberaHeadSet.IPModificacao = DameIpMaquina(), Tab_LiberaHeadSet.UserModificacao = GetUserName_TSB(), Tab_LiberaHeadSet.UserModificacaoLog = getUser() " & vbCrLf & _
"WHERE (((Tab_LiberaHeadSet.[DATA ENT]) Is Null) AND ((Tab_LiberaHeadSet.IDCALL)=[TXT_Down]));"
'======================================
'Consulta acrecimo:
'======================================
DoCmd.RunSQL "INSERT INTO TAB_HISTÓRICO ( Cadastro, HeadSet, [DATA LIB], [HORA LIB], [DATA ENT], [HORA ENT], NOME, [C/C], [Cargo Atual], Turno, Status, IDGESTOR, Gestor, UserRegisto, UserRegistoLog, IPRegisto, DataModificacao, UserModificacao, UserModificacaoLog, IPModificacao, Login_Usuario ) " & vbCrLf & _
"SELECT Tab_LiberaHeadSet.CADASTRO, Tab_LiberaHeadSet.IDCALL, Tab_LiberaHeadSet.[DATA LIB], Tab_LiberaHeadSet.[HORA LIB], Tab_LiberaHeadSet.[DATA ENT], Tab_LiberaHeadSet.[HORA ENT], TAB_COLABORADOR.NOME, TAB_COLABORADOR.[C/C], TAB_COLABORADOR.[Cargo Atual], TAB_COLABORADOR.Turno, TAB_COLABORADOR.Status, TAB_COLABORADOR.IDGESTOR, TAB_COLABORADOR.Gestor, Tab_LiberaHeadSet.UserRegisto, Tab_LiberaHeadSet.UserRegistoLog, Tab_LiberaHeadSet.IPRegisto, Tab_LiberaHeadSet.DataModificacao, Tab_LiberaHeadSet.UserModificacao, Tab_LiberaHeadSet.UserModificacaoLog, Tab_LiberaHeadSet.IPModificacao, Tab_LiberaHeadSet.Login_Usuario " & vbCrLf & _
"FROM TAB_COLABORADOR RIGHT JOIN Tab_LiberaHeadSet ON TAB_COLABORADOR.Cadastro = Tab_LiberaHeadSet.CADASTRO " & vbCrLf & _
"WHERE (((Tab_LiberaHeadSet.[DATA ENT]) Is Not Null));"
'======================================
'Consulta exclusão
'======================================
DoCmd.RunSQL "DELETE Tab_LiberaHeadSet.[DATA ENT], Tab_LiberaHeadSet.[DATA ENT], Tab_LiberaHeadSet.*, Tab_LiberaHeadSet.IDCALL, Tab_LiberaHeadSet.IDCALL " & vbCrLf & _
"FROM Tab_LiberaHeadSet " & vbCrLf & _
"WHERE (((Tab_LiberaHeadSet.[DATA ENT]) Is Not Null) AND ((Tab_LiberaHeadSet.IDCALL)=[TXT_Down]));"
Txt_down.Value = Empty
Me.Refresh
ElseIf Txt_down >= 200000000 And Txt_down <= 201341440 Then
On Error GoTo fim
Set Talkman = BancoDados.OpenRecordset("Tab_LiberaTalkman", dbOpenTable)
Set Histo_Coletor = BancoDados.OpenRecordset("TAB_HISTÓRICO", dbOpenTable)
'======================================
'Consulta atualização:
'======================================
DoCmd.RunSQL "UPDATE Tab_LiberaTalkman SET Tab_LiberaTalkman.[DATA ENT] = Date(), Tab_LiberaTalkman.[HORA ENT] = Time(), Tab_LiberaTalkman.IDCALL = Txt_down ,Tab_LiberaTalkman.IPModificacao = DameIpMaquina(), Tab_LiberaTalkman.UserModificacao = GetUserName_TSB(), Tab_LiberaTalkman.UserModificacaoLog = getUser()" & vbCrLf & _
"WHERE (((Tab_LiberaTalkman.[DATA ENT]) Is Null ));"
'======================================
'Consulta acrecimo:
'======================================
DoCmd.RunSQL "INSERT INTO TAB_HISTÓRICO ( Cadastro, Talkman, [DATA LIB], [HORA LIB], [DATA ENT], [HORA ENT], NOME, [C/C], [Cargo Atual], Turno, Status, IDGESTOR, Gestor, UserRegisto, UserRegistoLog, IPRegisto, DataModificacao, UserModificacao, UserModificacaoLog, IPModificacao, Login_Usuario ) " & vbCrLf & _
"SELECT Tab_LiberaTalkman.CADASTRO, Tab_LiberaTalkman.IDCALL, Tab_LiberaTalkman.[DATA LIB], Tab_LiberaTalkman.[HORA LIB], Tab_LiberaTalkman.[DATA ENT], Tab_LiberaTalkman.[HORA ENT], TAB_COLABORADOR.NOME, TAB_COLABORADOR.[C/C], TAB_COLABORADOR.[Cargo Atual], TAB_COLABORADOR.Turno, TAB_COLABORADOR.Status, TAB_COLABORADOR.IDGESTOR, TAB_COLABORADOR.Gestor, Tab_LiberaTalkman.UserRegisto, Tab_LiberaTalkman.UserRegistoLog, Tab_LiberaTalkman.IPRegisto, Tab_LiberaTalkman.DataModificacao, Tab_LiberaTalkman.UserModificacao, Tab_LiberaTalkman.UserModificacaoLog, Tab_LiberaTalkman.IPModificacao, Tab_LiberaTalkman.Login_Usuario " & vbCrLf & _
"FROM TAB_COLABORADOR RIGHT JOIN Tab_LiberaTalkman ON TAB_COLABORADOR.Cadastro = Tab_LiberaTalkman.CADASTRO " & vbCrLf & _
"WHERE (((Tab_LiberaTalkman.[DATA ENT]) Is Not Null));"
'======================================
'Consulta exclusão
'======================================
DoCmd.RunSQL "DELETE Tab_LiberaTalkman.[DATA ENT], Tab_LiberaTalkman.[DATA ENT], Tab_LiberaTalkman.*, Tab_LiberaTalkman.IDCALL, Tab_LiberaTalkman.IDCALL " & vbCrLf & _
"FROM Tab_LiberaTalkman " & vbCrLf & _
"WHERE (((Tab_LiberaTalkman.[DATA ENT]) Is Not Null) AND ((Tab_LiberaTalkman.IDCALL)=[Txt_down]));"
Txt_down.Value = Empty
Me.Refresh
DoCmd.Close
Exit Sub
fim:
BancoDados.Close
Set BancoDados = Nothing
End If
DoCmd.Close
End Sub
na segunda e na terceira consulta, a primeira eu consegui assim:
- Código:
Col.Open "Select * From Tab_LiberaColetor", ADOMyConn
Col![DATA ENT] = Date
Col![HORA ENT] = Time()
obrigado!