Boa Tarde!
Pessoal,
Tenho um BD, onde preciso que uma das tabelas armazene os dados com referência a valores que a mesma possui. Exemplo, tbl_OnTime (tabela armazenadora) possui os dados de CD e UF que será concatenado (em VBA) para extrair valores na tbl_LeadTime que possui uma coluna chamada Concatenar que já tem esses valores prontos. A idéia é do PROCV do excel.
Andei observando que o Dlookup efetua este tipo de trabalho, porém não consigo acertar. Eu entendo que preciso até enxugar mais, porém como estou aprendendo, me perco na lógica da coisa.
Sub ComandoLoop()
Dim Db As DAO.Database
Dim Rstbl_OnTime As DAO.Recordset
Dim Rstbl_LeadTime As DAO.Recordset
Dim Rstbl_BD2 As DAO.Recordset
Dim varCDLoja As Variant
Dim varCDUF As Variant
Dim varLeadTime As Variant
Dim lngContador As Long
Dim lngContaOProgresso As Long
Dim varDataHoraInicial As Variant
Dim varDataHoraFinal As Variant
Set Db = OpenDatabase(CurrentProject.Path & "\On Time_be.accdb")
Set Rstbl_OnTime = Db.OpenRecordset("tbl_OnTime")
Set Rstbl_LeadTime = Db.OpenRecordset("tbl_LeadTime")
Set Rstbl_BD2 = Db.OpenRecordset("tbl_BD2")
Rstbl_OnTime.MoveLast
lngContador = Rstbl_OnTime.RecordCount
Rstbl_OnTime.MoveFirst
SysCmd acSysCmdInitMeter, "Realizando as alterações, aguarde...", lngContador
For lngContaOProgresso = 1 To lngContador
SysCmd acSysCmdUpdateMeter, lngContaOProgresso
varCDLoja = DLookup("[CD]&[Loja]", "tbl_OnTime", "LeadTime='" & LeadTime & "'")
varCDUF = DLookup("[CD]&[UF]", "tbl_OnTime")
varLeadTime = DLookup("[CD]&[UF]", "tbl_OnTime")
varDataHoraInicial = CStr(Rstbl_OnTime(7) + Rstbl_OnTime( + Rstbl_OnTime(13))
varDataHoraFinal = CStr(Rstbl_OnTime(7) + Rstbl_OnTime(9) + Rstbl_OnTime(13))
Rstbl_OnTime.Edit
Rstbl_OnTime(10) = varDataHoraInicial
Rstbl_OnTime(11) = varDataHoraFinal
Rstbl_OnTime(12) = varCDLoja
Rstbl_OnTime(13) = varLeadTime
Rstbl_OnTime.Update
Rstbl_OnTime.MoveNext
Next lngContaOProgresso
Rstbl_OnTime.Close
Db.Close
SysCmd acSysCmdRemoveMeter
MsgBox "OK, Total de: " & lngContador & " registros", vbInformation, "Concluído"
Pessoal,
Tenho um BD, onde preciso que uma das tabelas armazene os dados com referência a valores que a mesma possui. Exemplo, tbl_OnTime (tabela armazenadora) possui os dados de CD e UF que será concatenado (em VBA) para extrair valores na tbl_LeadTime que possui uma coluna chamada Concatenar que já tem esses valores prontos. A idéia é do PROCV do excel.
Andei observando que o Dlookup efetua este tipo de trabalho, porém não consigo acertar. Eu entendo que preciso até enxugar mais, porém como estou aprendendo, me perco na lógica da coisa.
Sub ComandoLoop()
Dim Db As DAO.Database
Dim Rstbl_OnTime As DAO.Recordset
Dim Rstbl_LeadTime As DAO.Recordset
Dim Rstbl_BD2 As DAO.Recordset
Dim varCDLoja As Variant
Dim varCDUF As Variant
Dim varLeadTime As Variant
Dim lngContador As Long
Dim lngContaOProgresso As Long
Dim varDataHoraInicial As Variant
Dim varDataHoraFinal As Variant
Set Db = OpenDatabase(CurrentProject.Path & "\On Time_be.accdb")
Set Rstbl_OnTime = Db.OpenRecordset("tbl_OnTime")
Set Rstbl_LeadTime = Db.OpenRecordset("tbl_LeadTime")
Set Rstbl_BD2 = Db.OpenRecordset("tbl_BD2")
Rstbl_OnTime.MoveLast
lngContador = Rstbl_OnTime.RecordCount
Rstbl_OnTime.MoveFirst
SysCmd acSysCmdInitMeter, "Realizando as alterações, aguarde...", lngContador
For lngContaOProgresso = 1 To lngContador
SysCmd acSysCmdUpdateMeter, lngContaOProgresso
varCDLoja = DLookup("[CD]&[Loja]", "tbl_OnTime", "LeadTime='" & LeadTime & "'")
varCDUF = DLookup("[CD]&[UF]", "tbl_OnTime")
varLeadTime = DLookup("[CD]&[UF]", "tbl_OnTime")
varDataHoraInicial = CStr(Rstbl_OnTime(7) + Rstbl_OnTime( + Rstbl_OnTime(13))
varDataHoraFinal = CStr(Rstbl_OnTime(7) + Rstbl_OnTime(9) + Rstbl_OnTime(13))
Rstbl_OnTime.Edit
Rstbl_OnTime(10) = varDataHoraInicial
Rstbl_OnTime(11) = varDataHoraFinal
Rstbl_OnTime(12) = varCDLoja
Rstbl_OnTime(13) = varLeadTime
Rstbl_OnTime.Update
Rstbl_OnTime.MoveNext
Next lngContaOProgresso
Rstbl_OnTime.Close
Db.Close
SysCmd acSysCmdRemoveMeter
MsgBox "OK, Total de: " & lngContador & " registros", vbInformation, "Concluído"