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 63 64 65 66 67 68 69
| Function ReturnColumn(ByVal MOT As String, ByVal TESTER As String) As ADODB.Recordset
'---------------------------------------------------------------------------------------
' Procedure : ReturnColumn
' Créée le : samedi 04 févr 2006 02:19
' Auteur : Maxence Hubiche
' Objet : Procédure renvoyant un recordset ADO déconnecté contenant les informations
' d'une colonne donnée correspondant au SOUNDEX d'une valeur
'---------------------------------------------------------------------------------------
'
Dim rsOrigin As ADODB.Recordset
Dim rsResult As ADODB.Recordset
Const Nom_Fichier As String = "c:\ThisRecordset.xml"
Const Chaine_Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Office\Office2K\Office\Samples\Comptoir.mdb"
On Error GoTo GestErr
'si le fichier existe déjà, le supprimer
If FileLen(Nom_Fichier) <> 0 Then Kill Nom_Fichier
'Créer 2 recordsets
Set rsOrigin = New ADODB.Recordset
Set rsResult = New ADODB.Recordset
'Ouvrir le recordset d'origine pour récupérer les données attendues
rsOrigin.Open "Select " & MOT & " FROM Employés", Chaine_Conn, adOpenStatic, adLockReadOnly
'Créer et ouvrir le second recordset
rsResult.Fields.Append MOT, adVarChar, 100
rsResult.Open
'Parcourir tout le premier recordset
Do Until rsOrigin.EOF
'Si la donnée de l'enregistrement en cours correspond au SOUNDEX de la valeur cherchée
If Soundex(rsOrigin(0)) = Soundex(TESTER) Then
'Ajouter la valeur au nouveau recordset
With rsResult
.AddNew MOT, rsOrigin(0)
.Update
End With
'Sinon
Else
'rien à faire
End If
'Passer à l'enregistrement suivant
rsOrigin.MoveNext
Loop
'Au besoin, enregistrer le fichier
rsResult.Save Nom_Fichier, adPersistXML
'Renvoyer le recordset
Set ReturnColumn = rsResult
Finprog:
On Error Resume Next
'Fermer proprement le recordset d'origine, dans tous les cas
rsOrigin.Close
Set rsOrigin = Nothing
Exit Function
GestErr:
Select Case Err.Number
Case 53 'Fichier introuvable
Resume Next
Case Else
MsgBox "L'Erreur N° " & Err.Number & " (" & Err.Description & ") s'est produite de manière inattendue dans la procédure ReturnColumn du module Module Module1", vbCritical, "ERREUR INATTENDUE"
End Select
Resume Finprog
End Function |
Partager