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

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Export tables med Access
Fra : Kasper Johansen


Dato : 10-08-06 21:57

Hej gruppe.

Er det muligt at exportere tabeller i en Access-databases via SQL og
hvordan?

Jeg tænker noget lignende MySQL's "SHOW TABLE STATUS", hvis i kender den.


--
Med venlig hilsen
Kasper Johansen

 
 
Kasper Johansen (11-08-2006)
Kommentar
Fra : Kasper Johansen


Dato : 11-08-06 02:24

Kasper Johansen skrev:
> Jeg tænker noget lignende MySQL's "SHOW TABLE STATUS", hvis i kender den.

Jeg fandt ud af at liste dem ved hjælp af nogle half-specielle
ODBC-kommandoer. Men er det overhovedet muligt at ændre noget i en
Access-databases struktur ved hjælp af SQL?

Jeg er ved at programmere et program, som skal kunne arbejde på tværs af
forskellige databaser - deriblandt Access. Men jeg har store problemer
med at arbejde med tabeller og lignende i Access.

--
Med venlig hilsen
Kasper Johansen

Jan Bachman (11-08-2006)
Kommentar
Fra : Jan Bachman


Dato : 11-08-06 07:19

On Fri, 11 Aug 2006 03:23:51 +0200, Kasper Johansen
<kaspernj@gmail.com> wrote:

> Men er det overhovedet muligt at ændre noget i en
>Access-databases struktur ved hjælp af SQL?

Du burde kunne oprette en hel struktur i ren SQL. Her er et par
nøgleord:

CREATE TABLE
ALTER TABLE
CREATE INDEX
DROP
CONSTRAINT

/Jan

Kasper Johansen (12-08-2006)
Kommentar
Fra : Kasper Johansen


Dato : 12-08-06 00:18

Jan Bachman skrev:
> Du burde kunne oprette en hel struktur i ren SQL. Her er et par
> nøgleord:

Ja. "CREATE TABLE" virker. Men hvad med at få listet indexes eller
tabeller? Det går fint med at udføre kommandoen til at lave dem.

Jeg kan ikke finde nogen dokumentation til Access, når jeg søger på Google.

Et par links eller lidt forklaringer til det ville gøre underværker :)

--
Med venlig hilsen
Kasper Johansen

Jørn Andersen (12-08-2006)
Kommentar
Fra : Jørn Andersen


Dato : 12-08-06 15:00

On Sat, 12 Aug 2006 01:18:03 +0200, Kasper Johansen
<kaspernj@gmail.com> wrote:

>Jan Bachman skrev:
>> Du burde kunne oprette en hel struktur i ren SQL. Her er et par
>> nøgleord:
>
>Ja. "CREATE TABLE" virker. Men hvad med at få listet indexes eller
>tabeller? Det går fint med at udføre kommandoen til at lave dem.
>
>Jeg kan ikke finde nogen dokumentation til Access, når jeg søger på Google.

Hvis du selv har adgang til et Access-program, så er der en ret
omfattende dokumentation - selv om jeg synes det er gået tilbage siden
Access 97, hvor dokumentationen var noget mere overskuelig (synes jeg
- som dog ikke er en haj til Access).

>Et par links eller lidt forklaringer til det ville gøre underværker :)

Måske:
<url: http://www.mvps.org/access/>
- ?

--
Jørn Andersen,
Brønshøj

Jørn Andersen (12-08-2006)
Kommentar
Fra : Jørn Andersen


Dato : 12-08-06 15:28

On Sat, 12 Aug 2006 01:18:03 +0200, Kasper Johansen
<kaspernj@gmail.com> wrote:

>Jan Bachman skrev:
>> Du burde kunne oprette en hel struktur i ren SQL. Her er et par
>> nøgleord:
>
>Ja. "CREATE TABLE" virker. Men hvad med at få listet indexes eller
>tabeller? Det går fint med at udføre kommandoen til at lave dem.
>
>Jeg kan ikke finde nogen dokumentation til Access, når jeg søger på Google.
>
>Et par links eller lidt forklaringer til det ville gøre underværker :)

