penny05
Messages postés105Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention18 janvier 2007
-
6 avril 2006 à 11:43
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 2017
-
6 avril 2006 à 14:37
Bonjour tout le monde,
Je suis entrain de creer une table par vba avec les données d'une autre table. Ce que je dois faire c'est pour chaque article de la table 1 faire la somme des élements y figurant entre deux dates donc voila ce que j'ai fait:
'création de la table
CurrentDb.Execute "CREATE TABLE Periodicgeneral(RCN_ integer, ATA integer, Hours_M long, Hours_M6 long, Hours_M12 long);"
'insertion des premieres valeurs (ss probleme)
CurrentDb.Execute "INSERT INTO Periodicgeneral(RCN_, ATA) SELECT DISTINCT RCN,ATA FROM classementideal ;"
'inclure les sommes des heures sur les autres champs
Dim dbBaseCible1 As DAO.Database
Set dbBaseCible1 = CurrentDb
Dim rsJeuCible1 As DAO.Recordset
'ouvre la nouvelle table Periodicgeneral crée
Set rsJeuCible1 = dbBaseCible1.OpenRecordset("Periodicgeneral")
Dim dbBaseCible2 As DAO.Database
Set dbBaseCible2 = CurrentDb
Dim rsJeuCible2 As DAO.Recordset
'ouvre la nouvelle table classementideal d'ou l'on prend les valeurs
Set rsJeuCible2 = dbBaseCible2.OpenRecordset("classementideal")
'faire les calculs et remplir le tableau crée
If IsNull(DSum("[SommedeOperational hours]", "classementideal", "date >= 200509 And date <= 200602 And RCN=" & CStr(Periodicgeneral.RCN_))) Then
CurrentDb.Execute "INSERT INTO Periodic_general (Hours_M) Values ('none define')"
Else
sommeperiod = DSum("[Sommedeoperational hours]", "classementideal", "date >= 200509 And date <= 200602 And RCN=" & [Periodicgeneral.RCN_])
CurrentDb.Execute "INSERT INTO Periodicgeneral (Hours_M) Values ('sommeperiod')"
End If
End Sub
Mais il ne reconnait pas le champ RCN_ de la table Periodicgeneral crée?
Si quelqu'n peut me sortir de la!!
Merci.
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 6 avril 2006 à 14:37
Hé bien, qu'est ce qui l'empèche, il suffit d'ajouter une condition WHERE?..
"SELECT RCN, ATA, Sum([none dfine]) As Hours_M, Sum([sommeperiod]) As Hours_M6 FROM classementideal WHERE date Between 200509 And 200602 GROUP BY RCN, ATA ORDER BY RCN INTO Periodicgeneral;"
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 6 avril 2006 à 12:29
Modifie le nom de ton champ! Je sais qu'Access n'aime pas trop les champs avec des caractères spécifique du genre . ; , / \ _ et autres espace. Il n'aime pas trop non plus les accents d'ailleurs.
A tu essayé de modifier ta syntaxe du genre [Periodicgeneral]![RCN_]
penny05
Messages postés105Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention18 janvier 20072 6 avril 2006 à 12:54
non ca marche pas.
j'ai fait la modif et renommer les champs rien n'y fait.
j'ai toujours l'erreur: "impossible de trouver le champ 'l' auquel il est fait référence dans votre expression"
j'ai bien ouvert les deux tables pour effectuer les opérations comme il faut ou l'erreur peut venir de la
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 6 avril 2006 à 13:55
J'aurais esayé cette autre chaîne SQL qui effectue toutes les opérations en une seule commande :
"SELECT RCN, ATA, Sum([none dfine]) As Hours_M, Sum([sommeperiod]) As Hours_M6 FROM classementideal GROUP BY RCN, ATA ORDER BY RCN INTO Periodicgeneral;"
A tester...
penny05
Messages postés105Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention18 janvier 20072 6 avril 2006 à 14:32
Désolé de te dire que ca ne marche pas car ca fait la somme de tous les elements et je voulais y inclure la restriction sur les dates entre 200602 et 200509.