Connexion Access et Excel, Lecture d'un champ à valeur multiple dans Access à partir de Excel
Bonjour je debute avec les connexions ACCESS et EXCEL, aujourd'hui j'arrive à lire les champs avec un recordset, mais il existe dans mon projet des champs avec des valeurs multiples je n'arrive à lire ses champs qu'à l'aide d'un recordset FILS (on ne peut utiliser une clause where dans un champ à valeur multiple, car il faut considérer le champs à valeur multiple comme un recordset).
Ma préoccupation c'est de pourvoir trouver des données spécifiques dans un jeu d'enregistrement qui provient d'un champ à valeur multiple. je veux faire un findfirst dans mon recordset fils : ChmpMltVlu
Code:
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
| Dim Condition As String
Dim chemin_bdREV As String: Dim Enregistrmt As Integer
Dim Chmp As Integer: Dim Enregistrmt2 As Integer
Dim DnnBsRV5 As Recordset: Dim Enregistrmt3 As Integer
Dim ChmpMltVlu As Recordset
Set DnnBsRV5 = base.OpenRecordset("SELECT * FROM SOUTIEN WHERE Code_benef='" & Range("B" & Enregistrmt).Value & "' AND Date_soutien >= #" & Format(CStr(Range("B3").Value), "mm/dd/yyyy") & "# AND Date_soutien <= #" & Format(CStr(Range("D3").Value), "mm/dd/yyyy") & "# ORDER BY Code_benef ASC", dbOpenDynaset)
Set ChmpMltVlu = DnnBsRV5!Alimentation.Fields
If ChmpMltVlu.RecordCount > 0 Then
Cells(Enregistrmt, 9).Value = 1
End If
ChmpMltVlu.FindFirst; Alimentation = "A11"
DnnBsRV5.FindFirst CStr(Alimentation = "A11")
If Not ChmpMltVlu.NoMatch Then
MsgBox "merci"
End If
If ChmpMltVlu.RecordCount > 0 Then
Cells(Enregistrmt, 8).Value = 1
End If |
Je vous remercie de bien vouloir m'aider
Je suis toujours dans l'attente d'un reponse
Je cherche toujours comment lire les information d'un champ à valeur multiple dans access!
JE VOIS ICI J'AI PAS LE CHOIX
Je suis très reconnaissant de vos interventions merci, mais il faut le dire dans ce cas là je n'ai pas trop le choix parce que je travaille actuellement sur une base de données héritée d'un supérieur, je sais que l'approche n'est pas appropriée mais il a fourni la base dans cet état avec les données déjà renseignées et moi je suis obligé de faire avec donc je cherche un moyen en fait.
Si une solution existe je serai très content
Merci pour tout j'ai trouvé
L'idée du split m'a permis de trouver la solution en fait je ne voulais pas avoir à passer par des fichiers EXCEL intermédiaire et j'ai trouver qu'en utilisant les recordset fils ça marche pour lire les informations enregistrée dans le champs multivalue.
Code:
1 2 3 4 5 6 7 8
| Set DnnBsRV5 = base.OpenRecordset("SELECT * FROM SOUTIEN WHERE Code_benef='" & Range("B" & Enregistrmt).Value & "' AND Date_soutien >= #" & Format(CStr(Range("B3").Value), "mm/dd/yyyy") & "# AND Date_soutien <= #" & Format(CStr(Range("D3").Value), "mm/dd/yyyy") & "# ORDER BY Code_benef ASC", dbOpenDynaset)
Set ChmpMltVlu = DnnBsRV5.Fields("Alimentation").Value
'Set ChmpMltVlu = DnnBsRV5!Alimentation.Value
ChmpMltVlu.MoveFirst
Do
MsgBox ChmpMltVlu!Value.Value
ChmpMltVlu.MoveNext
Loop Until ChmpMltVlu.EOF = True |