cs_garat
Messages postés32Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention19 janvier 2011
-
1 sept. 2009 à 22:39
cs_garat
Messages postés32Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention19 janvier 2011
-
3 sept. 2009 à 20:45
Bonsoir à tous,
Je n'arrive pas à faire fonctionner ma requête SELECT avec un champ Oui/Non ou Vrai/Faux sur une version Française ACCESS 2003 SP3.
Voici le corps de ma requête:
Function Recuperation_position_camembert() As String()
Dim tableau() As String
Dim index As Integer
Dim rqt As String
Dim cnn1 As ADODB.Connection
Dim myrecordset As New ADODB.Recordset
On Error GoTo Gestion_erreur
Set cnn1 = CurrentProject.Connection
myrecordset.ActiveConnection = cnn1 'emplacement des données pour les enregistrements
myrecordset.CursorType = adOpenStatic 'déplacement libre du curseur dans l'enregistrement
rqt = "SELECT tbl_camembert.nom_camembert, tbl_camembert.position"
rqt = rqt & " FROM tbl_camembert"
rqt = rqt & " WHERE (((tbl_camembert.position)=True))"
'Lance la requète
myrecordset.Open rqt
'Contrôle la présence d'enregistrement
If myrecordset.EOF <> True Then
'Dimensionne le tableau en fonction du nombre d'enregistrement
ReDim tableau(myrecordset.RecordCount - 1)
'Récupère tous les enregistrements
While myrecordset.EOF <> True
'Place les valeurs dans le tableau de retour
tableau(index) = myrecordset.Fields(0).Value 'nom du camembert
index = index + 1 'position suivante dans le tableau
myrecordset.MoveNext 'enregistrement suivant
Wend
Else
'Dimensionne le tableau pour un élément vide
ReDim tableau(0)
End If
'Ferme la connexion et libère la mémoire
myrecordset.Close
Set myrecordset = Nothing
Set cnn1 = Nothing
Recuperation_position_camembert = tableau()
Exit Function
Gestion_erreur:
Select Case Err
Case Else
Call Msg_erreur_non_traite("Recuperation_position_camembert")
End Select
cs_garat
Messages postés32Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention19 janvier 2011 3 sept. 2009 à 20:45
Incroyable ce qui m'arrive, j'ai modifié le nom du champ Oui/Non
rqt = "SELECT tbl_camembert.position_camembert, tbl_camembert.nom_camembert"
rqt = rqt & " FROM tbl_camembert"
rqt = rqt & " WHERE (((tbl_camembert.position_camembert)=Yes))"
le nom "position" tout seul ne fonctionne pas en VBA mais fonctionne bien avec le générateur de requête d'ACCESS.
Le fait de modifier le champ par "position_camembert" la requête fonctionne trés bien en VBA.
Le mot "position" est peut être un mot réservé ?
Si des professionnels d'ACCESS ont une explication, je suis preneur