Problème communication Excel-Access
Bon voilà, je suis un quasi débutant dans la programmation VBA et dans l'utilisation d'access. Voilà mon problème:
J'ai une base de données de vis et de couple de serrage correspondant. Afin d'effectuer des calculs (déformation, contraintes,...) je génère une requete sous access afin de récuperer le couple de serrage pour la vis correspondante que j'importe ss excel come suit:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
Function Calcul_Cs(Optional ByVal Diametre_vis As Double, _
Optional ByVal Classe As String, _
Optional ByVal Coef_Frottement As Double) As Integer
' Double 1 : Diametre de la vis
' String : Classe de la vis
' Double 2: Coefficient de frottement du montage
Dim rec As New ADODB.Recordset
Dim strSQL As String
'Redaction du SQL
strSQL = "SELECT Serrage.Cs" & _
"FROM Vis INNER JOIN (Frottement INNER JOIN (Classe INNER JOIN Serrage ON Classe.Classe = Serrage.CorresClasse) ON Frottement.[Coefficient de frottement] = Serrage.CorresFrot) ON Vis.[Diametre (mm)] = Serrage.CorresDia WHERE 1=1"
'Insertion de la variables de recherche "Diametre"
If Diametre_vis > 0 Then
strSQL = strSQL & " And ([Vis]![Diametre (mm)] = " & Diametre_vis & ")"
End If
' Insertion de la variables de recherche "Classe"
If Len(Classe) > 0 Then
strSQL = strSQL & " And ([Classe]![Classe] ='" & Classe & "')"
'End If
'Insertion de la variables de recherche "Coefficient de frottement"
If Coef_Frottement > 0 Then
strSQL = strSQL & " And ([Frottement]![Coefficient de frottement] = " & Coef_Frottement & ")"
End If
Dim rst As New ADODB.Recordset
rst.Open strSQL, cnx
rst.MoveFirst
Calcul_Cs = CDbl(rst("Cs"))
rst.Close
Set rst = Nothing
End Function |
Sous excel je rentre: =calcul_cs(B25;B26;B27) avec B25=12 (diametre)
B26=5-5 (classe donc texte)
B27=0,1
Et là mon problème est la réponse d'Excel: #VALEURS !!!!
D'où peut venir mon erreur???