Erreur requete

lune212 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
 lune212 -
Bonjour,

Je viens demander votre aide parce qu'aprés lecture de 1000 et 1 forum je n'arrive toujours pas à trouver ce qui ne marche pas.
J ai une erreur d'exécution (Trop peu de parametres. 1 attendu) et je pense que c est ma requete sql qui ne marche pas.
En fait j'ai une zone de texte(nommé num) dans mon formulaire access sur laquelle je souhaite faire une requete pour savoir si le numero entré dans cette zone existe dans ma base de donnée.

Option Compare Database

Private Sub Commande1_Click()





Me.Requery
Dim sql As String
Dim rs As DAO.Recordset
sql = " SELECT * FROM [demande_d'achat] WHERE [N°_DA] = '" & Me.num & "';"
Debug.Print sql
Set rs = CurrentDb.OpenRecordset(sql)

If Not rs.EOF Then
MsgBox "Ce numero de da est réussie", vbInformation, "Redirection ..."
DoCmd.OpenForm "Menu_Animateur_affectationETsuivi", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "Authentification_Administrateur"
Else
MsgBox "Numero incorrect ", vbInformation, "Connexion"
End If
End If

End Sub


2 réponses

blux Messages postés 27135 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

plutôt que de créer un recordset, prends la fonction dlookup(), elle convient tout à fait pour ce que tu souhaites faire...
0
lune212 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse mais je ne connais pas cette fonction et du coup je ne sais pas comment il faut faire
0
blux Messages postés 27135 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Regarde l'aide à son sujet, elle permet de renvoyer une valeur d'un champ d'une table avec un paramétrage.

Dans ton cas, cela pourrait ressembler à ça :

if not isnull(dlookup("[N° DA]#,"[demande_d'achat]","[N°_DA] = '" & Me.num & "'")) then
    MsgBox "Ce numero de da est réussie", vbInformation, "Redirection ..."
    DoCmd.OpenForm "Menu_Animateur_affectationETsuivi", acNormal, , , , acWindowNormal
    DoCmd.Close acForm, "Authentification_Administrateur"
Else
    MsgBox "Numero incorrect ", vbInformation, "Connexion"
End If
0
lune212 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse....enfin ça marche.
il faut juste mettre " à la place de # ( ça doit etre une erreur de frappe :) ) ...ce qui donne

If Not IsNull(DLookup("[id]", "[affaire]", "[id] = Form![num]")) Then ......
0
blux Messages postés 27135 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Oui, je ne ms suis pas relu, c'est bien une erreur de frappe.
Les fonctions de domaine, comme dlookup, offrent une vaste possibilité de calculs divers et variés sans être obligé de créer des requêtes à rallonge.
On trouve : dsum() pour faire la somme de champs répondant à un critère, davg() pour la moyenne, dmin() pour trouver le plus petit, etc etc...
0
lune212 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
merci en tout cas pour tous ces éclairages, ça va m'etre utile mais j'ai encore une question.
en fait le numero que je récupere est la clé de ma table, je veux savoir comment pré-remplir automatiquement les champs d'un formulaire vers le quel je redirige l'utilisateur avec cet identifiant et les infos qui lui sont associés dans la table?

Merci d'avance
0
blux Messages postés 27135 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Il faut que tu prépares la requête qui renvoie les informations concernant l'utilisateur et que tu la mettes en .rowsource de ton formulaire...
0