ecranbleu27
Messages postés190Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention29 avril 2009
-
13 févr. 2006 à 13:52
ecranbleu27
Messages postés190Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention29 avril 2009
-
14 févr. 2006 à 06:27
bjr
j'ai un soucis avec l'extraction d'enregistrement ds une base access avec ado;
voici mon code ou x et y sont deux variables que l'utilisateur a saisi dans un form,
Public Function cher_che(x, y, z)
Dim adoconnection As ADODB.Connection
Dim adorecordset As ADODB.Recordset
Dim CONNECTSTRING As String
Set adoconnection = New ADODB.Connection
Set adorecordset = New ADODB.Recordset
Dim resultat As String
CONNECTSTRING = "provider=microsoft.jet.oledb.4.0;" & "data source=c:\FILLEGARCON\CALENDRIER.mdb"
adoconnection.Open CONNECTSTRING
resultat = "select " & y & " from CALEND where AGE=" & x
adorecordset.Open resultat, adoconnection, , , adCmdText
RES = adorecordset!y
FrGENERAL.Text1(0).Text = RES
FrGENERAL.Show
End Function
là ou visiblement ca ne passe pas :
RES = adorecordset!y
y étant bien sur une colonne de ma table CALEND, mais qui est une variable,
ma syntaxe est-elle mauvaise?
ecranbleu27
Messages postés190Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention29 avril 20091 14 févr. 2006 à 06:27
merci
avec tt ca , ca marche
j'ai changé x en integer (il était en string),
j'ai ajouté my alias comme précisé,
ca ca ne marchepas: adorecordset.fields(y)ou adorecordset(y):"utilisation incorecte de la propriété."
et il m'a fallu convertir ma bd car je ne pouvais pas la modifier.
merci encore!!
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 13 févr. 2006 à 18:06
Salut,
Quel est ton message d'erreur ?
Le contenu de y correspond-il bien à un champ de ta table ?
Y a-t-il au moins un enregistrement correspondant à l'AGE cherché ?
RES est déclaré comment ?
Pourquoi ne pas faire directement :
FrGENERAL.Text1(0).Text = adorecordset!y
...
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
ecranbleu27
Messages postés190Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention29 avril 20091 13 févr. 2006 à 18:25
bsoir
le message est:
type de données incompatible dans l'expression du critére.
y est bien un champ de la table,
en mode debug :
x et y correspondent bien aux valeurs saisies,
et sur adorecordset!y l'encadré précise :
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 13 févr. 2006 à 19:36
Bon, on va procéder par ordre.
"type de données incompatible dans l'expression du critére" ça veut dire que le type de ton champ "AGE" n'est pas le même que "x".
Par exemple, si "AGE" est du string
where AGE= " & x doit être codé : where AGE='" & x & "'"
Sinon, il faut peut être convertir x dans le type de ton champ "AGE".
"sur adorecordset!y l'encadré précise :"
Je te propose de remplacer
adorecordset!y
par
adorecordset.fields(y)
ou
adorecordset(y)
Je m'explique, y étant une variable contenant le nom d'un champ mais n'étant pas le nom du champ lui-même, tu ne peux pas utiliser adorecordset!y car, dans ce cas, "y" est le nom du champ.
Tu as une autre solution qui marche quelque soit le nom du champ :
resultat = "select " & y & " as MyAlias from ....."
ainsi, tu pourras utiliser :
adorecordset!MyAlias
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?