|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 1999
Messaggi: 458
|
ciclo for next in acces
Ho un problema:
Ho fatto un ciclo e va tutto bene ma vorrei incrementare una campo data di 7 giorni progressivi per tutte le volte del ciclo. Esempio: Una manutenzione settimanale per un anno sono 52 volte e la data deve incrementarsi di 7 giorni per 52 volte 1- 8-15-21-28-35 etc. Ho provato ad aggiunger il numero 7 al campo ma mi incrementa il primo record. Se invece metto la variabile del ciclo si incrementea di un giorno. Grazie
__________________
A7v266-e XP2200 ddr 512 Kingston Ibm 80,Matrox g550,sblive 5.1, dc10+ Case Super micro p4 ali.300 Winxp pro cd-rom + master |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Mar 2003
Messaggi: 120
|
mi fai dare un'occhiata al codice?
così ti posso aiutare. |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Sep 2001
Città: Lecco
Messaggi: 404
|
Re: ciclo for next in acces
Quote:
memorizzi il valore del campo data in una variabile di appoggio x esempio; in questo es. la chiamo d If Not IsNull(Me.Anni) Then d = DateAdd("yyyy", Me!Anni, d) If Not IsNull(Me.Mesi) Then d = DateAdd("m", Me!Mesi, d) If Not IsNull(Me.Giorni) Then d = DateAdd("d", Me!Giorni, d) io avevo tre caselle ed in particolare una che contiene il numero di anni da aggiungere, i mesi, i giorni... a te penso che basta fare: d = DateAdd("d", 7, d) fammi sapere valse
__________________
Dell XPS 17 Sandy Bridge (L702x) • Kingston 128GB SSDNow V100 • Zalman ZM-NC3000U Cooler • tastiera retroilluminata |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 1999
Messaggi: 458
|
dai un'occhiata per piacere
Io dovrei incrementare il campo dataricerca in modo che mi faccia uno step di 7 giorni.
come posso fare ? Public Sub AddRecords(ID As Long) 'id è la chiave primaria di tabella1 'questa sub richiede DAO Dim rs1 As DAO.Recordset Dim rs2 As DAO.Recordset Dim i As Integer 'crea recordset su TABELLA1 Set rs1 = CurrentDb.OpenRecordset("tabella1", dbOpenDynaset) 'cerca il record in TABELLA1 rs1.FindFirst "ID = " & CStr(ID) 'se trova il record... If Not rs1.NoMatch Then 'crea recordset su tabella2 Set rs2 = CurrentDb.OpenRecordset("TABELLA2", dbOpenDynaset) 'ciclo sul totale di giorni 'per ogni giorno aggiunge un record alla tabella2 For i = 1 To rs1("scadenza") rs2.AddNew 'elenco di campi da copiare o da impostare rs2("ID") = rs1("ID") rs2("macchina") = rs1("macchina") rs2("tipo") = rs1("tipo") rs2("reparto") = rs1("reparto") rs2("installazione") = rs1("installazione") rs2("scadenza") = rs1("scadenza") rs2("controllo") = rs1("controllo") rs2("Dataricerca") = rs1("Dataricerca") 'scrive record rs2.Update Next MsgBox "Records creati!" '... altrimenti... Else MsgBox "Record origine non trovato" End If 'chiude gli oggetti rs1.Close rs2.Close Set rs1 = Nothing Set rs2 = Nothing End Sub
__________________
A7v266-e XP2200 ddr 512 Kingston Ibm 80,Matrox g550,sblive 5.1, dc10+ Case Super micro p4 ali.300 Winxp pro cd-rom + master |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 1999
Messaggi: 458
|
Ho risolto
Per incrementare di 7 giorni ho fatto cosi:
rs1.Edit rs1("dataricerca") = rs1("dataricerca") + Int(365 / rs1("scadenza")) rs1.Update essendo il record corrente si aggiorna prima del ciclo. In questo modo mi calcola il giorni di incremento perchè nel caso di 12 mesi l'incremento deve essee di 30 giorni ovvero 365/12. alla fine del ciclo devo mettere a posto la data inziale che risulta incrementata di un'anno e quindi rifaccio l'edit sottraendo 365 giorni. forse c'era un sistema migliore ma vedo che funziona. Nel caso accetto correzioni e suggerimenti. Grazie
__________________
A7v266-e XP2200 ddr 512 Kingston Ibm 80,Matrox g550,sblive 5.1, dc10+ Case Super micro p4 ali.300 Winxp pro cd-rom + master |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:37.