Avatar billede steensommer Praktikant
29. december 2004 - 09:40 Der er 54 kommentarer og
2 løsninger

Access og Kalender

Hej

Jeg har i Excel lavet en aftalekalender (skabelon) med tider 08:00 - 16:30 med ½ timers opdeling og et frit felt under hver ½ time. Det er meningen at man skal have mulighed for at booke aftaler ca 3 måneder frem.
Data til Kalender-skabelonen skal skrives til og læses fra Access. Nu kommer så problemet:

Hvorledes kan tabellerne til opsamling af data konstrueres. Som jeg ser det drejer det sig jo om tusindevis af felter til opsamling af data - og det er jo nærmest et uoverskueligt projekt at gå i gang med. Hvorledes kan SQL koden (afviklet fra Excel) selv konstruere et manglende felt i Access.

vh Steen
Avatar billede mugs Novice
29. december 2004 - 09:43 #1
Prøv som udgangspunkt at sammenkæde din Excel fil med Access.

Åbn en ny tom Access database og i menuen Filer > Hent eksterne data > Sammenkæd finder du din Excelfil og sammenkæder. Excel vil nu blive hentet ind i Access som en sammenkædet tabel.
Avatar billede rbj_fp Nybegynder
29. december 2004 - 09:46 #2
Jeg vil anbefale at du bruger en tabel i formatet

DATO(DDMMÅÅÅÅ), TIDSPUNKT(TT:MM), TEKST

Teksten skal bruges til at gemme aftalen i.

Du skal så lave en sql som hedder
insert into DitTabelNavn(Dato, Tidspunkt, tekst) values("din dato", "din tid", "din tekst")

Dette vil oprette en post i din database. Værdierne burde du jo kunne aflæse i dit excel ark.
Avatar billede mugs Novice
29. december 2004 - 09:51 #3
Hvorfor i det hele taget arbejde i Excel?
For mig at se, er det en typisk databaseopgave, så hvorfor skrive til / og læse fra Access, kan spørgeren give nærmere oplysninger, vil det være nemmere at give et forslag.
Avatar billede steensommer Praktikant
29. december 2004 - 09:52 #4
-->mugs: Hvorledes kan det du foreslå hjælpe?
-->rbj fp: Den tabel konstruktion du foreslår hvorledes skal den "linkes" til alle de andre tabeller og i øvrigt drejer det sig om mange "konsulenter" der hver skal have egen kalender.
Avatar billede steensommer Praktikant
29. december 2004 - 09:55 #5
--mugs: Det primære arbejde er den konsekvens (ikke nødvendigvis god) af at jeg har lavet en del Excel koder men kun lidt i Access - jeg er da ellers fuldstændig enig! Men jeg anvender Excel som en "fremviser" af data fra access.
Avatar billede mugs Novice
29. december 2004 - 09:55 #6
Ved at linke til din excel-fil, har du jo data i Access. Du kan så lave forespørgsler / formularer til hver enkelt konsulent. Men igen: Hvorfor Excel?
Avatar billede rbj_fp Nybegynder
29. december 2004 - 09:56 #7
Det kommer jo meget an på hvilke tabeller du har med i din database.

hvor mange er mange???

For man kan jo lave flere forskellige løsningerne:

Den ene skal der bare tilføjes et konsulentID på tabellen, sådan at man kan identificere hvilken konsulent en given post drejer sig om. Alternativt kan man lave flere tabeller(1 for hver konsulent) og have en global list med tabelnavn, hvor så først slår op i den globalle liste og henter navnet på den tabel man ønsker at aflæse data fra.
Avatar billede steensommer Praktikant
29. december 2004 - 10:03 #8
-->rbj fp: Antallet er ikke klarlagt men i starten 30-50.
Avatar billede mugs Novice
29. december 2004 - 10:03 #9
Ved at linke (sammenkædning) vil alle ændringer i Access blive afspejlet i Excel og omvendt.
Avatar billede rbj_fp Nybegynder
29. december 2004 - 10:06 #10
Igen Det kommer jo lidt an på hvor meget data du regner med at der skal puttes i databasen. Hvis du regner med at hverdag skal alle konsulent have deres data fyldt ud, så ville jeg anbefale løsningen med global liste
Avatar billede steensommer Praktikant
29. december 2004 - 10:10 #11
-> Det her illustrerer vist meget godt hvorfor jeg ikke anvender access med mindre jeg er nødt til det (som nu). Kan du kort fortælle hvilke felter der skal placeres i databasen?
--> Jeg har forsøgt at sammenkæde excel og access men det er vist ikke så enkelt idet Excel bl.a. anvendes til præsentation af data og derfor er forsøgt opsat pænt fremfor ideelt.
Avatar billede rbj_fp Nybegynder
29. december 2004 - 10:18 #12
Uha da da.... det er jo meget svært bare at skrive ud fra ingenting.