Jeg søgte lidt videre og fandt hjælp:
<url: http://www.mvps.org/access/queries/qry0002.htm>
- som siger:
-----------
The Access system table MsysObjects table contains a list of all
database objects. Although undocumented, you can query this table to
retrieve the names you want.
-----------

Men den er default sat til læse-beskyttet, men det er der hjælp til
her:
<url: http://www.dbdesc.com/support.html>

Den siger:
-----------
In order to get that kind of info, dbdesc needs READ permissions to
Access system tables. By default this permission is denied. To change
this setting follow this simple guide:

Open the database
Go to Tools -> Options and enable 'System objects'
Go to Tools -> Security -> User and Group permissions
Select Admin user in the first list and MSysObject and MSysQueries on
the second.
Enable READ DATA permission flag
-----------

Jeg kom så langt, at jeg kunne trække mine tabelnavne og nogle andre
oplysninger ud, men det er ikke alle tabellens felter, der umiddelbart
lader sig udskrive - og nogle af de andre aner jeg ikke hvad betyder



Men jeg har brygget et ASP-eksempel sammen, som måske kan hjælpe dig
en smule videre:

-----------
' Type 1 er tabeller
strSql = "SELECT * FROM MsysObjects WHERE (Left$([Name],4) <> 'Msys')
AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name;"

Set objRs = objConn.Execute(strSql)

' Viser bare, at der er 17 felter (i mit tilfælde?)
Response.Write objRs.Fields.Count & "<br>" & vbcrlf

' Giver dig feltnavnene fra system-tabellen [1]
For Each Field in objRs.Fields
   Response.Write Field.Name & "<br>" & vbcrlf
Next

' Giver dig navnene på tabellerne
Do While Not objRs.Eof
   Response.Write objRs("Name") & "<br>" & vbcrlf
   objRs.MoveNext
Loop
-----------

[1]
De 17 felter jeg får ud hedder:
Connect
Database
DateCreate
DateUpdate
Flags
ForeignName
Id
Lv
LvExtra
LvModule
LvProp
Name
Owner
ParentId
RmtInfoLong
RmtInfoShort
Type

Det er især feltet "LvProp" der giver en lidt underlig datatype ud.
TypeName-funktionen siger, at det er et "Byte()" - hvilket fik mig til
at tænke array.
Den siger True til IsArray, og man kan også tage et UBound() på den
(på første dimension), men man (jeg) kan ikke finde ud af at trække
noget ud af arrayet (hvis det er et array). Og den kan ikke
konverteres til String, Bool m.m.


Der er muligvis en lettere måde at hive tabelnavne ud på, men måske
dette kan bringe dig en smule videre ...


Good luck!

--
Jørn Andersen,
Brønshøj

Jørn Andersen (12-08-2006)
Kommentar
Fra : Jørn Andersen


Dato : 12-08-06 15:44

On Sat, 12 Aug 2006 16:28:04 +0200, Jørn Andersen <jorn@jorna.dk>
wrote:

>Det er især feltet "LvProp" der giver en lidt underlig datatype ud.
>TypeName-funktionen siger, at det er et "Byte()" - hvilket fik mig til
>at tænke array.
>Den siger True til IsArray, og man kan også tage et UBound() på den
>(på første dimension), men man (jeg) kan ikke finde ud af at trække
>noget ud af arrayet (hvis det er et array). Og den kan ikke
>konverteres til String, Bool m.m.

Jeg havde været så fokuseret på ASP-delen, at jeg ikke kiggede i selve
databasen: Når du giver læseadgang til tabellerne, bliver de også
synlige i tabel-oversigten, og de fortæller, at nogle af disse felter
er af typen OLE-object med "Long Binary Data"

Det er nok ikke noget, man skal pille for meget i, hvis man har
"live-data"

I øvrigt er der nok større chancer for et fornuftigt svar i
Access-gruppen, så prøv og spørg der i stedet.

Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Kasper Johansen (12-08-2006)
Kommentar
Fra : Kasper Johansen


Dato : 12-08-06 18:11

Jørn Andersen skrev:
> I øvrigt er der nok større chancer for et fornuftigt svar i
> Access-gruppen, så prøv og spørg der i stedet.

Sorry. Det havde ikke faldt mig ind, at Access havde sin helt egen
database-gruppe :)

--
Med venlig hilsen
Kasper Johansen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste