OVH Cloud OVH Cloud

Périodes

5 réponses
Avatar
Patrice
Bonjour,

J'ai une table T_Periode :

DateDebut l DateFin l Periode l AnneeConsolidation
12/12/2004 03/04/2005 A 2005
04/04/2005 02/07/2005 B 2005
03/07/2005 28/08/2005 C 2005
29/08/2005 10/12/2005 D 2005


J'aimerais générer avec une requête et/ou du VBA une table avec les 365
jours et leurs périodes respectives comme par exemple :

LaDate l Periode l AnneeConsolidation
12/12/2004 A 2005
13/12/2004 A 2005
14/12/2004 A 2005
etc....
04/04/2005 B 2005
05/04/2005 B 2005
06/04/2005 B 2005
etc....
etc....
etc....

Quelqu'un aurait-il une idée comment m'y prendre ?
(Je suis en access 97 :o((((

Merci

Patrice

5 réponses

Avatar
Eric
Bonjour,

En VBA et DAO, quelque chose comme:

Sub GenerationTableAPartirDUneAutre()
'Charger la référence Microsoft DAO 3.x Object Library
'Pas nécessaire pour Access97 car référence par défaut
Dim strSQL As String
Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset
Dim i As Long
' sql de création de la table JoursPeriodes
strSQL = "Create Table JoursPeriodes(LeJour Date Primary Key,"
strSQL = strSQL & "LaPeriode Text(1), LAnnee Integer);"
CurrentDb.Execute strSQL ' création de JoursPeriodes
'On parcourt les enregistrements de la 1ere table et
'les utilise pour renseigner les champs de la 2ème.
Set rs1 = CurrentDb.OpenRecordset("T_Periode")
Set rs2 = CurrentDb.OpenRecordset("JoursPeriodes")
Do While Not rs1.EOF 'lecture des enreg de T_Periode
For i = rs1(0) To rs1(1)
rs2.AddNew ' Ajout dans la table JoursPeriodes
rs2(0) = i ' des informations
rs2(1) = rs1(2) ' - l'indice des champs débute à 0
rs2(2) = rs1(3)
rs2.Update
Next i
rs1.MoveNext
Loop
Set rs1 = Nothing
Set rs2 = Nothing
End Sub

PS: tu n'auras pas 365 jours car la dernière période s'arrête au 10/12
et non au 11/12.

Bonjour,

J'ai une table T_Periode :

DateDebut l DateFin l Periode l AnneeConsolidation
12/12/2004 03/04/2005 A 2005
04/04/2005 02/07/2005 B 2005
03/07/2005 28/08/2005 C 2005
29/08/2005 10/12/2005 D 2005


J'aimerais générer avec une requête et/ou du VBA une table avec les 365
jours et leurs périodes respectives comme par exemple :

LaDate l Periode l AnneeConsolidation
12/12/2004 A 2005
13/12/2004 A 2005
14/12/2004 A 2005
etc....
04/04/2005 B 2005
05/04/2005 B 2005
06/04/2005 B 2005
etc....
etc....
etc....

Quelqu'un aurait-il une idée comment m'y prendre ?
(Je suis en access 97 :o((((

Merci

Patrice




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Patrice
Merci Eric,

G une erreur d'execution '3290'
Erreur de syntaxe dans l'instruction CREATE TABLE

sur CurrentDb.Execute strSQL ' création de JoursPeriodes

!!!!!

Patrice


"Eric" a écrit dans le message de
news:
Bonjour,

En VBA et DAO, quelque chose comme:

Sub GenerationTableAPartirDUneAutre()
'Charger la référence Microsoft DAO 3.x Object Library
'Pas nécessaire pour Access97 car référence par défaut
Dim strSQL As String
Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset
Dim i As Long
' sql de création de la table JoursPeriodes
strSQL = "Create Table JoursPeriodes(LeJour Date Primary Key,"
strSQL = strSQL & "LaPeriode Text(1), LAnnee Integer);"
CurrentDb.Execute strSQL ' création de JoursPeriodes
'On parcourt les enregistrements de la 1ere table et
'les utilise pour renseigner les champs de la 2ème.
Set rs1 = CurrentDb.OpenRecordset("T_Periode")
Set rs2 = CurrentDb.OpenRecordset("JoursPeriodes")
Do While Not rs1.EOF 'lecture des enreg de T_Periode
For i = rs1(0) To rs1(1)
rs2.AddNew ' Ajout dans la table JoursPeriodes
rs2(0) = i ' des informations
rs2(1) = rs1(2) ' - l'indice des champs débute à 0
rs2(2) = rs1(3)
rs2.Update
Next i
rs1.MoveNext
Loop
Set rs1 = Nothing
Set rs2 = Nothing
End Sub

PS: tu n'auras pas 365 jours car la dernière période s'arrête au 10/12
et non au 11/12.

Bonjour,

J'ai une table T_Periode :

DateDebut l DateFin l Periode l AnneeConsolidation
12/12/2004 03/04/2005 A 2005
04/04/2005 02/07/2005 B 2005
03/07/2005 28/08/2005 C 2005
29/08/2005 10/12/2005 D 2005


J'aimerais générer avec une requête et/ou du VBA une table avec les 365
jours et leurs périodes respectives comme par exemple :

LaDate l Periode l AnneeConsolidation
12/12/2004 A 2005
13/12/2004 A 2005
14/12/2004 A 2005
etc....
04/04/2005 B 2005
05/04/2005 B 2005
06/04/2005 B 2005
etc....
etc....
etc....

Quelqu'un aurait-il une idée comment m'y prendre ?
(Je suis en access 97 :o((((

Merci

Patrice




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
Bizarre !!!
essaies avec strSQL = "Create TableJoursPeriodes(LeJour Date, LaPeriode
Text, LAnnee Integer);"


Merci Eric,

G une erreur d'execution '3290'
Erreur de syntaxe dans l'instruction CREATE TABLE

sur CurrentDb.Execute strSQL ' création de JoursPeriodes

!!!!!

Patrice


"Eric" a écrit dans le message de
news:

Bonjour,

En VBA et DAO, quelque chose comme:

Sub GenerationTableAPartirDUneAutre()
'Charger la référence Microsoft DAO 3.x Object Library
'Pas nécessaire pour Access97 car référence par défaut
Dim strSQL As String
Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset
Dim i As Long
' sql de création de la table JoursPeriodes
strSQL = "Create Table JoursPeriodes(LeJour Date Primary Key,"
strSQL = strSQL & "LaPeriode Text(1), LAnnee Integer);"
CurrentDb.Execute strSQL ' création de JoursPeriodes
'On parcourt les enregistrements de la 1ere table et
'les utilise pour renseigner les champs de la 2ème.
Set rs1 = CurrentDb.OpenRecordset("T_Periode")
Set rs2 = CurrentDb.OpenRecordset("JoursPeriodes")
Do While Not rs1.EOF 'lecture des enreg de T_Periode
For i = rs1(0) To rs1(1)
rs2.AddNew ' Ajout dans la table JoursPeriodes
rs2(0) = i ' des informations
rs2(1) = rs1(2) ' - l'indice des champs débute à 0
rs2(2) = rs1(3)
rs2.Update
Next i
rs1.MoveNext
Loop
Set rs1 = Nothing
Set rs2 = Nothing
End Sub

PS: tu n'auras pas 365 jours car la dernière période s'arrête au 10/12
et non au 11/12.


Bonjour,

J'ai une table T_Periode :

DateDebut l DateFin l Periode l AnneeConsolidation
12/12/2004 03/04/2005 A 2005
04/04/2005 02/07/2005 B 2005
03/07/2005 28/08/2005 C 2005
29/08/2005 10/12/2005 D 2005


J'aimerais générer avec une requête et/ou du VBA une table avec les 365
jours et leurs périodes respectives comme par exemple :

LaDate l Periode l AnneeConsolidation
12/12/2004 A 2005
13/12/2004 A 2005
14/12/2004 A 2005
etc....
04/04/2005 B 2005
05/04/2005 B 2005
06/04/2005 B 2005
etc....
etc....
etc....

Quelqu'un aurait-il une idée comment m'y prendre ?
(Je suis en access 97 :o((((

Merci

Patrice




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
.../...

j'ai oublié l'espace après 'Table' dans la réponse précédente, donc
essaies avec:
strSQL = "Create Table JoursPeriodes(LeJour Date, LaPeriode Text, LAnnee
Integer);"
ou encore
strSQL = "Create Table JoursPeriodes(LeJour Date, LaPeriode Char, LAnnee
Integer);"

pour voir où était l'erreur car ici ça marche la proc que je t'ai donnée.

Si ca marche, il faudra réintrodyuire la longueur du champ Texte, ...

Bizarre !!!
essaies avec strSQL = "Create TableJoursPeriodes(LeJour Date, LaPeriode
Text, LAnnee Integer);"





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Patrice
impeccable
(avec un espace entre Table et Jours)
strSQL = "Create Table JoursPeriodes(LeJour Date, LaPeriode Text, LAnnee
Integer);"

Merci

Patrice

"Eric" a écrit dans le message de
news:
Bizarre !!!
essaies avec strSQL = "Create TableJoursPeriodes(LeJour Date, LaPeriode
Text, LAnnee Integer);"


Merci Eric,

G une erreur d'execution '3290'
Erreur de syntaxe dans l'instruction CREATE TABLE

sur CurrentDb.Execute strSQL ' création de JoursPeriodes

!!!!!

Patrice


"Eric" a écrit dans le message de
news:

Bonjour,

En VBA et DAO, quelque chose comme:

Sub GenerationTableAPartirDUneAutre()
'Charger la référence Microsoft DAO 3.x Object Library
'Pas nécessaire pour Access97 car référence par défaut
Dim strSQL As String
Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset
Dim i As Long
' sql de création de la table JoursPeriodes
strSQL = "Create Table JoursPeriodes(LeJour Date Primary Key,"
strSQL = strSQL & "LaPeriode Text(1), LAnnee Integer);"
CurrentDb.Execute strSQL ' création de JoursPeriodes
'On parcourt les enregistrements de la 1ere table et
'les utilise pour renseigner les champs de la 2ème.
Set rs1 = CurrentDb.OpenRecordset("T_Periode")
Set rs2 = CurrentDb.OpenRecordset("JoursPeriodes")
Do While Not rs1.EOF 'lecture des enreg de T_Periode
For i = rs1(0) To rs1(1)
rs2.AddNew ' Ajout dans la table JoursPeriodes
rs2(0) = i ' des informations
rs2(1) = rs1(2) ' - l'indice des champs débute à 0
rs2(2) = rs1(3)
rs2.Update
Next i
rs1.MoveNext
Loop
Set rs1 = Nothing
Set rs2 = Nothing
End Sub

PS: tu n'auras pas 365 jours car la dernière période s'arrête au 10/12
et non au 11/12.


Bonjour,

J'ai une table T_Periode :

DateDebut l DateFin l Periode l AnneeConsolidation
12/12/2004 03/04/2005 A 2005
04/04/2005 02/07/2005 B 2005
03/07/2005 28/08/2005 C 2005
29/08/2005 10/12/2005 D 2005


J'aimerais générer avec une requête et/ou du VBA une table avec les 365
jours et leurs périodes respectives comme par exemple :

LaDate l Periode l AnneeConsolidation
12/12/2004 A 2005
13/12/2004 A 2005
14/12/2004 A 2005
etc....
04/04/2005 B 2005
05/04/2005 B 2005
06/04/2005 B 2005
etc....
etc....
etc....

Quelqu'un aurait-il une idée comment m'y prendre ?
(Je suis en access 97 :o((((

Merci

Patrice




--
A+
Eric
http://www.mpfa.info/
Archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr








--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr