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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| Dim cn As ADODB.Connection
Dim fichier As String
Dim rst As ADODB.Recordset
Dim extension As String
Dim texte_sql As String
Dim i As Integer
Dim srange As String
Dim base As String
'définit le classeur fermé servant de base de données
If Len(codeARech) = 10 Then 'ou va ouvrir la base SASTA
base = "SASTA"
Else
If Len(codeARech) = 6 Then
base = "CASAC"
Else
'MsgBox "Code erroné" & codeARech, vbCritical, "OUPS"
XRECHERCHEV = "E1"
Exit Function
End If
End If
fichier = rechbase(annee, base) 'récupère le nom du classeur à ouvrir
Set cn = New ADODB.Connection
'connection
With cn
.Provider = "Microsoft.jet.oledb.4.0"
.ConnectionString = "provider=microsoft.ACE.OLEDB.12.0;data source=" & fichier & ";Extended Properties=""excel 12.0;HDR=YES;"""
.Open
End With
'ouverture recordset
Set rst = New ADODB.Recordset
texte_sql = "SELECT * FROM [" & ua & "$]" & _
" WHERE code = '" & codeARech & "'"
Set rst = cn.Execute(texte_sql)
'Sheets("feuil1").Activate
'tester si la requête n'est pas vide
If rst.EOF = True Then
XRECHERCHEV = "E2"
GoTo fin
Else
If IsNull(rst.Fields(moisSousRevue)) Then
XRECHERCHEV = ""
Else
'on retourne la valeur du mois sous revue convertie en numérique (pour cadrage à droite et pallier les données textes renvoyées par sasta
XRECHERCHEV = CDbl(rst.Fields(moisSousRevue))
End If
End If
fin:
'fermeture connection et recordset
rst.Close
cn.Close
Set cn = Nothing
Set rst = Nothing
End Function |
Partager