Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/06/2008, 14h35   #1
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
Par défaut Problème avec movelast

Bonjour,
J'aimerai à partir d'une requête travailler sur le dernier enregistrement, seulement j'obtient l'erreur suivante :
Citation:
Rowset does not support fetching backward.
Voici mon code :
Code :
1
2
3
4
5
6
 
varSQL5 = "SELECT D.Compteur FROM SaisieDetailEnCours D, SaisieMasterEnCours M WHERE D.KeyMaster= M.RecKey AND M.Pn = '" & PN & "' AND M.WO = '" & WO & "' AND D.Groupe = '" & rst4("NAME") & "' ORDER BY D.Compteur"
Set rst5 = BD.Execute(varSQL5)
if not rst5.EOF then
     rst5.MoveLast
end if
Je ne comprend pas pourquoi ça ne fonctionne pas car je n'ai aucun souci avec movefirst! De quoi ceci peut il venir?
Merci
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 15h59   #2
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Bonjour,

La commande execute ne retourne pas de données.

Il faut que tu utilises un recordset
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 16h06   #3
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
Ce que je ne comprend pas c'est pourquoi il n'y a aucun souci avec MoveFirst?!?

J'ai essayé de mettre
Code :
1
2
3
4
5
6
7
Set REC = New ADODB.Recordset
REC.Open "SELECT D.ValeurCtrl FROM SaisieDetailEnCours D, SaisieMasterEnCours M WHERE D.KeyMaster = M.RecKey AND M.Pn = '" & PN & "' AND M.WO = '" & WO & "' AND D.Groupe ='" & rst4("NAME") & "' AND D.CodeCtrl = '" & rst3("ORDER") & "' ORDER BY D.Compteur ASC" , Db, adOpenDynamic, adLockOptimistic
If REC.EOF = False Then
REC.MoveLast
'REC.MovePrevious
response.write(REC.Fields(0))
End If
Mais ca me mettait une erreur: Microsoft VBScript runtime error '800a01fa'
Class not defined: 'ADODB'
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 16h40   #4
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Re,

Et si tu crées l'instance de ton recordset comme
ça ?

Code :
1
2
 
set REC = Server.CreateObject("ADODB.Recordset")
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 16h50   #5
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
Quand je fais ce qu tu me dis j'ai le message d'erreur suivant :
Citation:
ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
et la ligne qu'il indique est celle où il y a
Code :
REC.Open "SELECT D.ValeurCtrl FROM SaisieDetailEnCours D, SaisieMasterEnCours M WHERE D.KeyMaster = M.RecKey AND M.Pn = '" & PN & "' AND M.WO = '" & WO & "' AND D.Groupe ='" & rst4("NAME") & "' AND D.CodeCtrl = '" & rst3("ORDER") & "' ORDER BY D.Compteur ASC" , Db, adOpenDynamic, adLockOptimistic
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 17h05   #6
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Re,

A quoi correspond Db ?
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 17h43   #7
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 248
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 248
Points : 1 205
Points : 1 205
Envoyer un message via MSN à kaiser59
Salut,

Si tu veux travailler avec le dernier enregistrement de ta base il te suffit de faire ceci :

Code :
1
2
3
SELECT TOP 1 *
FROM Matable
ORDER BY MonChamp DESC;
Tout simplement
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 08h44   #8
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
Pour PC75 : Oups je me suis trompé!!! C'est pas Db, c'est BD car je me connecte à la base de cette façon :
Code :
1
2
Set BD = server.createobject("ADODB.connection")
BD.open ("Driver={Microsoft Access Driver (*.mdb)};DBQ= \\bes-svap02\saisiepils$\saisiepils.mdb;")
Mais là j'ai encore une erreur, en fait je ne sais pas à quoi serve les deux autres paramètres... et je n'arrive pas à trouver d'explication sur le net!
Pas très fute fute

Pour kaiser59 : C'est ce que j'avais fait au début seulement j'avais un souci par ce que j'ai un cas particulier ou il peut y avoir deux cas qui ai le même groupe et le même code controle donc lorsque je tri dans lordre décroissant, lorsque je réaffiche ce qui j'ai besoin, par exemple si dans le premier champ nommé K j'avais la valeur 1 et que dans le deuxième champ nommé M j'avais la valeur 2 lorsque je réaffichait il me mettait 2 en K et 1 en M...
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 08h55   #9
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
Je viens d'essayer également avec cette syntaxe là :
Code :
Set REC=CurrentDb.OpenRecordset("SELECT D.ValeurCtrl FROM SaisieDetailEnCours D, SaisieMasterEnCours M WHERE D.KeyMaster = M.RecKey AND M.Pn = '" & PN & "' AND M.WO = '" & WO & "' AND D.Groupe ='" & rst4("NAME") & "' AND D.CodeCtrl = '" & rst3("ORDER") & "' ORDER BY D.Compteur ASC")
Mais ce coup ci le message d'erreur est :
Citation:
Microsoft VBScript runtime error '800a01a8'
Object required: ''
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 09h06   #10
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
A j'ai peut être trouvé un truc, mais j'ai mis au pif donc...
si je fais
Code :
REC.Open "SELECT D.ValeurCtrl FROM SaisieDetailEnCours D, SaisieMasterEnCours M WHERE D.KeyMaster = M.RecKey AND M.Pn = '" & PN & "' AND M.WO = '" & WO & "' AND D.Groupe ='" & rst4("NAME") & "' AND D.CodeCtrl = '" & rst3("ORDER") & "' ORDER BY D.Compteur ASC" , BD,3 , 3
La ca marche mais c'est vraiment du pif pour le 3,3, j'aimerai être sur que ca ne posera pas de problème d'avoir mis ca...
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 12h02   #11
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Citation:
Envoyé par noakiss Voir le message
A j'ai peut être trouvé un truc, mais j'ai mis au pif donc...
si je fais
Code :
REC.Open "SELECT D.ValeurCtrl FROM SaisieDetailEnCours D, SaisieMasterEnCours M WHERE D.KeyMaster = M.RecKey AND M.Pn = '" & PN & "' AND M.WO = '" & WO & "' AND D.Groupe ='" & rst4("NAME") & "' AND D.CodeCtrl = '" & rst3("ORDER") & "' ORDER BY D.Compteur ASC" , BD,3 , 3
La ca marche mais c'est vraiment du pif pour le 3,3, j'aimerai être sur que ca ne posera pas de problème d'avoir mis ca...
Tiens, un extrait de MSDN.

