VB et erreur 91. Variable Objet...non definie

Résolu
Bonjour ,

j' essaye d' apprendre le vb avec des exos trouvés sur le net.
L' un d' eux porte sur les bases de données access. Mais , j' ai une erreur que je n' arrive pas a solutionner.

Error 91 : Variable objet ou variable bloc WITH non- definie

Le code de la procedure posant probleme est :

Private Sub List1_Click()
Dim i As Integer
Dim db As Database
List2.Clear
For i = 0 To
db.TableDefs(List1.ListIndex).Fields.Count - 1
List2.AddItem db.TableDefs(List1.ListIndex).Fields(i).Name
Next i
End Sub


(Ce qui est en gras est ce qui produit mon erreur 91.)

Le but est d' affiicher la structure de chaque table(2 tables) dans un autre ListBox.Il y a deux listbox. C'est a dire la List1 ou s' affiche le nom des tables et une List2.
La mise à jour de cette seconde Listbox s’effectue lors d’un clique sur un nom de table de la première
ListBox.

J' ai soupçonné que le probleme pouvait etre du à une" reference" d' objet que je n' aurais pas selectionnée.
Mais, je ne sais pas laquelle choisir
ou si il y a une autre raison à cette erreur 91.

Si vous pouvez m' aider à avancer , merci d' avance.

Tom

4 réponses

  1. ;-)

    Tu as oublié de définir la base de données... TableDef ne peut accèder qu'aux définitions de table d'une BASE, il manque donc un petit "OpenDataBase" kaik part...

    ;-)
    1. Merci beaucoup...
      Du coup, comme le problème était du a ma méconnaissance du langage Visual Basic , je me suis acheté un livre en parlant.

      Tom
      1. Erreur d'execution BASIC Variable d'objet non definie

        je suis en plein deboguage de macros sous open office mais la je bloque quelqu'un pour un cous de main ????

        le code:

        LesFeuillesCible = Journal.sheets
        wait 1000 ' permet à l'évement ouverture doc de s'executer
        DocJournal.CurrentController.ActiveSheet = LesFeuillesCible.getByName("Devis")
        FeuilleCible = LesFeuillesCible.getByName("Devis")
        DateDevis = MaFeuille.GetCellRangeByName("DateChiffre").value

        NomListe= FeuilleDonnee.GetCellRangeByName("InfoNomListe").String 'Nom de liste utilisé pour la facture