/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
VB, Access og udtræk af tabeller
Fra : Thomas Pedersen


Dato : 22-01-02 21:04

Hej!

Jeg sidder med VB 6.0 + MS Access og har brug for, på en form, at vise
navnene på alle tabellerne i databasen.
Jeg kan _simpelthen_ ikke finde ud af det - selvom jeg nu har brugt langt
længere tid end godt er...

Kan nogle hjælpe mig, tak!

Thomas Pedersen



 
 
Jan V. (23-01-2002)
Kommentar
Fra : Jan V.


Dato : 23-01-02 07:53


"Thomas Pedersen" <@net-tips.dk> skrev i en meddelelse
news:Rzj38.4116$XA5.490021@news000.worldonline.dk...
> Hej!
>
> Jeg sidder med VB 6.0 + MS Access og har brug for, på en form, at vise
> navnene på alle tabellerne i databasen.
> Jeg kan _simpelthen_ ikke finde ud af det - selvom jeg nu har brugt langt
> længere tid end godt er...
>
> Kan nogle hjælpe mig, tak!
>
> Thomas Pedersen
>
Dette er lavet med DAO 3.51. Smider alle tabeller i List1 (Listbox). Hvis du
ikke vil have systemtabeller med, skal du filtrere de tabeller fra der
hedder MSYS til start.

For Tael1 = 0 To DB.TableDefs.Count - 1
list1.additem If DB.TableDefs(Tael1).Name
Next Tael1

Jan



Jan V. (23-01-2002)
Kommentar
Fra : Jan V.


Dato : 23-01-02 11:48


"Jan V." <jv@miljodata.dk> skrev i en meddelelse
news:3c4e5e1e$0$249$edfadb0f@dspool01.news.tele.dk...
>
> "Thomas Pedersen" <@net-tips.dk> skrev i en meddelelse
> news:Rzj38.4116$XA5.490021@news000.worldonline.dk...
> > Hej!
> >
> > Jeg sidder med VB 6.0 + MS Access og har brug for, på en form, at vise
> > navnene på alle tabellerne i databasen.
> > Jeg kan _simpelthen_ ikke finde ud af det - selvom jeg nu har brugt
langt
> > længere tid end godt er...
> >
> > Kan nogle hjælpe mig, tak!
> >
> > Thomas Pedersen
> >
> Dette er lavet med DAO 3.51. Smider alle tabeller i List1 (Listbox). Hvis
du
> ikke vil have systemtabeller med, skal du filtrere de tabeller fra der
> hedder MSYS til start.
>
> For Tael1 = 0 To DB.TableDefs.Count - 1
> list1.additem If DB.TableDefs(Tael1).Name
> Next Tael1
>
> Jan
>
Ups, glemte at fjerne noget (if, funktionen er sakset fra en af mine
projekter):

For Tael1 = 0 To DB.TableDefs.Count - 1
list1.additem DB.TableDefs(Tael1).Name
Next Tael1

Jan



Thomas Pedersen (23-01-2002)
Kommentar
Fra : Thomas Pedersen


Dato : 23-01-02 21:31

Ups, Jan - jeg postede vist mit svar til dig forkert (via mail). Her er det:

Tak for dit svar.
Desværre fremkommer der en fejl når jeg forsøger at køre koden:

"Arguments are of the wrong type, are out of acceptable range, or are in
conflict with one another."

Kan du fortælle mig hvad det betyder? Den vil åbenbart ikke godtage
db.TableDefs.Count
....

Med venlig hilsen
Thomas


--
Med venlig hilsen

Thomas Pedersen
Net-Tips.dk
.............................................................
...:: thomas@net-tips.dk
...:: 28 92 49 82
...:: www.net-tips.dk
.............................................................
"Jan V." <jv@miljodata.dk> wrote in message
news:3c4e955d$0$263$edfadb0f@dspool01.news.tele.dk...
>
> "Jan V." <jv@miljodata.dk> skrev i en meddelelse
> news:3c4e5e1e$0$249$edfadb0f@dspool01.news.tele.dk...
> >
> > "Thomas Pedersen" <@net-tips.dk> skrev i en meddelelse
> > news:Rzj38.4116$XA5.490021@news000.worldonline.dk...
> > > Hej!
> > >
> > > Jeg sidder med VB 6.0 + MS Access og har brug for, på en form, at vise
> > > navnene på alle tabellerne i databasen.
> > > Jeg kan _simpelthen_ ikke finde ud af det - selvom jeg nu har brugt
> langt
> > > længere tid end godt er...
> > >
> > > Kan nogle hjælpe mig, tak!
> > >
> > > Thomas Pedersen
> > >
> > Dette er lavet med DAO 3.51. Smider alle tabeller i List1 (Listbox).
Hvis
> du
> > ikke vil have systemtabeller med, skal du filtrere de tabeller fra der
> > hedder MSYS til start.
> >
> > For Tael1 = 0 To DB.TableDefs.Count - 1
> > list1.additem If DB.TableDefs(Tael1).Name
> > Next Tael1
> >
> > Jan
> >
> Ups, glemte at fjerne noget (if, funktionen er sakset fra en af mine
> projekter):
>
> For Tael1 = 0 To DB.TableDefs.Count - 1
> list1.additem DB.TableDefs(Tael1).Name
> Next Tael1
>
> Jan
>
>



