Erreur liée à ma table ACCES

Signaler
Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
Bonsoir,

pour afficher un enregistrement de ma base de données, j'ai codé le script suivant:

Private Sub Command2_Click()
Dim Message, MyValue
Dim nom As String
Message = "Entrez Le nom du client"
    'Affiche le message, par défaut
    MyValue = InputBox(Message, "Afficher")
    nom = MyValue
    Form1.nom = MyValue
Dim nom1 As String: Dim prenom1 As String: Dim tel1 As String
Call idnom(nom)
Call affichpil(nom1, prenom1, tel1)Form1.nom nom1: Form1.prenom prenom1: Form1.tel = tel1
End Sub

Public Sub idnom(ByVal npil As String)
Call Etablir_Connection

Dim Reqsql As New ADODB.Command
Dim Res As New ADODB.Recordset
Reqsql.ActiveConnection = clReqsql.CommandText "Select nom From client Where nom  " & npil & ""
Set Res = Reqsql.Execute
If Not Res.EOF = False Then
    MsgBox "Ce client n'existe pas, Veuillez en Choisir un autre ", vbInformation, "Information"
    End If
Call Fermer_Connection
End Sub

En exécutant ce code j'obtiens l'erreur suivante:
Aucune valeur donée pour une ou plusieurs des paramètres requis

et la ligne pointée est la suivante:
Set Res = Reqsql.Execute

Merci d'avance!
Le savoir est la lumière de nous tous, partageons le!

7 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Essaye comme cela :
Reqsql.CommandText "Select nom From client Where nom  '" & npil & "'"

Puis ici tu peux faire comme cela :

If Not Res.EOF = False Then >> If Not Res.EOF Then

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008

Merci Explorer, je veux aussi crée les boutons qui me permettent de parcourir tous mes enregistrements:
Premier
Suivant
Precedent
Dernier

j'essaie toujours de faire appel à mes fonctions du module, j'ai essayé ça mais ça ne marche pas:

Public Sub suivpil() '(ByVal nom As String, ByVal prenom As String, ByVal tel As String)
    'Procédure permettant d'inserrer dans les tables tous les renseignements
Call Etablir_Connection
Private Sub Command5_Click()
Call suivpil
Call affichpil(nom, prenom, tel)Form1.nom nom: Form1.prenom prenom: Form1.tel = tel
End Sub

Dim Reqsql As New ADODB.Command
Dim Pilote As New ADODB.Recordset
Reqsql.ActiveConnection = cl
Pilote.MoveNext
 Call Fermer_Connection
End Sub

Le savoir est la lumière de nous tous, partageons le!
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Regarde avec ton recodset une fois chargé(rempli) du côté de :

Rs.MoveFirst >> Déplacement sur le premier
Rs.MoveLast >> Déplacement sur le précédent
Rs.MoveNext >> Déplacement sur le suivant
Rs.MovePrevious >> Déplacement sur le dernier

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008

oui je sais mais je ne sais pas comment inserer ces instructions dans une fonction avec le renvoie d'une variable à chaque opération cad next, last, first et Previous

Merci

Le savoir est la lumière de nous tous, partageons le!
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Re,

Mais tu veux renvoyer quoi exactement dans cette fonction ??

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008

Ok, je veux créer une fonction qui reçoit soit MoveFirst ou MoveNext etc.. à partir des boutons Dernier, Suivant etc..

l'idée est de ne faire qu'une seule fonction qui reçoit l'action à réaliser.

Ceci est du au fait que les mouvements sur ma table sont dans un module hors ma feuille Form1.

Le savoir est la lumière de nous tous, partageons le!
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Re,

Je ne sais pas si j'ai bien compris mais une sub devrait suffir :

Private Sub Deplace(ByRef Rst As ADODB.RecordSet, sType As String)

' En faite, une fois ton RecordSet rempli, on le passe en paramètre à la fonction
' ByRef >> Tu travails directement avec ton RecordSet
' ByVal >> Tu travails avec une clone de ton RecordSet

Select Case sType

On Error Resume Next

Case "MoveFirst"
              Rst.MoveFisrt

Case "MoveLast"
              Rst.MoveLast

Case "MoveNext"
              Rst.MoveNext

Case "MovePrevious"
              Rst.MovePrevious

Err.Clear
A+
Exploreur

J'espère que c'est cela.... ! En tout cas c'est une base....

 Linux a un noyau, Windows un pépin