Avatar billede sf Nybegynder
31. marts 2005 - 13:22 Der er 36 kommentarer og
1 løsning

liste over tabeller

hvordan får jeg en list over alle de tabeller der findes i min database? og en liste over alle felt navne der er i en database?
Avatar billede -anders- Juniormester
31. marts 2005 - 13:27 #1
Hej sf
Der findes sikkert en smatere måde end denne, men du kan vælge funktioner/Analyser/Strukturvisning, denne guide opretter en rapport du kan udskrive, på rapporten er så alle feltnavne samt datatyper angivet for den eller de valgte tabeller
Avatar billede -anders- Juniormester
31. marts 2005 - 13:28 #2
Bemærk at guiden tager noget tid før den er færdig
Avatar billede sf Nybegynder
31. marts 2005 - 14:04 #3
mente med VBA
Avatar billede -anders- Juniormester
31. marts 2005 - 14:18 #4
Well, har ikke lige noget bud på det, men mener at have set spørgsmålet før, prøv evt. at søge i vidensbasen
Avatar billede jesperfjoelner Nybegynder
31. marts 2005 - 14:39 #5
Du kan bruge dette for at få det i en liste:

Dim db As Database
Dim tbl As TableDef
Dim tbls As TableDefs
Dim str As String
Set db = CurrentDb()
Set tbls = db.TableDefs
For Each tbl In tbls
    str = str & tbl.Name & ";"
Next
Me.tabelnavn.RowSourceType = "value list"
Me.tabelnavn.RowSource = str
Avatar billede jesperfjoelner Nybegynder
31. marts 2005 - 14:39 #6
Det var et svar.
31. marts 2005 - 19:35 #7
Lav denne forespørgsel, så har du en komplet liste over tabeller:

Select Name From Msysobjects Where Type in (1, 4, 6)

Hvis du ikke ønsker systemtabeller med, så kan du lave dn sådan:
SELECT Name, Type
FROM msysobjects
WHERE Type In (1,4,6)) AND Left([name],4)<>"Msys"


denne liste kan kobles til en listboks eller lign.
Avatar billede sf Nybegynder
31. marts 2005 - 20:16 #8
den kommer med fejl i WHERE Type In (1,4,6)) AND Left([name],4)<>"Msys"
31. marts 2005 - 20:19 #9
hmm, du indsætter hele udtrykket i SQL-visningen på en forespørgsel, ikk'?

Det virker fint hos mig.

Du kan evt bare prøve med:

Select * from msysobjects for at se om det virker.
Avatar billede sf Nybegynder
31. marts 2005 - 20:53 #10
hvad skal name være?
31. marts 2005 - 21:05 #11
Name er bare navnet på tabellen, forespørgslen, formularen, rapporten eller hvad objektet nu er for et.

Det er Type som angiver hvilken....type....der er tale om :)
Avatar billede sf Nybegynder
31. marts 2005 - 21:06 #12
hippokrates hvorfor kommer der en masse andet med en tabellerne?? :(
31. marts 2005 - 21:10 #13
I hippokrates løsning kommer der kun tabeller med. Men dda der findes nogle systemtabeller, så kommer de også med.

Får du slet ikke noget resultat ud af min SQL? For så kunne du bare sætte listes rækkekilde direkte til den SQL-sætning (husk dog at skifte Rækkekildetype til "tabel/forespørgsel")
Avatar billede sf Nybegynder
31. marts 2005 - 21:10 #14
ok men får MSysAccessXML MSysAccessObjects MSysQueries osv med
31. marts 2005 - 21:11 #15
ja, alt hvad der starter med msys er systemtabeller.
31. marts 2005 - 21:12 #16
Det er det, som denne skulle udelukke:

SELECT Name, Type
FROM msysobjects
WHERE Type In (1,4,6)) AND Left([name],4)<>"Msys"
Avatar billede sf Nybegynder
31. marts 2005 - 21:13 #17
kan jeg ikke undgå systemtabeller?
31. marts 2005 - 21:14 #18
jeg er ikke klar over hvem du spørger og hvilken metode du hentyder til. Min metode fjerner systemtbellerne.....
Avatar billede sf Nybegynder
31. marts 2005 - 21:15 #19
den siger der er en parentes for meget når den er væk få jeg stadig system tabeller med..
Avatar billede sf Nybegynder
31. marts 2005 - 21:17 #20
det er din thomasjepsen og de er der stadig:

