Avatar billede roose Nybegynder
28. maj 2003 - 19:22 Der er 21 kommentarer og
1 løsning

Aut. import af tabel ved åbning af DB

Jeg har behov for at én tabel i min accessdatabase bliver opdateret løbende, uden at brugerne skal gøre noget.
Jeg forestiller mig, at databasen leder i et specifikt directory (fx. C:\database) på C: efter en ny database med et specifikt navn (fx. Opdatering.mdb). I denne database ligger den nye tabel (fx. tbl_opdatering).
Ligger der ikke en database, skal intet foretages.
Ligger der en database(der jo indeholder den nye tabel), importeres tbl_opdatering fra den "nye" database overi den gamle, hvor den overskriver en eventuelt eksisterende tabel af samme navn.
Hvordan gøres dette ? - og er der evt. en nemmere løsning ?
Avatar billede henrik13 Nybegynder
28. maj 2003 - 19:31 #1
Man kunne jo dele databasen i en front-end og bak-end.
I froent-end gemmes de indre tabeller. i bak-end er der altid den nye opdatering, Der hver gang bare overskrives fra opdaterens side.
Avatar billede roose Nybegynder
28. maj 2003 - 19:36 #2
Det er jeg bange for jeg ikke helt forstår. Men opdateren har ikke som sådan adgang til databasen.
Avatar billede henrik13 Nybegynder
28. maj 2003 - 19:44 #3
>>roose
Et eksempel:
Du har et rengøringsfirma, med fast 4 kunder pr. dag i en fast liste , det ligger i froent-end. Så er der afbud fra en klient til chefen. så laver han rettelse til dagrns prg. sender det til firmaet, der ligger i bak-end, ved udprintningen næste morgen ses dey afbud.
Håber det ex. var forståligt.
Avatar billede henrik13 Nybegynder
28. maj 2003 - 19:45 #4
dey = det
Avatar billede henrik13 Nybegynder
28. maj 2003 - 19:47 #5
Nej opdateren har ingen adgang til databasen for han kan ikke opdatere så længe databasen er tændt.
Avatar billede henrik13 Nybegynder
28. maj 2003 - 19:52 #6
Der kan jo også lægges kode i opdateringen der bekrefters dens ægthed.
Vh Henrik
Avatar billede roose Nybegynder
28. maj 2003 - 20:06 #7
Ok - nu forstår jeg. Vil en front-end database altid opdatere sig selv når den åbnes ? Mit problem er, at der er flere front-end, der i såfald vil være forbundet med back-end via et modem. Jeg vil gerne undgå, at modemmet skal ringe op hver gang databasen benyttes.
Avatar billede henrik13 Nybegynder
28. maj 2003 - 20:19 #8
Ok skal der så laves en tradisjonel løsning, eller skal der gåes videra.
Avatar billede roose Nybegynder
28. maj 2003 - 20:19 #9
jeg har læst lidt mere om databaseopdeling på http://www.eksperten.dk/spm/308288 . Tak for tippet, Henrik13, men det opfylder ikke mine behov. Det er nødvendigt, at hver arbejdsstation (der ringer via et modem) har en kopi af hele databasen. Desuden kan antallet af brugere i sidste ende godt snige sig op over de 255, som Microsoft angiver kan bruge en delt database. Jeg vender derfor tilbage til mit udgangspunkt med at importere en tabel.
Avatar billede henrik13 Nybegynder
28. maj 2003 - 20:23 #10
En tradisjonel ser sådan ud. lav et modul. Hvor denne sætning indskrives:
DoCmd.TransferDatabase acImport, "Microsoft Access", "C:\Database\Ny.mdb", acTable, "TblBy", "TblNyBy", False

Databasen hedder her "ny.mdb" og
filen der importeres hedder "TblBy" og
bliver omdøbt ved importen til "TblNyBy"
Avatar billede henrik13 Nybegynder
28. maj 2003 - 20:28 #11
Den skal laves som function i modulet, ex:
Function Nyhed()

DoCmd.TransferDatabase acImport, "Microsoft Access", "C:\Database\Ny.mdb", acTable, "TblBy", "TblNyBy", False

Function End

Når databasen skal opdateres, skrives der fra en formular, ex:
Call Nyhed()

Så er den nye tabel hented ind og omdøbt.
Avatar billede henrik13 Nybegynder
28. maj 2003 - 20:30 #12
Rettelse:
Det hedder, ex:
End Function
Avatar billede henrik13 Nybegynder
28. maj 2003 - 20:33 #13
Derudover skal du tage stilling om den gamle fil, skal slettes, eller ej.
Ved import af en fil mere kommer den til at hedde:
"TblNyBy1" og næste gang:
"TblNyBy2"
Avatar billede henrik13 Nybegynder
28. maj 2003 - 20:35 #14
Enden jeg går videre vil jeg hører om du er med så langt.
Vh Henrik13
Avatar billede henrik13 Nybegynder
28. maj 2003 - 20:37 #15
Jeg kan til sidst, når alt er gennemgået, sende dig de 2 mdb filer , så du kan se det virker.
Avatar billede henrik13 Nybegynder
28. maj 2003 - 20:40 #16
Jeg sidder og opbygger dem samtidig med jeg svarre dig. Bare læg din E-mail adresse og hvad access du kører. Ex. Access Xp
:o)
Avatar billede henrik13 Nybegynder
28. maj 2003 - 20:49 #17
Ordren til at slette den gamle tabel er:
DoCmd.DeleteObject acTable, "TblNyBy"
Den bør skrives ind inden importen foretages.
Vh Henrik
Avatar billede terry Ekspert
28. maj 2003 - 20:54 #18
roose>is it JUST a question of importing ALL the data as is, or is it necessary to for example UPDATE existing records etc? What I am thinking of is primary keys etc. If these are Autonumber fields then I think you have a problem and will have to redesign your dB!
Avatar billede henrik13 Nybegynder
28. maj 2003 - 21:18 #19
Tilsidst skal der ved opstarten, indskrives din opdatering, det gøres ved at vælge Makro ordren "Afspil kode" og her indskrives i dette tilfælde :
Nyhed()
Så er det hele opdateret.
Vh Henrik
Avatar billede henrik13 Nybegynder
28. maj 2003 - 21:20 #20
Ps ? Det er i "Autoexec" filen det skal indskrives.
Vh Henrik13
Avatar billede roose Nybegynder
28. maj 2003 - 21:33 #21
Super Henrik13 - det er skønt ! Tak for stor - og hurtig hjælp !
Avatar billede roose Nybegynder
28. maj 2003 - 21:37 #22
Henrik13 - du må meget gerne sende mig db'en: frederik@oevlisen.dk

Thanx !
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