Jan V. (24-01-2002)
Kommentar
Fra : Jan V.


Dato : 24-01-02 07:33


"Thomas Pedersen" <@net-tips.dk> skrev i en meddelelse
news:T3F38.4483$XA5.546530@news000.worldonline.dk...
> Ups, Jan - jeg postede vist mit svar til dig forkert (via mail). Her er
det:
>
> Tak for dit svar.
> Desværre fremkommer der en fejl når jeg forsøger at køre koden:
>
> "Arguments are of the wrong type, are out of acceptable range, or are in
> conflict with one another."
>
> Kan du fortælle mig hvad det betyder? Den vil åbenbart ikke godtage
> db.TableDefs.Count
> ...
>
> Med venlig hilsen
> Thomas
>
>
> --
> Med venlig hilsen
>
> Thomas Pedersen
> Net-Tips.dk
> ............................................................
> ..:: thomas@net-tips.dk
> ..:: 28 92 49 82
> ..:: www.net-tips.dk
> ............................................................

Du skal huske at åbne databasen først.

Prøv følgende:

1. Lav et nyt projekt, med kun EN form
2. Tilknyt DAO 3.6 (eller 3.51, frit valg)
4. Lav en listboks (list1)
3. Lav en knap, med følgende kode:

Dim DB As DAO.Database
Dim Tael1 As Integer

Set DB = OpenDatabase("d:\temp\temp.mdb") 'Husk lige at skifte dit
database navn ud her


For Tael1 = 0 To DB.TableDefs.Count - 1
List1.AddItem DB.TableDefs(Tael1).Name
Next Tael1


Jeg gjorde det lige og det virkede fint.

Jan



Carsten Suurland (24-01-2002)
Kommentar
Fra : Carsten Suurland


Dato : 24-01-02 08:32

Hej Thomas

Hvis du vil gøre dig selv en tjeneste så drop DAO.
Lav tingene "rigtigt" fra starten af og brug ADO i stedet for.

/Carsten Suurland



Jan V. (24-01-2002)
Kommentar
Fra : Jan V.


Dato : 24-01-02 09:06


"Carsten Suurland" <carsten@suurland.dk> skrev i en meddelelse
news:oMO38.5083$XA5.567603@news000.worldonline.dk...
> Hej Thomas
>
> Hvis du vil gøre dig selv en tjeneste så drop DAO.
> Lav tingene "rigtigt" fra starten af og brug ADO i stedet for.
>
> /Carsten Suurland
>
Sæfølgelig, nu havde jeg bare lige løsningen liggende i et gammelt (DAO)
projekt.

Da de fleste af de projekter jeg arbejder på er 2-4 år gamle, ligger de i
DAO, men alle nyopstartede projekter kører jeg selvfølgelig i ADO. Det kan
tider til godt skabe nogen sjove ting, når man arbejder i DAO projekt og
bruger ADO ting og omvendt.

Jeg ville mordeligt gerne konvertere hele dynen til ADO, men det er liiige
det der med at få kunderne til at betale for noget, de ikke kan se gør en
forskel umiddelbart, andet end en fed regning herfra.

Jan





Carsten Suurland (24-01-2002)
Kommentar
Fra : Carsten Suurland


Dato : 24-01-02 09:24

Hej Jan

Ja... det med kunderne kender jeg!
De vil ikke altid det samme som os

/Carsten Suurland



Thomas Pedersen (24-01-2002)
Kommentar
Fra : Thomas Pedersen


Dato : 24-01-02 20:03

Hej Carsten.

Jamen, det lyder da som et "must" - så det vil jeg forsøge.
Men igen; jeg er rimelig ny udi VB og behøver noget hjælp.
Kan du give mig et par linier (eksempel?) at arbejde med?

På forhånd tak.
Thomas



