Avatar billede schoesler Nybegynder
10. september 2004 - 12:15 Der er 10 kommentarer og
1 løsning

Når Access åbnes skal man kunne vælge at importere tabeller.

Hej Eksperter
Ønsker at lave en DB hvor den spørger om hvilke hvor tabellerne ligger og om de ønskes importeret. Da der er mange tabeller er det måske smart med en status bar eller ligende, når DB lukkes skal alle tabeller slettes igen. Det vil være en read only DB

Jan
Avatar billede jensen363 Forsker
10. september 2004 - 12:17 #1
Det skulle nok kunne lade sig gøre, men du må være mere specifik i din opgaveformulering c",)
Avatar billede schoesler Nybegynder
10. september 2004 - 12:58 #2
Når jeg åbner min db, skal der spørges om hvilke tabeller der ønskes importeret. Når programmet skal de importeret tabeller slettes igen.
Avatar billede jensen363 Forsker
10. september 2004 - 13:01 #3
Hvorfor vil du importere tabeller ( fra andre databaser ) for herefter at slette dem igen. Var det ikke nemmere at sammenkæde ( em form for server/klient løsning ) ...
Avatar billede schoesler Nybegynder
10. september 2004 - 13:30 #4
Har 18 datafiler som er identiske i strukturen, men indholdet af data er forskelligt. Det er så meningen jeg vil lave en frontend som kan importere disse data alt efter hvilken datafiler man ønsker at kigge på
Avatar billede jensen363 Forsker
10. september 2004 - 13:36 #5
Set fra min stol, vil det være langt mere dynamisk, at indarbejde kæde til de 18 databaser, og eventuelt via en UNION forespørgsel samle data, for herefter at selectere på denne forespørgsel. Den anden løsning med import, og sletning af data konstant, vil medføre at du skal komprimere din database ofte. ... bare et forslag ...
10. september 2004 - 16:53 #6
Jeg vil også foreslå dig, at sammenkæde i stedet for at importere. Fordelenved dette er, at du så allerede har tabelnavnene og derfor er fri for at skulle skrive eller vælge dem.

Jeg har et eksempel liggende, som giver mulighed for at skifte sammenkædningen til backenden fra brugergræsefladen:

http://www.makeiteasy.dk/eksempler/Downloads.htm

eksemplet hedder "Automatisk sammenkædning af Backend"

Du kan evt også selv skrive koden om, så den importere i stedet for sammenkæder. Men da den ikke på forhånd ved hvilke tabeller, der skal importeres, er den nok lidt svær at omskrive :o(

Men det hele kan selvfølgelig laves ret simpelt:

Hvis du har en hovedformular, som altid er åben så længe applikationen er i luften, så kan du bare sørge for at slette alle tabeller, når denne formular lukkes:

Private Sub Form_Unload
    on error resume next
    Dim rs as new adodb.recordset
    dim cn as adodb.connection
    set cn = currentproject.connection
    rs.Open "SELECT msysobjects.Name, msysobjects.Type FROM msysobjects WHERE msysobjects.Type)=1 AND Left([name],4))<>'Msys'", cn, adOpenStatic
    do until rs.eof
        docmd.DeleteObject acTable, rs!Name
        rs.Movenext
    loop
    rs.close
    set rs = nothing
    cn.close
    set cn= nothing
end sub


Når formularen åbnes, køres denne kode så:

Private sub Form_Load
    docmd.RunCommand acCmdImport
end sub

/Thomas

PS: koden er ikke testet for tastefejl, da den bare er tastet direkte her!
10. september 2004 - 20:35 #7
ja, jeg kan da i hvert fald se et par fejl i SQL-sætningen:
    rs.Open "SELECT msysobjects.Name, msysobjects.Type FROM msysobjects WHERE msysobjects.Type=1 AND Left([name],4)<>'Msys'", cn, adOpenStatic
Avatar billede rosco Novice
12. september 2004 - 14:27 #8
thomasjepsen's forslag om sammen-kædning, synes at være det du kan bruge. Jeg bruger selv hans metode, med at have identiske datafiler og en knap på formularen, " vælg anden datafil", så kobler den op på den datafil der vælges. Det fungerer fint.
13. september 2004 - 13:44 #9
takker for point - jeg håber, at du fik det til at spille :o)
Avatar billede schoesler Nybegynder
13. september 2004 - 13:57 #10
Havde allerede din backend løsning ibrug, men fik bare en skør ide,
13. september 2004 - 14:06 #11
haha, ja dem skal man passe på med ;o)
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