Voila une petite application inspirée de celle-ci
http://vbfrance.com/code.aspx?ID=35099 qui permet à l'insertion d'un support d'enregistrer facilement vos fichiers en base de données, en les renomant si besoin, et en les classant par type (ou thème).
Source / Exemple :
Private Sub CmdEnregistrer_Click()
Dim cnx As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim req As String
Dim temp As String
Dim typeM As String
Dim iPos As Integer
Dim noRecord As Boolean
Dim compte As Integer
noRecord = False
compte = 0
'Ajout des fichiers a la base de donnees
If ComboType.Text = "Type de média" Or ComboType.Text = "Autre" Then
MsgBox "Sélectionnez dabord un type de média !"
Else
Unload FormListe
iPos = 0
'Connection à la BdD
req = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DVDcollection.mdb;Persist Security Info=False"
cnx.Open req
While (cnx.State = adStateConnecting)
DoEvents
Wend
Un:
If List.SelCount > 0 Then 'Si au moins un enregistrement est sélectionné
If List.Selected(iPos) Then 'Si l'enregistrement en iPos est sélectionné
If List.List(iPos) <> "" Then
temp = Replace(List.List(iPos), "'", "''")
'Vérifie si l'enregistrement n'est pas deja en base de données
req = "Select Count (*) From TabMedia Where MediaNom = '" & temp & "'"
rst.Open req, cnx
If rst.Fields(0) = 0 Then
'si non present : ajout a la bdd
req = "Insert Into TabMedia(MediaNom, MediaType) Values ('" & temp & "','" & ComboType.Text & "')"
cnx.Execute req
'suppression du listing
List.RemoveItem (iPos)
Else
'Si present en bdd : on déselectionne
List.Selected(iPos) = False
noRecord = True 'au moins un enregistrement n'est pas effectué
compte = compte + 1 'nb d'enregistrement sautés
End If
rst.Close
GoTo Un
End If
Else 'on passe a l'enregistrement suivant
iPos = iPos + 1
GoTo Un
End If
cnx.Close
End If
'charge la liste avec le type de média qui vient d'etre enregistre
FormListe.ComboType2.Text = ComboType.Text
CheckSelectAll.Value = 0
End If
'indique le nombre d'occurences non enregistrees
If noRecord Then MsgBox compte & " médias présents en base de données n'ont pas été enregistrés !"
If List.ListCount = 0 Then TextRenomme.Text = ""
End Sub
Conclusion :
Cela ne paye pas de mine, mais reste pratique, je suis ouvert à toute critique (constructive) à tous niveaux (code, commentaire,...)
J'hésitais à partager la source mais vu que j'ai quelques personnes qui la trouvent interressante et l'utilise, on ne sait jamais !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.