Attribute VB_Name = "DataBaseModule"
Option Explicit

Public cn As ADODB.Connection

Public Sub Connexion()
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Bin\Base de donnée\Bases de données.mdb"
End Sub

Public Sub Déconnexion()
    On Error Resume Next
    cn.Close
End Sub

Public Function LoadStockBalance(ByVal sCatégorie As String, ByVal sDésignation As String) As MYSTOCKBALANCE
    Dim rs As New ADODB.Recordset
    
    sCatégorie = Trim(sCatégorie)
    sDésignation = Trim(sDésignation)
    
    ResetStockBalance LoadStockBalance
    
    With LoadStockBalance
        rs.Open "select * from Stock_Balance where Catégorie like '" & sCatégorie & "' and Désignation like '" & sDésignation & "'", cn, 1, 2
        If rs.EOF Then
            Exit Function
        Else
            .sb_Désignation = sDésignation
            .sb_Catégorie = sCatégorie
            .sb_Restant = Val(rs!Restant)
            .sb_DernierVente = Val(rs!DernierVente)
            .sb_DernierAchat = Val(rs!DernierAchat)
            On Error GoTo novalue
            .sb_ValeurAchat = CDec(rs!ValeurAchat)
            On Error GoTo novalue
            .sb_ValeurVente = CDec(rs!ValeurVente)
            On Error GoTo novalue
            .sb_Bénéfice = CDec(rs!Bénéfice)
        End If
    End With
    rs.Close
    Exit Function
    
novalue:
    With LoadStockBalance
        .sb_ValeurAchat = Val(rs!ValeurAchat)
        .sb_ValeurVente = Val(rs!ValeurVente)
        .sb_Bénéfice = Val(rs!Bénéfice)
    End With
    rs.Close
End Function

Public Sub ResetStockBalance(sb_Stock As MYSTOCKBALANCE)
    With sb_Stock
        .sb_Désignation = ""
        .sb_Catégorie = ""
        .sb_Restant = 0
        .sb_ValeurAchat = 0
        .sb_ValeurVente = 0
        .sb_Bénéfice = 0
        .sb_DernierVente = 0
    End With
End Sub