Men jeg antager igen at for hver 30 minutter er der mulighed for at indtaste noget tekst.

Derfor vil jeg have en Tabel med DATO, TIDSPUNKT, TEKST
Avatar billede steensommer Praktikant
29. december 2004 - 10:23 #13
Altså i globallisten: konsulentID (telefonnr)
Datatabellen: KonsulentID, Dato, Tidspunkt, Tekst (men den konstruktion) giver vel ikke et tekstfelt for hver ½ time?
Avatar billede rbj_fp Nybegynder
29. december 2004 - 10:27 #14
Det er rigtig nok.

Jeg vil anvende flere datatabeller. faktisk 1 for hver konsulent....

Og det er rigtig nok at du ikke får et tekst felt for hver ½ time, du vil kun få et felt i datatabellen hver gang der er en oplysning.

Dette er en god ide, fordi at du så spare på dataene i tabellerne.
Avatar billede steensommer Praktikant
29. december 2004 - 10:30 #15
Jeg skal lige være med! Hvorledes sammenkæder du tabellen med: Data, Tidspunkt, Tekst med globallisten med konsulenter?
Avatar billede mugs Novice
29. december 2004 - 10:31 #16
"Jeg vil anvende flere datatabeller. faktisk 1 for hver konsulent...."

Det er vel ikke nødvendigt. Der kan laves forespørgsler der udvælger data for hver enkelt konsulent.

Skal databasen ligge på et netværk, kan der laves front-end, hvor konsulentens id er programmeret på forhånd i forespørgslerne. Disse front-end kan ligge på arbejdsstationernes C-drev for at spare netværkstrafik.
Avatar billede steensommer Praktikant
29. december 2004 - 10:34 #17
Umiddelbart skal databasen ikke anvendes af samtlige konsulenter men blot styres af 1 person så netværksadgang er næppe nødvendig!
Avatar billede rbj_fp Nybegynder
29. december 2004 - 10:34 #18
Mugs > Det er rigtig nok, men hvis vi antager at der kommer til at være de nævnt 30-50 konsulenter og hver dag bliver flydt godt ud, så kan det komme til blive en enorm datatabel, og det er sq ikke alt for godt i en access database(Læs: langsomme queries) og det er netop det jeg gerne vil undgå via det alternative løsnings forslag.
Avatar billede rbj_fp Nybegynder
29. december 2004 - 10:37 #19
Steen >

Mit forslag er at du har en tabel : GLOBALLISTE med flg. felter
ID      , KONSULENTID          , TABELNAVN
(auto)  , (KENDES i forvejen)  , Denne bygges

og for hver entry i denne tabel skal der bygges en Tabel som har samme navn som TABELNAVN... Dette er en større proces, men det hele kan laves via vba.
Avatar billede mugs Novice
29. december 2004 - 10:39 #20
rbj fp > Vi skal så vide om det er hver enkelt konsulent der skal eksporteres til Excel. I bekræftende fald, skal der så laves en eksport for hver enkelt konsulent.

