Avatar billede cc2000 Nybegynder
21. maj 2003 - 10:27 Der er 7 kommentarer og
2 løsninger

Populate en drop down menu ud fra hvilke tabeller der findes

Jeg har 2 access databaser. En database indeholdende en form hvor der er en drop down menu og den anden database indholdende en masse tabeller og data.

Min drop down menu skal på en eller anden måde liste dynamisk tabel navnene i den anden database.

Forklaret på en anden måde:
Man trykker på drop down menuen den giver dig så en liste over de tabeller der findes. Nu går man f.eks. ind og tilføjer en tabel i den anden database, dernæst bliver den automatisk vist i drop down menuen fremover.

Er der nogen der kan give mig et skub i den rigtige retning til hvordan man kan lave det? Muligvis en løsning eller et link?
Avatar billede martin_moth Mester
21. maj 2003 - 10:37 #1
Løsningen er bare at indlæse det du nu vil have i din dropdown fra databasen ind i et recordset. Derefter loope over recordsættet, og smide hver post ind i din combo. Og gentage denne procedure hver gang din database opdateres.

Alternativt kan du direkte binde din combo til databasen, se i properties-vinduet for din combo - der er egenskaberne "datasource" mv, du kan bruge til det
Avatar billede martin_moth Mester
21. maj 2003 - 10:40 #2
Prøv at læs lidt i følgende link, der beskriver hvad der skal til for at binde kontroller til en datakilde (database)

http://search.microsoft.com/default.asp?so=RECCNT&siteid=us%2Fdev&p=1&nq=NEW&qu=combobox+datasource&IntlSearch=&boolean=ALL&ig=01&i=21&ig=03&ig=04&ig=05&ig=06&i=99
Avatar billede cc2000 Nybegynder
21. maj 2003 - 10:41 #3
Jeg har prøvet at kigge på datasource egenskaberne men de kan ikke bruges pga de er kun beregnet til data i en tabel og ikke tabel navnene.
Samt en recordset kan heller ikke vise tabel navnene kun dataerne eller er det mig der tager fejl?
Avatar billede martin_moth Mester
21. maj 2003 - 10:42 #4
Som det fremgår, skal du først og fremmest have fat i en ADO data control, der binder til databasen. Herefter kan du binde andre kontroller til udvalgte tabeller osv.  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconusingadodatacontrol.asp
Avatar billede cc2000 Nybegynder
21. maj 2003 - 10:56 #5
Det eneste jeg kan få den til at vise er de data der står i databasen.
Jeg har oprettet en ADO data control. Lavet en build på connectionstring testet om jeg kunne få fat på databasen hvilket jeg kunne. Men jeg kan ikke få den til at liste tabelnavnene i min drop down menu lige meget hvad. Det eneste den vil vise er data fra en enkelt af de tabeller jeg har. Hvad gør jeg forkert?
Avatar billede martin_moth Mester
21. maj 2003 - 11:33 #6
Hmm - jeg har nok misforstået dit spørgsmål. Har ikke bemærket, at det er tabelnavne du vil have. Men det må kunne gøres med noget SQL, men så langt rækker min erfaring ikke. Og har ikke tiden til at lede lige nu. Msåka kan du finde noget på www.w3schools.com (under sql), eller på msdn.microsoft.com... Ellers er der med garanti en anden her på E der ved det :o)
Avatar billede cc2000 Nybegynder
21. maj 2003 - 11:40 #7
Tænkte nok du havde misforstået det men var ikke sikker :)
Men jeg prøver lige at gennemrode w3schools.com og msdn, samtidig med jeg håber der kommer en redningsmand/kvinde her på Exp :D
Men takker anyway. Jeg fandt da ud af noget jeg skulle bruge senere :)
Avatar billede helmet Nybegynder
21. maj 2003 - 13:09 #8
Du kan få fat i metadata ved at bruge ADOX, lav en reference til Mircosoft ADO Ext. 2.x for dll and security.

Så kunne det fx se således ud

Dim ado As ADOX.Catalog
Dim conn As ADODB.Connection
Dim i As Integer

  Set ado = New ADOX.Catalog
  Set conn = New ADODB.Connection
 
  conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp.mdb"
 
  Set ado.ActiveConnection = conn
 
  For i = 0 To ado.Tables.Count - 1
    If ado.Tables(i).Type = "TABLE" Then
      Combo1.AddItem ado.Tables(i).Name
    End If
  Next
Avatar billede cc2000 Nybegynder
21. maj 2003 - 13:53 #9
Nice det virker jo :) Takker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester