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

Résolu
AGR26 Messages postés 16 Statut Membre -  
AGR26 Messages postés 16 Statut Membre -
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
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. AGR26 Messages postés 16 Statut Membre 1
     
    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
  2. RailBird
     
    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
  3. RailBird
     
    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
  4. AGR26 Messages postés 16 Statut Membre 1
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. AGR26 Messages postés 16 Statut Membre 1
     
    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