ACCESS97, un module marche à moitié?

Résolu/Fermé
AGR26 Messages postés 16 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 16 octobre 2008 - 10 oct. 2008 à 15:59
AGR26 Messages postés 16 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 16 octobre 2008 - 16 oct. 2008 à 08:21
Bonjour,
Alors voilà, je travaille sur une base de données sur ACCESS 97 sur l'ensemble des ouvrages en terre sensibles des voies ferrées. Dans ma requête union, j'ai inséré une dizaine de table et un module et le problème est que lorsque j'ai exécuté la requête, la colonne où j'appelle le module montre #Erreur seulement sur les dernières données que j'ai rentrée (environ 110).
Ma Requête marche parfaitement. Je suppose qu'il s'agit du module...

Mais voilà, ce n'est pas moi qui ai créé le module et je n'ai pas une superbe connaissance en VBA... Après m'être informé, j'ai cherché l'erreur dans le module mais je ne l'ai pas trouvé...

voici le code:
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 réponse

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:21
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