Derfor hælder jeg mere til den løsning, at samle alle konsulenter i en enkelt tabel for at eksportere dem samlet. Tabellen bliver stor men i det lange løb tror jeg ikke på løsningen med en tabel for hver konsulent.
Avatar billede rbj_fp Nybegynder
29. december 2004 - 10:42 #21
mugs > Jeg ved at bare at store tabeller og access aldrig har været godt. Hvad er det ved løsningen med flere tabeller som du ikke tror på. Det anvendes jo ofte ved en specialisering i EER?
Avatar billede steensommer Praktikant
29. december 2004 - 10:47 #22
Det her er da vist en diskussion for eksperter!! Jeg er "desværre" nødt til at køre ud for at kigge efter en ny bil til fruen!
Hvis det er ok vender jeg tilbage senere!
vh Steen
Avatar billede rbj_fp Nybegynder
29. december 2004 - 10:48 #23
Bare gør det... :-D
Avatar billede mugs Novice
29. december 2004 - 11:02 #24
OK.
rbj fp > Jeg ingen dåelige erfaringer med store tabeller, heller ikke med mange mindre. Men når det drejer sig om at eksportere til Excel, mener jeg at een stor er at foretrække frem for flere små.
Avatar billede rbj_fp Nybegynder
29. december 2004 - 11:04 #25
Det kommer jo an på om der kun skal vises en af gangen...
Avatar billede mugs Novice
29. december 2004 - 11:08 #26
Hvis der kun skal vises een af gangen kan du jo blot eksportere forespørgslen i stedet med en parameterværdi.
Avatar billede rbj_fp Nybegynder
29. december 2004 - 11:12 #27
ja.... begge løsninger vil virke. Og selvfølge kan man jo anskue det ud fra synspunktet om at alle konsulenter skal have de samme typer af oplysningerne gemt, og derfor kunne man bruge en samlet liste. Men jeg tror på at hvis der komme mange poster, virkelig mange poster så er flere mindre en bedre løsning.
Avatar billede mugs Novice
29. december 2004 - 11:19 #28
OK - Vi er ikke enige, men lad mig slutte denne diskussion med en enkelt kommentar:

Access er ikke begrænset af antal poster som Excel er. Access er kun begrænset af den samlede størrelse af databasen. Jeg har som et forsøg engang lavet en database med over 1 million poster, og det fungerede perfekt. Det er klart, at antallet af poster indvirker på databasens hurtighed men man kan jo ikke få alt her i livet.
Avatar billede terry Ekspert
29. december 2004 - 12:52 #29
If the data is the same as is the case with having more than one consultant then I see NO point in having the data in multiple tables. Its going against the principles of ralational databases. And if indexes are used correctly then performance should be no issue.
Avatar billede steensommer Praktikant
29. december 2004 - 15:56 #30
Det lyder til at der er flertal for samle data i en tabel. Hvorledes skal felterne så se ud (jvf det jeg har skrevet):
KonsulentID, Dato, Tid, Text etc
Avatar billede mugs Novice
29. december 2004 - 16:40 #31
Du skal have de samme felter i Access som du har kolonner i Excel.
Avatar billede steensommer Praktikant
29. december 2004 - 17:00 #32
OK men jeg har ikke en kolonne med Konsulent. Excel viser en konsulent af gangen. Passer det på at skulle anvende en stor tabel?
Avatar billede mugs Novice
29. december 2004 - 17:14 #33
Hvordan viser Excel konsulent når du ikke har en kolonne?
Avatar billede rbj_fp Nybegynder
29. december 2004 - 17:15 #34
Den værdi du har for hver konsulent skal bare med ind i din tabel
Avatar billede steensommer Praktikant
29. december 2004 - 17:22 #35
Den er designet som en "papir" aftalekalender hvor man f.eks. kan anbringe ens navn øverst på kalendersiden. Øverst i Excel findes et felt med Konsulentnavn, og Tlf (konsulentID) men ikke i en separat kolonne.
Avatar billede rbj_fp Nybegynder
29. december 2004 - 17:28 #36
Så skal du sikkert til at lege lidt med noget streng formatering :-)
Avatar billede mugs Novice
29. december 2004 - 17:30 #37
Jeg hælder mere og mere til den løsning der hedder:

Skrot alt, og lav det i Access - Der er ingen grund til at benytte Excel. Hvis der endelig er brugere der absolut vil se det i Excel - Så lav en eksport.

