Toon posts:

[Access/VBA] combo box vullen

Pagina: 1
Acties:
  • 185 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een probleem met het vullen van een combo box/keuzelijstje.
Ik wil dat in de combo box/keuzelijstje de namen van de tabellen die in de database zitten komen te staan.
Ik heb wel een code, maar weet niet wat hier fout aan is, of dat er nog een andere code is.

code:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Function ListAllTables(fld As Control, ID As Long, Row As Long, Col As Long, Code As Integer)

   Dim DB As Database
   Dim tbdf As TableDef
   Static tbls(256) As String
   Static Entries As Integer
   Dim i As Integer
   Dim ReturnVal
   ReturnVal = Null
   Select Case Code
      Case LB_INITIALIZE         

         Set DB = CurrentDb
         Entries = 0
         For i = 0 To DB.TableDefs.Count - 1
         If Left(DB.TableDefs(i).Name, 4) <> "MSys" And Left(DB.TableDefs(i).Name, 4)  <> "Usys" Then
         tbls(Entries) = DB.TableDefs(i).Name
         Entries = Entries + 1
         End If

         Next i
         ReturnVal = Entries
      Case LB_OPEN               
         ReturnVal = Timer       
      Case LB_GETROWCOUNT        
         ReturnVal = Entries

      Case LB_GETCOLUMNCOUNT     
         ReturnVal = 1
      Case LB_GETCOLUMNWIDTH     
         ReturnVal = -1          
      Case LB_GETVALUE           
         ReturnVal = tbls(Row)
      Case LB_END                
         For Entries = 0 To 256
            tbls(Entries) = ""
         Next
   End Select
   ListAllTables = ReturnVal

End Function

  • Boss
  • Registratie: September 1999
  • Laatst online: 13:21

Boss

+1 Overgewaardeerd

Wat werkt er dan niet aan? Ziet eruit als stukje copy-paste ergens vandaan. Volgens mij is dat stukje bij Case LB_INITIALIZE wel wat je zoekt.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
als ik deze code gebruik en ik ga naar mijn formulier, krijg ik in mijn lijste de tabelnamen niet te zien
Terwijl deze code in een andere database wel werkt

Verwijderd

Neem aan dat je de functie wel aan de combo box gehangen hebt ?
Heb je 256 tabellen ? Anders kan je de tbls array wel wat kleiner / groter maken ...

Verwijderd

Topicstarter
Het maakt niet uit of ik de grote verander, en ik heb bij mijn keuzelijstje bij type rijbron ListAllTables ingevuld(net zoals in de wel werkende database)

Ik snap niet waarom nu niet een lijstje krijg met tabelnamen

Verwijderd

Waar heb je de functie code neergezet en waar de functie aanroep ?
Bij mij doet jouw code het prima :) dus daar ligt het niet aan.

Verwijderd

Topicstarter
De code staat in het vba van het formulier (map : microsoft access klassenobjecten)

En ik roep de code aan bij eigenschappen van het keuzelijstje en dan bij de type rijbron heb ik ListAllTables ingevuld

Misschien dat ik iets over het hoofd zie, maar naar mij idee heb ik het precies hetzelfde gedaan als ik daarvoor ook al eens gedaan heb, maar nu werkt het dus niet

Verwijderd

Heb je het bij de rijbron staan ? Ik heb de Engelse versie maar mijn row source is leeg.
Je moet de functie eentje hoger zetten. Bij rij bron type.

Probeer dat eens

Verwijderd

Topicstarter
Het stond bij type rijbron en niet bij rijbron, ik heb verwisseld maar helpt ook niet.
ik heb ook het werkende formulier geexporteerd naar nieuwe database, maar dat werkt ook niet.

Verwijderd

Vreemd, ik zou je database wel eens willen zien. Kan dat ?

Verwijderd

Topicstarter
ik kan het wel sturen, als ik weet waarnaartoe

Verwijderd

stond email adres
Pagina: 1