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
|
Function getDB(valeur_cherchée As String, vRef As String, vType As String)
If Not FeuilleExiste("Articles") Then
Dim vRange As String, vWorksheet As String, vWorkbook As String, vPath As String, vSource As String
vRange = LitDansFichierIni("BDD", "Range", Application.ActiveWorkbook.Path & "\config.ini")
vWorkbook = LitDansFichierIni("BDD", "Workbook", Application.ActiveWorkbook.Path & "\config.ini")
vWorksheet = LitDansFichierIni("BDD", "Worksheet", Application.ActiveWorkbook.Path & "\config.ini")
vPath = LitDansFichierIni("BDD", "Path", Application.ActiveWorkbook.Path & "\config.ini")
vSource = vPath & vWorkbook
getDB = recupDB(vSource, vWorksheet, valeur_cherchée, vType, vRef)
Else:
getDB = recupSheet(valeur_cherchée, vRef, vType)
End If
End Function
'récupère la donnée sous Access
Function recupDB(vSource As String, vTable As String, vValeur As String, vType As String, vRef As String)
Dim vBDD As New ADODB.Connection
Dim vDonnées As New ADODB.Recordset
Dim vSQL As String
vBDD.Open "provider=microsoft.jet.oledb.4.0;" & "persist security info=false;" & "data source=" & vSource
vSQL = "select * from " & vTable & " where " & vRef & "='" & vValeur & "'"
vDonnées.Open vSQL, vBDD, adOpenDynamic, adLockReadOnly
recupDB = vDonnées(vType)
vBDD.Close
End Function
'récupère la donnée dans la feuille du classeur
Function recupSheet(vValeur As String, vRef As String, vType As String)
Dim vFind
Dim ref As Integer, typ As Integer
With Worksheets("Articles")
Set vFind = .Range("1:1").Find(What:=vRef, LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=True)
ref = vFind.Column
Set vFind = .Range("1:1").Find(What:=vType, LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=True)
typ = vFind.Column
Set vFind = .Columns(ref).Find(What:=vValeur, LookIn:=xlValues, MatchCase:=True)
If Not vFind Is Nothing Then
recupSheet = .Cells(vFind.Row, typ)
End If
End With
End Function |
Partager