Dette er en opgave for Access kun Access og ikke andet end Access.
Avatar billede steensommer Praktikant
29. december 2004 - 17:30 #38
Hvad mener du med det rbj fp
Avatar billede steensommer Praktikant
29. december 2004 - 17:32 #39
Ja mugs - det har du sikkert ret i MEN kalenderen er en del af en større løsning som fungerer fint på den beskrevne måde (uden hastighedsproblemer) så det tror jeg ikke er aktuelt!
Avatar billede rbj_fp Nybegynder
29. december 2004 - 17:32 #40
hvis du læser det du har stående i kolonne op i en streng i vba, og derefter

dim temp as string: right("din oplæste streng", 8) (p.s. det er ikke sikkert at syntaxen er helt sådan kan ikke lige huske det) men jeg vil dog oxo give mugs ret i at løsningen nok er lettere at lave i ren access.
Avatar billede rbj_fp Nybegynder
29. december 2004 - 17:34 #41
steensommer > Ok... Så må du jo bare til at slave lidt med at pille de oplysninger du har brug for ud af arket, og derefter sætte dem ind i databasen.

Smutter nu, men vender frygtligt tilbage imorgen :-D
Avatar billede steensommer Praktikant
29. december 2004 - 17:34 #42
...ja hvis man er vant til at arbejde med Access :0)
Avatar billede steensommer Praktikant
29. december 2004 - 17:35 #43
Endtil videre tak for hjælpen - jeg prøver og vender tilbage med point!
Avatar billede rbj_fp Nybegynder
30. december 2004 - 07:26 #44
Hvis du har behov for mere hjælp så skriver du bare...
Avatar billede steensommer Praktikant
01. januar 2005 - 08:12 #45
Hej og godt nytår til jer alle.
Det går planmæssigt med Kalenderen men mangler fortsat en del arbejde. Jeres hjælp var dog forudsætningen for at nå så vidt.
Hvis du svarer rbj_fp så synes jeg at i deler point - er det ok med jer?

vh Steen
Avatar billede mugs Novice
01. januar 2005 - 08:16 #46
Også et Godt Nytår her fra fodenden.

Hvad blev din endelige løsning?
Avatar billede steensommer Praktikant
01. januar 2005 - 08:17 #47
En samlet tabel :0)
Avatar billede mugs Novice
01. januar 2005 - 08:19 #48
OK - Du vender blot tilbage, hvis du har behov for yderligere hjælp. Jeg kan sende dig en lille db, der viser forskellige muligheder for integration mellem Access og Excel, blot læg din e-mail.
Avatar billede steensommer Praktikant
01. januar 2005 - 08:20 #49
Det var da et godt tilbud: steensommer@msn.com - tak for det!
Avatar billede mugs Novice
01. januar 2005 - 08:25 #50
Sendt.
Avatar billede steensommer Praktikant
01. januar 2005 - 08:38 #51
Det ser spændende ud. Når dette arbejde er endt tror jeg dog at jeg vil forsøge mig med programmering direkte i Access.
Avatar billede mugs Novice
01. januar 2005 - 08:42 #52
Der er ikke noget i vejen for, at du kan programmere Excel i Access. Som du ser af et af eksemplerne, sætter jeg anvendte kolonner i Excel til den korrekte bredde (Usedcolums.Autofit eller noget i den stil), du kan selv prøve videre ved at indspille en makro i Excel, og derefter paste relevant kodelinie ind i Access. Så begynder det først at blive sjovt.
Avatar billede steensommer Praktikant
01. januar 2005 - 08:46 #53
Ja det er også den beskrevne metoder jeg ofte anvender - det er meget lærerigt. Men af og til har man behov for lidt "igangsætter ydelse" fra mere kompetente programmører :0)
Avatar billede rbj_fp Nybegynder
03. januar 2005 - 07:50 #54
morgen.... og her er et svar.
Avatar billede steensommer Praktikant
03. januar 2005 - 08:15 #55
Godmorgen og tak for bidrag :0)
Avatar billede rbj_fp Nybegynder
03. januar 2005 - 08:16 #56
Det var så lidt.... ved flere problemer, så bare skriv
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