A voir également:
- Probleme de validation dans un formulaire
- Ethernet n'a pas de configuration ip valide - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Temps validation annonce le bon coin - Forum Hotmail / Outlook.com
- Formulaire de contact le bon coin introuvable - Forum Réseaux sociaux
4 réponses
Bonjour,
ton erreur vient peut être du fait que tu passes ta variable dans les guillemets alors qu'il faut la sortir (en l'entourant de cotes) :
rst.findfirst "commande='" & Me!command & "'"
Mais pourquoi tu ne passerais pas plutôt par une requête de sélection SQL genre :
SELECT * FROM tatable WHERE champs = '" & Me!Command & "'
Et ensuite du testes si tu récupères une valeur ou non :
If rs.RecordCount <> 0 Then ... (quelque chose du genre).
Fanny
ton erreur vient peut être du fait que tu passes ta variable dans les guillemets alors qu'il faut la sortir (en l'entourant de cotes) :
rst.findfirst "commande='" & Me!command & "'"
Mais pourquoi tu ne passerais pas plutôt par une requête de sélection SQL genre :
SELECT * FROM tatable WHERE champs = '" & Me!Command & "'
Et ensuite du testes si tu récupères une valeur ou non :
If rs.RecordCount <> 0 Then ... (quelque chose du genre).
Fanny
Bon, je vais essayer de t'expliquer :p (je sais pas si je vais être assez claire) :
requête sql toute bête :
Comme tu peux le voir, il faut mettre les chaînes de caractères entre cotes (apostrophes), et les chiffres sans rien.
Donc quand tu veux concaténer une variable (contenant la valeur de comparaison pour ton champ) dans une chaîne SQL, il faut que tu fasses :
Si c'est une chaîne de caractère :
(ici, j'ai mis des espaces pour bien visualiser les ' mais il ne faut pas les mettre ;) )
Si c'est du numérique, pas de cotes :
J'espère que cette explication est compréhensible :)
Si elle ne l'est pas, je veux bien retenter une autre façon d'expliquer ;)
Fanny
requête sql toute bête :
SELECT * FROM tatable WHERE prenom = 'Fanny' SELECT * FROM tatable WHERE age = 22
Comme tu peux le voir, il faut mettre les chaînes de caractères entre cotes (apostrophes), et les chiffres sans rien.
Donc quand tu veux concaténer une variable (contenant la valeur de comparaison pour ton champ) dans une chaîne SQL, il faut que tu fasses :
Si c'est une chaîne de caractère :
maVariable = "Fanny" requete = "SELECT * FROM tatable WHERE prenom = ' " & maVariable & " ' "
(ici, j'ai mis des espaces pour bien visualiser les ' mais il ne faut pas les mettre ;) )
Si c'est du numérique, pas de cotes :
maVariable = 22 requete = "SELECT * FROM tatable WHERE prenom = " & maVariable
J'espère que cette explication est compréhensible :)
Si elle ne l'est pas, je veux bien retenter une autre façon d'expliquer ;)
Fanny
merci
je vais reveni au probleme des " ' &
seulement le truc que tu ma conseillé n'a pas marché
voila ce que je reçois comme message:
type de données incompatible dans l'expression du critère
le code que j'ai utilise est : rst.findfirst"commande=" ' & me!command & " ' ( espace seulement pour te visualiser ce que j'ai fais)
je vais essayer avec les nouveau régles que tu m'a donné
je vais reveni au probleme des " ' &
seulement le truc que tu ma conseillé n'a pas marché
voila ce que je reçois comme message:
type de données incompatible dans l'expression du critère
le code que j'ai utilise est : rst.findfirst"commande=" ' & me!command & " ' ( espace seulement pour te visualiser ce que j'ai fais)
je vais essayer avec les nouveau régles que tu m'a donné
bonne nouvelle fany
merci pour ton aide
alors j'ai utilisé tes conseilles concernant l'utilastio de ' " & et j'ai reussi:
au début j'ai fait ceci:
set rst = currentdb.openrecordset("matable",db_open_table)
rst.findfirst"command="&me!command
j'ai reçu l'erreur suivante: opératio non autorisée pour ce type d'objet
j'ai chané db_open_table avec db_open_dynaset
et ça marche
pouvez vous m'expliquer pour quoi ça n'a pas marché avec db_open_table
merci d'avance
merci pour ton aide
alors j'ai utilisé tes conseilles concernant l'utilastio de ' " & et j'ai reussi:
au début j'ai fait ceci:
set rst = currentdb.openrecordset("matable",db_open_table)
rst.findfirst"command="&me!command
j'ai reçu l'erreur suivante: opératio non autorisée pour ce type d'objet
j'ai chané db_open_table avec db_open_dynaset
et ça marche
pouvez vous m'expliquer pour quoi ça n'a pas marché avec db_open_table
merci d'avance
Je ne sais pas. Moi j'ai toujours utilisé db_open_dynaset, mais sans savoir réellement pourquoi :p
En fait je pense que db_open_table te donne un objet recordset de type table sur lequel il n'est pas possible de travailler, de faire des recherches.
Et comme tu fais un FindFirst, je suppose que c'est pour cela qu'il faut utiliser db_open_dynaset, qui te permet de manipuler ce jeu d'enregistrements (recordset).
Fanny
En fait je pense que db_open_table te donne un objet recordset de type table sur lequel il n'est pas possible de travailler, de faire des recherches.
Et comme tu fais un FindFirst, je suppose que c'est pour cela qu'il faut utiliser db_open_dynaset, qui te permet de manipuler ce jeu d'enregistrements (recordset).
Fanny