Citation:
Open Method (Recordset) ADO
Opens a cursor.

Applies To

Recordset

Syntax

recordset.Open Source, ActiveConnection, CursorType, LockType, Options

Parameters

Source Optional. A Variant that evaluates to a valid Command object variable name, an SQL statement, a table name, or a stored procedure call.

ActiveConnection Optional. Either a Variant that evaluates to a valid Connection object variable name, or a String containing ConnectionString parameters.

CursorType Optional. A CursorTypeEnum value that determines the type of cursor that the provider should use when opening the Recordset. Can be one of the following constants (See the CursorType property for definitions of these settings.): adOpenForwardOnly (Default) Opens a forward-only-type cursor.
adOpenKeyset Opens a keyset-type cursor.
adOpenDynamic Opens a dynamic-type cursor.
adOpenStatic Opens a static type cursor.



LockType Optional. A LockTypeEnum value that determines what type of locking (concurrency) the provider should use when opening the Recordset. Can be one of the following constants (See the LockType property for more information.): adLockReadOnly (Default) Read-only — you cannot alter the data.
adLockPessimistic Pessimistic locking, record by record — the provider does what is necessary to ensure successful editing of the records, usually by locking records at the data source immediately upon editing.
adLockOptimistic Optimistic locking, record by record — the provider uses optimistic locking, locking records only when you call the Update method.
adLockBatchOptimistic Optimistic batch updates — required for batch update mode as opposed to immediate update mode.



Options Optional. A Long value that indicates how the provider should evaluate the Source argument if it represents something other than a Command object. Can be one of the following constants (See the CommandType property for a more detailed explanation of these constants.): adCmdText Indicates that the provider should evaluate Source as a textual definition of a command.
adCmdTable Indicates that the provider should evaluate Source as a table name.
adCmdStoredProc Indicates that the provider should evaluate Source as a stored procedure.
adCmdUnknown Indicates that the type of command in the Source argument is not known.



See the CommandType property for a more detailed explanation of the first four constants in this list.

Remarks

Using the Open method on a Recordset object opens a cursor that represents records from a base table or the results of a query.

Use the optional Source argument to specify a data source using one of the following: a Command object variable, an SQL statement, a stored procedure, or a table name.

The ActiveConnection argument corresponds to the ActiveConnection property and specifies in which connection to open the Recordset object. If you pass a connection definition for this argument, ADO opens a new connection using the specified parameters. You can change the value of this property after opening the Recordset to send updates to another provider. Or, you can set this property to Nothing (in Microsoft Visual Basic) to disconnect the Recordset from any provider.

For the other arguments that correspond directly to properties of a Recordset object (Source, CursorType, and LockType), the relationship of the arguments to the properties is as follows:

The property is read/write before the Recordset object is opened.


The property settings are used unless you pass the corresponding arguments when executing the Open method. If you pass an argument, it overrides the corresponding property setting, and the property setting is updated with the argument value.


After you open the Recordset object, these properties become read-only.
Note For Recordset objects whose Source property is set to a valid Command object, the ActiveConnection property is read-only, even if the Recordset object isn't open.

If you pass a Command object in the Source argument and also pass an ActiveConnection argument, an error occurs. The ActiveConnection property of the Command object must already be set to a valid Connection object or connection string.

If you pass something other than a Command object in the Source argument, you can use the Options argument to optimize evaluation of the Source argument. If the Options argument is not defined, you may experience diminished performance because ADO must make calls to the provider to determine if the argument is an SQL statement, a stored procedure, or a table name. If you know what Source type you're using, setting the Options argument instructs ADO to jump directly to the relevant code. If the Options argument does not match the Source type, an error occurs.

If the data source returns no records, the provider sets both the BOF and EOF properties to True, and the current record position is undefined. You can still add new data to this empty Recordset object if the cursor type allows it.

When you have concluded your operations over an open Recordset object, use the Close method to free any associated system resources. Closing an object does not remove it from memory; you may change its property settings and use the Open method to open it again later. To completely eliminate an object from memory, set the object variable to Nothing.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 16h32   #12
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
Merci bien!!!
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h40.


 
 
 
 
Partenaires

Hébergement Web