Lire une table d'une base access

sandra -  
 bnb -
Bonjour,
je travaille dans access 2003, j'ai créé une table nommé listing. je voudrais maintenant travailler sur les enregistrements de cette table et pour cela je voudrais les lire les uns apres les autres.
j'ai créé un module dans acces afin de programmer en VBA. j'arrive à ouvrir un fichier texte sur le disque (j'ai trouvé de l'aide à ce sujet)
Open "c:\donnees-sandra\listing2.txt" For Input As #1

mais comment ouvrir une table ?
merci d'avance de votre aide.
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. ego
     
    pourquoi l ouvrir en basic et pas sur une requete?
    0
  2. bnb
     
    Dim db as database
    dim rst as recordset

    Set db= currentdb
    Set rst = db.openrecordset("Le Nom de ma table", db_open_snapshot)
    rst.movefirst

    Do until rst.eof
    debug.print rst(0)
    loop

    set rst= nothing
    set db = nothing

    Voilà, à toi d'arranger dans une procédure pour que cela réponde à tes désidératas!
    0
  3. bnb
     
    En plus propre...

    Function Lire () as boolean
    On Error goto LireErr

    Dim db as database
    Dim rst as recorset
    Dim tbl as tabledef
    Dim i as integer, j as integer

    set db= currentdb ' ouvre une occurence de ton application
    set tbl = db.opentabledef("listing") ' ouvre la définition de ta table
    i= tbl.fields.count ' retiens le nombre de champs dans la table
    set tbl = nothing 'referme la définition de la table
    set rst = db.openrecordset("Listing", db_open_snashot) ' ouvre la table en lecture seule
    if not rst.eof ' vérifie si la table n'est pas vide
    rst.movefirst ' se pose sur le 1er enregistrement de la table
    do until rst.eof ' permet de lire enregistrement par enregistrement jusqu'à la fin de la table
    for j = 0 to i-1 ' la liste des objets en access commence toujours à 0 donc le 1er champ est en fait le champ n°0
    debug.print rst(j).name & " : " & rst(j) ' affiche dans l'immediate window le nom et la valeur du champs sélectionné
    next j ' permet de passer au champs suivant de l'enregistrement
    loop ' passe à l'enregistrement suivant

    lire = true ' si la function a vien tournée renverra "true"

    ResumeErr:
    On error resume next ' Empeche de générer une erreur si une des 2 conditions suivantes n'est pas remplie
    set rst = nothing ' referme la table
    set db = nothing ' referme l'occurence de la db

    LireErr:
    msgbox err.number & " : " & err.description ' Si la procédure se plante t'indique la raison
    lire = false ' Puisque la procédure n'est pas bonne autant l'indiquer ;-)
    Resume ResumeErr 'Permet de quitter la procédure

    End Function
    0
  4. bnb
     
    Juste rajouter dans ResumeErr
    exit function => sinon tu boucleras...

    Mea Maxima Culpa
    0