Name    Type
MSysObjects    1
MSysACEs    1
MSysQueries    1
MSysRelationships    1
Aktivitet    1
Kundekartotek    1
MSysAccessObjects    1
MSysAccessXML    1
prosvar    1
PrototypeTabel    1
PrototypeTegninger    1
Reference    1
Ruteplan    1
sogkunde    1
test    1
testny    1
Avatar billede sf Nybegynder
31. marts 2005 - 21:18 #21
sql:
SELECT Name, Type
FROM msysobjects
WHERE Type In (1,4,6) AND Left("prosvar",4)<>"Msys"
Avatar billede sf Nybegynder
31. marts 2005 - 21:20 #22
ellers tager jeg bare sys tabeller væk med kode..
31. marts 2005 - 21:25 #23
ah, der skal ikke stå "Prosvar". Der skal ordrret stå:

SELECT Name, Type
FROM msysobjects
WHERE Type In (1,4,6) AND Left([name],4)<>"Msys"

Jeg beklager den ekstra venstreparentes før :o(
31. marts 2005 - 21:26 #24
Name er et felt i msysobjects-tabellen
31. marts 2005 - 21:27 #25
jeg kan godt se, at jeg misforstod dit spm kl 20:53:25.

Det beklager jeg selvfølgelig også ;o)
Avatar billede sf Nybegynder
31. marts 2005 - 21:44 #26
takker thomasjepsen nu virker det men hvordan får jeg fat i alle feltnavene i en tabel?
31. marts 2005 - 21:45 #27
skal det også bare være i en listboks eller komboboks?
Avatar billede sf Nybegynder
31. marts 2005 - 22:00 #28
ja listboks lige som før
31. marts 2005 - 22:03 #29
denne listboks er meget nem:

Angiv Rækkekildetype til "Feltliste"
Angiv Rækkekilde til navnet på den tabel, som du vil se felterne for.


Den kan evt styres dynamisk vha VBA, så når du vælger en tabel på første listboks, så skifter feltlisten tilsvarende:

Kald evt feltlisten for "lstfelter" og tabellisten for "lstTabeller"

På lstTabeller's EfterOpdatering lægges denne kode:

Me!lstfelter.Rowsource = Me!lstTabeller
Avatar billede sf Nybegynder
01. april 2005 - 22:31 #30
thomasjepsen synes ikke jeg kan få det sidste til at virke.. :( når jeg har min liste af tabeller skal man vælge en og derefter få en liste med alle de feltnavn der er i denne tabel
02. april 2005 - 03:01 #31
ja, det er netop det, som mit sidste eks. skulle klare.

jeg prøver lige at lave et eks. i morgen...lige nu er jeg på vej i seng....Zzzz

Send mig lige en reminder, hvis jeg skulle have glemt det i morgen ;o)
Avatar billede sf Nybegynder
03. april 2005 - 23:18 #32
ville du lave et eks. ?
04. april 2005 - 08:17 #33
ja for søren...det var godt, at du selv huskede det...øjeblik...
04. april 2005 - 08:25 #34
Avatar billede sf Nybegynder
04. april 2005 - 11:37 #35
tak kigger lige på det når jeg kommer hjem.. så kan du nok på point
Avatar billede sf Nybegynder
04. april 2005 - 22:11 #36
tak thomasjepsen du har været en meget stor hjælp.. mange tak vil meget gerne give dig 40 point mere hvis du have dem.. :) !?
04. april 2005 - 22:15 #37
Det skal du ikke tænke på - jeg har jo kun svaret på det, som du spurgte om :o)

Jeg er bare glad for, at kunne hjælpe.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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