Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Lire une table Access inverse


Sujet :

VBScript

  1. #1
    Membre actif
    Lire une table Access inverse
    Bonjour
    Après avoir trouvé des exemples, j'ai essayé ce qui suit; sans résultat.
    Je ne vois pas mon erreur.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     <script language="VBScript">
    	Const db  = 	"bibi.accdb"
     	Const pr1 =	"PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source="
     	Const pr2 =	";Persist Security Info=False;"
        connstring =  pr1 & db  & pr2
            Set       Rs    = CreateObject("ADODB.RecordSet")
    z="<body bgcolor='#FFE4C4'>" & _
    "<input type='button' onclick='window.close' name='sortie'/> "    & _
    "&nbsp&nbsp(du plus recent au plus ancien)"	   & _
    "<table cellspacing='2px' cellpadding='2px;' rules='all' " & _
    "style='border:solid 1px black;'>" 		   & _
    "<tr><th>N°<th>Nom<th>Type<th>nb Mo</tr>"
    '----------------------------------------------------------
    Const sql = "SELECT  * FROM [films]"  
            			Rs.open SQL, connstring
        				RS.MoveLast 
             Do Until   RS.BOF
    	     z=z & "<tr><td>" & RS(0) _
    	        & "</td><td>" & RS(1) _
    	        & "</td><td>" & RS(2) _
    	        & "</td><td>" & RS(4)   & "</td></tr>" 
                       rs.MovePrevious
             Loop :     rs.close
       self.document.write z & "</table></body>"
    </script>


    Pour lire la table dans l'ordre, je n'ai pas de problème.
    Windows 8.1
    Firefox Quantum 58.0.1 (64 bits)
    Google Chrome Version 67.0.3396.99 (Build officiel) (64 bits)

  2. #2
    Rédacteur

    bonjour,

    parce que tu as créé ton recordset en mode Forward-only cursor qui est le mode par défaut
    en conséquence, la méthode MovePrevious n'est pas supportée
    s'il s'agit simplement de générer un rapport à partir de ce recordset, le mode statique est adapté
    donc à la ligne 15 :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Rs.open SQL, connstring, 3 ' adOpenStatic

    je te conseillerais vivement de travailler avec la doc ado 2.8 qui détaille le modèle objet ado.stream
    btw, si le recordset ramène un grand nombre d'éléments, la concaténation de z risque d'être lente
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp