Utiliser les procedures pour tester les fonction

gatagarim - 16 oct. 2012 à 11:59
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 - 16 oct. 2012 à 13:27



Je voulais utilisé les procedures pour chacune des mes fonctions avant d'executer le main().
J'ai essayé mais ça ne fonctionne pas si quelqu'un peu m'ader.
Merci d'avance

Voici le code:
Option Compare Database
Option Explicit
***********************************************************
Function DetectionAnomalieChamp(param_1 As Integer, param_2 As Integer) As Boolean
'Le param_1 est égale à param_2 s'il y a une anomalie dans les champs des tables
If (param_1 = param_2) Then

DetectionAnomalieChamp = False

MsgBox param_1(False)
Else

DetectionAnomalieChamp = True

MsgBox param_2(True)

End If

Exit Function
End Function


Public Function RecuperationValeurTableInteger(T_Compte As String, NumLig As Integer, NumCol As Integer) As Integer
'La recupération des valeurs contenues dans la table T_Compte

Dim Rs As Recordset
Dim NOCPT As Integer


Set Rs = CurrentDb.OpenRecordset("T_Compte", dbOpenTable, dbReadOnly)

While Not Rs.EOF

MsgBox Rs!NOCPT

Rs.MoveNext

Wend

Rs.Close

End Function

***************************************************************
Public Function NumAttributTable(nomTable As String, nomAttribut As String) As Integer
Dim NumAttribuTable As String

If (nomTable = "T_Compte") Then
MsgBox "Affiche la table T_Compte"

If (nomAttribut = "ID_T_Compte") Then
NumAttribuTable = 1
End If
ElseIf (nomAttribut = "NOCPT") Then
NumAttributTable = 2

ElseIf (nomAttribut = "CodeDepositaire_Entrant") Then
NumAttributTable = 3

ElseIf (nomAttribut = "CodeDepositaire_Sortant") Then
NumAttributTable = 4

ElseIf (nomAttribut = "CodeAgence_Entrant") Then
NumAttributTable = 5

ElseIf (nomAttribut = "CodeAgence_Sortant") Then
NumAttributTable = 6

ElseIf (nomAttribut = "Nom") Then
NumAttributTable = 7

ElseIf (nomAttribut = "Lieu dépôt") Then
NumAttributTable = 8

ElseIf (nomAttribut = "Quantité") Then
NumAttributTable = 9


ElseIf (nomTable = "Agence") Then
MsgBox " Affiche la table Agence"
End If
If (nomAttribut = "ID_Agence") Then
NumAttributTable = 1

ElseIf (nomAttribut = "NOCPT") Then
NumAttributTable = 2

ElseIf (nomAttribut = "CodeAgence_Entrant") Then
NumAttributTable = 3
ElseIf (nomAttribut = "CodeAgence_Sortant") Then
NumAttributTable = 4

ElseIf (nomAttribut = "CodeDepositaire_Entrant") Then
NumAttributTable = 5

ElseIf (nomAttribut = "CodeDepositaire_Sortant") Then
NumAttributTable = 6

End If

End Function
**********************************************************
Public Function TailleTable(Agence As String) As Integer
'Le nombre de lignes de la table
Dim NBLg As String

NBLg = "select count(*) from Agence"

End Function
******************************************************************
Sub Main()
'Le numero des lignes erronées dans la table
Dim creationTab() As Integer, z As Integer, i As Integer, j As Integer
Dim T_Compte As String, NOCPT As String, Agence As String

z = 0 'Choisir la 1ére ligne de la colone

For i = 1 To TailleTable(T_Compte)
Next i

Dim NOCPT_Cpt As Integer
Dim NOCPT_Agence As Integer
Dim comparaison_1 As Boolean

For j = 1 To TailleTable(Agence)
Next j

'Recupération du numéro de compte de la 1ére ligne de la table T_Compte
NOCPT_Cpt = RecuperationValeurTableInteger(T_Compte, NumAttributTable(T_Compte, NOCPT), i)

'Recupération du NOCPT sur la 1ére ligne de la table Agence
NOCPT_Cpt = RecuperationValeurTableInteger(Agence, NumAttributTable(T_Compte, NOCPT), j)

comparaison_1 = DetectionAnomalieChamp(NOCPT_Cpt, NOCPT_Agence)

If (comparaison_1 = False) Then
'MsgBox "Anomalie"
'break


ElseIf (comparaison_1 = True) Then
'MsgBox "Pas d'anomalies"
creationTab(z) = i
z = z + 1
End If

Exit Sub
End Sub

2 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 oct. 2012 à 12:49
Bonjour,
"ça ne fonctionne pas" ! Tu veux dire que le compilateur lui-même dénonce une faute !
Comment peux-tu écrire ceci (par exemple et entre autres) :
MsgBox param_1(False)
?????
En vertu de quelle syntaxe, apprise où ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
16 oct. 2012 à 13:27
Bonjour,

+1 avec ucfoutu.

Et d'autre part je constate que tu ne prends pas en compte nos remarques sur ton autre postconcernant l'indentation du code ainsi que la coloration syntaxique, les membres bénévoles de ce site ne vont pas s'amuser à décortiquer toutes ces lignes...

L'expérience, c'est une connerie par jour, mais jamais la même..
0
Rejoignez-nous