PB ado/access

Résolu
Signaler
Messages postés
190
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
29 avril 2009
-
Messages postés
190
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
29 avril 2009
-
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?

merci pour votre aide

4 réponses

Messages postés
190
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
29 avril 2009
1
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!!
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
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 !?
Messages postés
190
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
29 avril 2009
1
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 :
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
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 !?