[ACCESS 97] problème sur nouvelles données

Résolu/Fermé
AGR26 Messages postés 16 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 16 octobre 2008 - 18 sept. 2008 à 09:37
AGR26 Messages postés 16 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 16 octobre 2008 - 16 oct. 2008 à 08:25
Bonjour,

ça fait maintenant plus d'un an que je travaille sur une base de données. Je l'avais mise en place et elle marchait très bien en janvier dernier.

Maintenant on me demande de la mettre à jour. A ce moment là pas de soucis, je rentre les nouvelles données et je modifie ma base (puisqu'on m'a demandé de mettre certains champs sur une autre table). Les tables principales étant modifié, je me suis attaquée à ma requête union qui prend environ 3 pages... et là... gros problème... certains modules ne marchent pas sur la première partie de ma table mais seulement pour mes nouvelles données (au nombre de 113) alors que les 11 000 autres ne posent pas de soucis... du coup, quand je regroupe mes deux requêtes pour faire la requête union j'ai le message d'erreur "dépassement capacité"...

Je n'y comprend rien... pourtant, les modules n'ont pas changé et la requête non plus!!!

Est ce que quelqu'un aurait une idée?

Je vous remercie d'avance

Anne-Gaëlle

5 réponses

AGR26 Messages postés 16 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 16 octobre 2008 1
7 oct. 2008 à 11:41
Bonjour,
J'ai essayé de séparer ma requête en plusieures tables mais... le module ne marche quand même pas pour mes nouvelles données...

Il s'agit donc d'un problème sur le module plutot que sur la requête Union... j'ai regardé attentivement mon module mais je n'ai pas eu l'éclair de génie sur ce qui n'allait pas...

Mon module est le suivant:

Function Cherche_Incidents_Pondere(Id As Integer) As String
'Cette fonction va retourner le nombre d'incidents graves ainsi que le nombre d'incidents peu graves du demi ouvrage
Dim dbs As Database
Dim rst As Recordset
Dim strSQL As String
Dim A As Integer
Dim B As Integer
Dim Retour$
'A compteur des graves et Bcompteur des peu graves
strSQL = "SELECT [INCIDENTS].[N°gravité] from [INCIDENTS] WHERE ([INCIDENTS].[ID 1/2OTDMS]=" + Trim$(Str$(Id)) + ");"
On Error GoTo Pbdb
Set dbs = CurrentDb
On Error GoTo 0
On Error GoTo PbSQL
Set rst = dbs.OpenRecordset(strSQL)
On Error GoTo 0
A = 0
B = 0
Do While Not rst.EOF
If (rst![N°gravité] = 1) Or (rst![N°gravité] = 2) Or (rst![N°gravité] = 3) Then
A = A + 1
Else
B = B + 1
End If

rst.MoveNext
Loop
rst.Close
fin:
Cherche_Incidents_Pondere = Trim$(Str$(A)) + "!" + Trim$(Str$(B))
Exit Function
Pbdb:
A = 0
Resume fin
PbSQL:
A = 0
Resume fin
End Function


Voyez vous un problème?

Je vous remercie d'avance

Anne-Gaëlle
1
Le paramètre qui a changé avant l'injection de tes nouvelles données, doit y être pour quelque chose.
Pourrais-tu nous donner ta requête SQL?
Qu'est que tu cherches à faire via ta requête Union?
0
Essayes de voir avec des INNER JOIN et créer une nouvelle table et ensuite éxécuter une reqûete moins lourde pour faire ce dont tu as besoin.
0
AGR26 Messages postés 16 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 16 octobre 2008 1
18 sept. 2008 à 10:12
Et bien, le problème est que les paramètres ont juste été transférés d'une table à une autre. Ces paramètres sont: "Années travaux" (de 1 à 5) et "type de classement".
Le problème c'est que le module qui ne marche pas concerne ma table incident (qui est relié à ma table 1/2 ouvrage par la clé primaire de celle ci - table où les nouveaux champs ont été inséré).
Ce que je ne comprend pas c'est pourquoi dans ma requête les anciennes données ne posent pas de problème et s'affichent au niveau du champ ou le module est utilisé alors que les nouvelles données non.

Ma requête Union me sert à lier au moins 10 tables (si ce n'est plus!) pour me permettre de faire un recensement exhaustif du patrimoine des ouvrages en terre ferroviaires.

Je n'ai pas réussi à joindre ma requête...
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AGR26 Messages postés 16 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 16 octobre 2008 1
16 oct. 2008 à 08:25
Bon, après quelques semaines... J'ai enfin trouvé le problème. Je me suis rendue compte que les lignes qui ne marchaient pas avaient un ID 1/2OTDMS supérieurn à 34 000. Il faut juste enlever sur la 1ere ligne du module "as integer" au niveau de l'id. il s'agit juste d'une variante et là, tout est pris en compte!
-1