"Carsten Suurland" <carsten@suurland.dk> wrote in message
news:oMO38.5083$XA5.567603@news000.worldonline.dk...
> Hej Thomas
>
> Hvis du vil gøre dig selv en tjeneste så drop DAO.
> Lav tingene "rigtigt" fra starten af og brug ADO i stedet for.
>
> /Carsten Suurland
>
>



Thomas Pedersen (24-01-2002)
Kommentar
Fra : Thomas Pedersen


Dato : 24-01-02 22:42

Hej igen.

Jeg har vist fundet løsningen på mit problem med at liste alle tabeller i
min DB.
Jeg tog tråden op på Carsten's forslag, og på msdn fandt jeg en løsning med
ADOX:

Dim dbConnect As ADODB.Connection
Dim cat As ADOX.Catalog

Set dbConnect = New ADODB.Connection
Set cat = New ADOX.Catalog

dbConnect.Provider = "Microsoft.Jet.OLEDB.4.0"
dbConnect.Open "minDB.mdb", "admin", ""

Set cat.ActiveConnection = dbConnect

For Taeller = 0 To cat.Tables.Count - 1
List1.AddItem cat.Tables(Taeller).Name
Next Taeller

Tilbage står så bare problemet at ovenstående også udskriver MSys og
queries ud.... men det må jeg vel kunne finde ud af at fjerne.

Tak til jer begge for jeres svar - det var fedt I gav jer tid til at hjælpe
mig

Thomas


"Thomas Pedersen" <@net-tips.dk> wrote in message
news:ASY38.4627$Eu2.547622@news010.worldonline.dk...
> Hej Carsten.
>
> Jamen, det lyder da som et "must" - så det vil jeg forsøge.
> Men igen; jeg er rimelig ny udi VB og behøver noget hjælp.
> Kan du give mig et par linier (eksempel?) at arbejde med?
>
> På forhånd tak.
> Thomas
>
>
>
> "Carsten Suurland" <carsten@suurland.dk> wrote in message
> news:oMO38.5083$XA5.567603@news000.worldonline.dk...
> > Hej Thomas
> >
> > Hvis du vil gøre dig selv en tjeneste så drop DAO.
> > Lav tingene "rigtigt" fra starten af og brug ADO i stedet for.
> >
> > /Carsten Suurland
> >
> >
>
>



Thomas Pedersen (24-01-2002)
Kommentar
Fra : Thomas Pedersen


Dato : 24-01-02 23:28

Ok.... jeg slutter lige af med at besvare mit eget spørgsmål vedr.
adskillelse af reelle tabeller fra systemtabller og queries:
Det gøres naturligvis vha. af property'en .TYPE



"Thomas Pedersen" <@net-tips.dk> wrote in message
news:xc%38.4686$Eu2.556639@news010.worldonline.dk...
> Hej igen.
>
> Jeg har vist fundet løsningen på mit problem med at liste alle tabeller i
> min DB.
> Jeg tog tråden op på Carsten's forslag, og på msdn fandt jeg en løsning
med
> ADOX:
>
> Dim dbConnect As ADODB.Connection
> Dim cat As ADOX.Catalog
>
> Set dbConnect = New ADODB.Connection
> Set cat = New ADOX.Catalog
>
> dbConnect.Provider = "Microsoft.Jet.OLEDB.4.0"
> dbConnect.Open "minDB.mdb", "admin", ""
>
> Set cat.ActiveConnection = dbConnect
>
> For Taeller = 0 To cat.Tables.Count - 1
> List1.AddItem cat.Tables(Taeller).Name
> Next Taeller
>
> Tilbage står så bare problemet at ovenstående også udskriver MSys og
> queries ud.... men det må jeg vel kunne finde ud af at fjerne.
>
> Tak til jer begge for jeres svar - det var fedt I gav jer tid til at
hjælpe
> mig
>
> Thomas
>
>
> "Thomas Pedersen" <@net-tips.dk> wrote in message
> news:ASY38.4627$Eu2.547622@news010.worldonline.dk...
> > Hej Carsten.
> >
> > Jamen, det lyder da som et "must" - så det vil jeg forsøge.
> > Men igen; jeg er rimelig ny udi VB og behøver noget hjælp.
> > Kan du give mig et par linier (eksempel?) at arbejde med?
> >
> > På forhånd tak.
> > Thomas
> >
> >
> >
> > "Carsten Suurland" <carsten@suurland.dk> wrote in message
> > news:oMO38.5083$XA5.567603@news000.worldonline.dk...
> > > Hej Thomas
> > >
> > > Hvis du vil gøre dig selv en tjeneste så drop DAO.
> > > Lav tingene "rigtigt" fra starten af og brug ADO i stedet for.
> > >
> > > /Carsten Suurland
> > >
> > >
> >
> >
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste