Attribute VB_Name = "Modulephoto"
Option Explicit
Dim pilot As New ADODB.Connection
Dim Photo As New ADODB.Recordset
Dim Rqsql As New ADODB.Command
Dim StrSQL As String
Const DBase = "pilot.mdb" 'Nom de la base de donnée
Const DBaseTable = "Photo" ' Nom de la table dans la base de donnée
Public PathDataBase As String

Public Sub Etabl_Connection()
   StrSQL = ""
   On Error Resume Next
   PathDataBase = App.Path: If Right(PathDataBase, 1) <> "\" Then PathDataBase = PathDataBase & "\"
   pilot.Provider = "Microsoft.Jet.OLEDB.4.0"
   pilot.ConnectionString = PathDataBase & DBase
   pilot.Open
   Rqsql.ActiveConnection = pilot
End Sub

Public Sub Ferm_Connection()
  pilot.Close
End Sub

 Sub InitialiseRecordset()
   On Error Resume Next
    Set Photo = New ADODB.Recordset
   
   Rqsql.CommandText = StrSQL
   
   ' Initialisation du Curseur Client
   Photo.CursorLocation = adUseClient

   ' Utilisation d'un Curseur Client Dynamique
   Photo.CursorType = adOpenDynamic

   ' Vérouillage de l'Enregistrement dès son accès
   Photo.LockType = adLockPessimistic

   ' Transmission de la commande à la méthode Open
   Photo.Open Rqsql
End Sub

Public Sub ajouter(ByVal nom As String, ByVal nomimage As String, ByVal imag As String)
   Call Etabl_Connection
   StrSQL = "SELECT * from Photo"
   Call InitialiseRecordset
   With Photo
        .AddNew
        .Fields("nom_pilote") = nom
        .Fields("Nom_Image") = nomimage
       If Trim(nomimage) <> "" Then
          FileToBlob imag, Photo("Image")
       End If
       .Update
   End With
    
    If Not Photo Is Nothing Then
       Photo.Close
   End If
    Set Photo = Nothing
    Call Ferm_Connection

End Sub

Public Sub afficher(ByVal nom As String, ByRef nomimage As String, ByRef imag As String)
   Call Etabl_Connection
   StrSQL = "Select * From Photo Where Photo.nom_pilote = '" & nom & "'"
   Call InitialiseRecordset

    ' permet de savoir si le nom qu'on cherche , existe dans la table
    'l'expression not res EoF = false montre qu'il n'exite pas le nom recherché dans la table
   If Not Photo.EOF = False Then
   Exit Sub
   Call Ferm_Connection
   Else
       'If (StrComp(vFieldVal(Photo.Fields("nom_pilote")), nom, vbTextCompare) = 0) Then
           With Photo
               nom = .Fields("nom_pilote")
               nomimage = .Fields("Nom_Image")
                
               'Traitement de l'image joint
                     'Extraction du fichier image de la base de donnée
                  Module_Sauve_Image.BlobToFile Photo("Image"), PathDataBase & vFieldVal(.Fields("Nom_Image"))
                  imag = PathDataBase & vFieldVal(.Fields("Nom_Image"))
           End With
   End If
      Call Ferm_Connection
       End Sub
Public Sub sup(ByVal nom As String, ByVal nomimage As String, ByVal imag As String)
Call Etabl_Connection
   StrSQL = "SELECT nom_pilote, Nom_Image, Image from Photo where Photo.nom_pilote = '" & nom & "'"
   Call InitialiseRecordset
   With Photo
        .Fields("nom_pilote") = nom
        .Fields("Nom_Image") = nomimage
            imag = PathDataBase & "Pic.tmp"
                  imag = PathDataBase & vFieldVal(.Fields("Nom_Image"))
        .Delete
   End With
    
    'If Not Photo Is Nothing Then
       'Photo.Close
    'End If
    'Set Photo = Nothing
Call Ferm_Connection
   
End Sub
Public Sub id(ByVal nom As String)
    'Procedure permettannt de dire que  le nom  à afficher n'existe pas dans la liste
   Call Etabl_Connection
   StrSQL = "Select nom_pilote From Photo Where nom_pilote =  '" & nom & "'"
   Call InitialiseRecordset
   With Photo
    If Not Photo.EOF = False Then
MsgBox " Ce Nom n'existepas Dans la Liste, Veuillez en Choisir un Autre", vbInformation, "Démarche à Suivre"
MsgBox "Appuyez Sur le Bouton Nouveau Avant Afficher", vbInformation, "Recherche de Nom"

  End If
  End With
Call Ferm_Connection
   
End Sub


