Inserindo fins de semana na tabela somente com o MS Access nos dias úteis
Estou precisando inserir os fins de semana em uma tabela que tenha apenas dias da semana e depois atribuir o último valor conhecido aos valores do fim de semana. Eu sei que vou precisar de uma consulta de inserção, embora ainda seja bastante nova no que diz respeito ao VBA e SQL.
Código até agora:
Private Sub btnWeekends_Click()
DoCmd.SetWarnings False
Dim db as DataBase
Dim rs as RecordSet
Dim fieldCount as Integer
Dim i as Integer
set db = CurrentDb
set rs = db.OpenRecordSet("Archive", dbOpenDynaset)
fieldCount = db.TableDefs("Archive").Fields.Count
Dim DateVal As Date
DateVal = rs![ValDate]
Do While Not rs.EOF
i = 0
Do While IsNull(DLookup("ValDate", "Archive", "ValDate=#" & DateAdd("d", 1, ValDate) & "#")) = True
rs.AddNew
' removed other fields and edited line below
rs![ValDate] = DateVal
rs.Update
i = i + 1
Loop
rs.MoveNext
Loop
'//-----Clean Up
set db = Nothing
set rs = Nothing
DoCmd.SetWarnings True
End Sub
Dados que tenho (a partir de sexta-feira):
+------------------------------------------------------------------------+
|ID |Customer Name| Nbr | City |Value of Day|ExtendedNbr| ValDate |
+------------------------------------------------------------------------+
|001| Cust1 | 91 | New York | 529 | 91928592 | 1/5/2018 |
|002| Cust2 | 87 | Las Vegas| 654 | 85642187 | 1/5/2018 |
|003| Cust3 | 45 | Denver | 258 | 78943245 | 1/5/2018 |
|004| Cust1 | 91 | New York | 611 | 91928592 | 1/8/2018 |
|005| Cust2 | 87 | Las Vegas| 753 | 85642187 | 1/8/2018 |
|006| Cust3 | 45 | Denver | 357 | 78943245 | 1/8/2018 |
+------------------------------------------------------------------------+
'ValDate then skips past 1/6/2018 and 1/7/2018 to 1/8/2018
Dados que estou precisando:
+------------------------------------------------------------------------+
|ID |Customer Name| Nbr | City |Value of Day|ExtendedNbr| ValDate |
+------------------------------------------------------------------------+
|001| Cust1 | 91 | New York | 529 | 91928592 | 1/5/2018 |
|002| Cust2 | 87 | Las Vegas| 654 | 85642187 | 1/5/2018 |
|003| Cust3 | 45 | Denver | 258 | 78943245 | 1/5/2018 |
|004| Cust1 | 91 | New York | 529 | 91928592 | 1/6/2018 |
|005| Cust2 | 87 | Las Vegas| 654 | 85642187 | 1/6/2018 |
|006| Cust3 | 45 | Denver | 258 | 78943245 | 1/6/2018 |
|007| Cust1 | 91 | New York | 529 | 91928592 | 1/7/2018 |
|008| Cust2 | 87 | Las Vegas| 654 | 85642187 | 1/7/2018 |
|009| Cust3 | 45 | Denver | 258 | 78943245 | 1/7/2018 |
|010| Cust1 | 91 | New York | 611 | 91928592 | 1/8/2018 |
|011| Cust2 | 87 | Las Vegas| 753 | 85642187 | 1/8/2018 |
|012| Cust3 | 45 | Denver | 357 | 78943245 | 1/8/2018 |
+------------------------------------------------------------------------+
'I'm needing it to add the Saturday(1/6/2018) and Sunday(1/7/2018) before continuing on to 1/8/2018
Porque não háValue of Day
para1/6/2018
ou1/7/2018
, Estou precisando pegar os valores do dia anterior e inseri-los nas datas de fim de semana recém-adicionadas (por exemplo, 1/6/2018 e 7/1/2018) com as informações correspondentes também (Customer Name
, Nbr
, City
, ExtendedNbr
)
Agradecemos antecipadamente por qualquer ajuda / conselho que você puder fornecer. Ainda sou novo e qualquer chance de aprender mais é muito apreciada!
EDIT1:
Linhars.Update
erros com "Erro em tempo de execução '3022': as alterações solicitadas na tabela não foram bem-sucedidas porque criariam valores duplicados no índice, chave primária ou relacionamento ..."
EDIT2:
Os resultados são inseridos no final de todos os registros. O loop é infinito por algum motivo. As novas datas não são inseridas corretamente na tabela (são todas as mesmas datas e não estão na ordem correta).