Aidez moi SVP

Vero - 22 nov. 2001 à 19:49
 steph - 27 nov. 2001 à 19:29
Bonjour
j'ai un problème :sad) J'ai besoin d'une variable VBScript dans un bout de code asp. Bon pour que ce soit lus simple a comprendre voici mon code.

<%@language=Vbscript%>

<HTML>
<!-- DATE DE CREATION: 2001-11-14 -->
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE></TITLE>
<META NAME="Description" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Author" CONTENT="Véronique Pageau">
<META NAME="Generator" CONTENT="WebExpert">

<SCRIPT LANGUAGE="VBScript">
<!--
Option Explicit
dim rsDte
dim dteFormater
dim dteSelNonFormater
dim dteSel
dim rsDep

Sub cmbDte_Change()
dteSel = Document.frmMenu.cmbDte.Value
dteSelNonFormater = NonFormatDate(dteSel)
Call RemplicmbDep()
End Sub

function NonFormatDate(dte)
dim dte1
dte1 =""
dte1 = Left(dte, 4)
dte1 = dte1 + Mid(dte, 6, 2)
dte1 = dte1 + Mid(dte, 9, 2)
NonFormatDate = dte1
End function

function FormatDate(dte)
dim dte1
dte1 =""
dte1 = Left(dte, 4)
dte1 = dte1 + "-"
dte1 = dte1 + Mid(dte, 5, 2)
dte1 = dte1 + "-"
dte1 = dte1 + Mid(dte, 7, 2)
FormatDate = dte1
End function

sub RemplicmbDep()
dim dep
dteSelNonFormater = NonFormatDate(dteSel)
MsgBox dteSelNonFormater

<%
'-------déclaration de la base------------------------------
DSN_BASE = "DBQ=" & Server.Mappath("bdQualification.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25"
'-------création de la connection et du recordset-----------
Set ConnAfficheNomDep = Server.CreateObject("ADODB.Connection")
ConnAfficheNomDep.Open DSN_BASE
Set RsAfficheNomDep = Server.CreateObject("ADODB.Recordset")
'-------définition et exécution de la requête---------------RsAfficheNomDep.Open "SELECT nomDep FROM Departement, Employer, Tache, List_Dep_Tache, List_dep_empl, List_tache_empl WHERE Departement.numDep List_Dep_Tache.numDep AND Departement.numDep List_dep_empl.numDep AND Employer.numEmpl = List_dep_empl.numEmpl AND Tache.numTache = List_Dep_Tache.numTache AND List_Dep_Tache.numDep = List_tache_empl.numDep AND List_Dep_Tache.numTache = List_tache_empl.numTache AND List_Dep_Tache.numListT = List_tache_empl.numListT AND List_dep_empl.numDep = List_tache_empl.numDep AND List_dep_empl.numEmpl = List_tache_empl.numEmpl AND List_dep_empl.list_dep_empl = List_tache_empl.list_dep_empl AND List_tache_empl.dte = '" & "20010310" + "' group by nomDep " , ConnAfficheNomDep

Mon probleme est ici je doit metre a la place de "20010310" la variable dteSelNonFormater mais je n'arrive pas a trouver comment faire pour qui la reconnaise.

compteur=0%>

<%If (RsAfficheNomDep.eof=true) then %>
msgBox "aucun enregistrement correspondant"
<%else
RsAfficheNomDep.MoveFirst
DO WHILE not RsAfficheNomDep.eof
compteur = compteur + 1 %>dep "<%RsAfficheNomDep("nomDep") %> "
Document.frmMenu.cmbDep.Additem dep
<% RsAfficheNomDep.MoveNext
loop
end if
'-------fermeture de la connection et du recordset----------
RsAfficheNomDep.Close
Set RsAfficheNomDep = Nothing
ConnAfficheNomDep.Close
Set ConnAfficheNomDep = Nothing %>

end sub

-->
</SCRIPT>
</HEAD>

<FORM NAME="frmMenu">
Monitor:,
<OBJECT ID="cmbDte" WIDTH=159 HEIGHT=24
CLASSID="CLSID:8BD21D30-EC42-11CE-9E0D-00AA006002F3">

</OBJECT>,

----

Monitor:,
<OBJECT ID="cmbDep" WIDTH=159 HEIGHT=24
CLASSID="CLSID:8BD21D30-EC42-11CE-9E0D-00AA006002F3">

</OBJECT>

</FORM>

<%'-------déclaration de la base------------------------------
DSN_BASE = "DBQ=" & Server.Mappath("bdQualification.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25"
'-------création de la connection et du recordset-----------
Set ConnAfficheLots = Server.CreateObject("ADODB.Connection")
ConnAfficheLots.Open DSN_BASE
Set RsAfficheLots = Server.CreateObject("ADODB.Recordset")
'-------définition et exécution de la requête---------------
RsAfficheLots.Open "SELECT dte FROM List_tache_empl group by dte" , ConnAfficheLots
compteur=0

dte ="0"%>
<% rsAfficheLots.MoveFirst %>

<% DO WHILE not rsAfficheLots.eof %>
<% compteur = compteur + 1 %>

<SCRIPT LANGUAGE="VBScript">
<!--
'Remplie le combobox des date
dteFormater = ""rsDte CStr( <%rsAfficheLots("dte") %> )
dteFormater = FormatDate(rsDte)
Document.frmMenu.cmbDte.Additem dteFormater
-->
</SCRIPT>

<% rsAfficheLots.MoveNext %>
<%loop

'-------fermeture de la connection et du recordset----------
rsAfficheLots.Close
'Set rsAfficheLots = Nothing
ConnAfficheLots.Close
'Set ConnAfficheLots = Nothing
%>

<%=compteur%>

</HTML>

Merci de me donné un cour de main :)

5 réponses

salut,
tu remplaces ton nombre par la variable :
"..." & dteSelNonFormater & "..."
a+
0
Ça ne fonctionne pas.
J'avais essayé...
Il compile mais, elle il la prend pour une chaîne de caractère vide. Il
me répond toujours :
msgBox "aucun enregistrement correspondant"

Pourtant, elle contient quelque chose car, je la fait écrire juste avant de la mettre dans ma requête.

Avez-vous une autre idée ?

Merci
0
salut,
Bon on va traité les problémes un par un.

Affiche ta requete avant sont execution et regarde que ta variable est bien remplacé par ta valeur.

La variable que tu teste est bien de type entier dans la base ?

Quand tu mets la constante au lieu de la variable ton programme fonctionne t'il ?

a+
0
Salut
Si je met ma constante ca fonttionne très bien. Ma variable dans ma table est de type string et elle doit y rester. [: )] (pour des traitement futur ).

Pour afficher ma requete ... Je comprend pas bien comment faire, moi j'ai fait afficher ma varriable et elle corespondais a ma donné selectionner. Si je met ma variable dans ma requette, il la voie comme vide et me dit que je n'est pas de résultat.

merci pour ton coup de main

Véro
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut
si c'est une chaine de caractere tu doit utiliser l'operateur like au lieu de egal.
pour toi cela donne :

List_tache_empl.dte LIKE '" & dteSelNonFormater & "' group ...

utilise une variable pour stocké ta requete et l'afficher ensuite avec les variable remplacer par leur valeur avant l'execution ou apres.

SQL = "select ..."

'affiche ta requete et regarde si ta variable est bien remplacer
response.write SQL

a+
0
Rejoignez-nous