ZX Spectrum

maj 162010
 

Flattr this!

Tänkte visa hur man skriver ett sql-kommando för att åstadkomma samma sak som vi gjorde här.

Tanken är med andra ord att göra en ny tabell med fältnamnen ID, Namn, Regissör, År och Beskrivning som man kan se här.

Tabellen har primärnyckeln ID och ska ha autovärde så den räknar upp automatiskt från 0, 1, 2 osv.

Så här åstadkommer vi detta:

Skapa en ny databas eller ta en befintlig, spelar ingen roll och stå i huvudfönstret:

Tryck på verktygsmenyn och välj SQL som bilden visar.

I följande fönster som poppar upp står det ”Kommando att utföra”. Här ska vi ange vårt kommando för att skapa tabellen. Jag väljer att kalla den ”Filmdatabas_SQL” för enkelhetens skull.

Skriv in följande kommando:

eller kopiera in detta:

CREATE TABLE ”Filmdatabas_SQL” (
”ID” INTEGER IDENTITY,
”Namn” VarChar(50),
”Regissör” VarChar(50),
”År” VarChar(50),
”Beskrivning” LongVarChar,
PRIMARY KEY (”ID”)
);

Tryck sen på ”Utför” för att köra kommandot.

Man ser tydligt om kommandot har fungerat som bilden visar. Är det någon felstavning eller fel kommando så blir det ett felmeddelande istället.

När detta är gjort så kan man stänga fönstret. Gå sen upp i menyn ”Visa” och välj ”Uppdatera tabeller” och tabellen kommer att dyka upp i huvudfönstret.

Högerklicka på tabellen och välj ”redigera” för att se hur fälten blev i tabellen.

Som ni kan se så har samtliga fält skapats som vi ville precis som när vi skapade tabellen via guiden. Notera även dom fälten jag ringat in. Fältet ”ID” har en nyckel till vänster om sig, alltså en primär nyckel och dessutom är AutoVärde satt till ”Ja”.

Förklaring:

CREATE TABLE ”Filmdatabas_SQL” (

Här skapar vi tabellen Filmdatabas_SQL. Efter tabellnamnet så börjar fältnamnen med ett parentes. Efter sista fältet är inskrivet så blir det slutparentes.

”ID” INTEGER IDENTITY,

Här skapar vi fältet ID som ska vara ett numeriskt fält, alltså sätter vi INTEGER. Nyckeln är inte satt än men ”IDENTITY” gör att AutoValue sätts till ja. Dessutom ska det vara ett kommatecken efter varje fältnamn så i detta fallet sätts kommatecknet efter IDENTITY.

”Namn” VarChar(50),
”Regissör” VarChar(50),
”År” VarChar(50),

Fältnamnen ”Namn”, ”Regissör” och ”År skapas och här är det character som gäller, alltså bokstäver och jag har satt att namnet maximalt får innehålla 50 tecken.

”Beskrivning” LongVarChar,

Fältnamnet ”Beskrivning” skapas och här är det LongVarChar som är satt. Från början så kunde VarChar bara innehålla 255 tecken medans LongVarChar klarade 32700 tecken. Nu klarar dock VarChar av 32672 tecken så det spelar ingen roll för denna saken.

Förklaringen på detta går jag inte in på men man kan läsa mer här.

PRIMARY KEY (”ID”)

Här sätter vi att fältet ”ID” ska vara en primär nyckel.

Sen avslutas det hela med en slutparentes och semikolon.

maj 152010
 

Flattr this!

Nu ska jag visa hur man kopplar våra tabeller med varandra via ett formulär. Tabellerna och relationerna skapade vi här.

Välj ”Formulär”  i Base och sen ”Skapa formulär med hjälp av guiden”.

Här har vi nu tre olika tabeller att välja mellan. Vi väljer filmtabellen (i mitt fall döpte jag den till Filmtabell för enkelhetens skull) som agerar som huvudtabell och därför blir huvudformulär. Välj fälten Filmnamn och År och tryck ”Nästa”.

Bocka i rutan ”Lägg till underordnat formulär” och välj ”FilmGenre”. Genre visas inte för att filmtabellen inte har någon relation dit utan vi drog en linje mellan FilmId i Filmtabellen och FilmID i FilmGenre. Tryck sen ”Nästa”.

Underformuläret blir i detta fallet FilmGenre eftersom det är där datan vi lägger in kommer att hamna. Välj att flytta över FilmID i formuläret. Detta blir den kompletta kopplingen mellan Filmtabellen och FilmGenre. Tryck ”Nästa”.

Välj att trycka på alternativen jag har markerat. I första fallet fungerar egentligen alternativen 1, 2 och 4. När det gäller det underordnade formuläret så vill vi ha det tabelliknande . Tryck ”Nästa”.

Punkt 6 gör vi ingenting med utan trycker nästa. Punkt 7 är bara rent grafiskt så tryck på ”nästa” när detta är gjort. Välj ett bra namn på formuläret i punkt 8 och tryck ”Färdigställ”.

Som ni kan se så har vi ett bristfälligt underformulär där bara FilmId finns. Denna är fullt komplett kopplad till Filmtabellen som ni kan se på denna bild:

Nu är det kopplingen mellan FilmGenre- och Genretabellen som ska fixas och så här gör man:

Stäng formuläret och gå till Formulär i huvudfönstret och välj där att högerklicka på vårt formulär och välj ”Redigera”.

Nu när vi är i designläget så ska vi fixa en kolumn från Genre-tabellen. Högerklicka till höger om FilmID och välj ”Infoga kolumn”. Välj sen ”listruta” och det kommer att se ut så här:

Högerklicka nu på ”Listruta 1” och välj ”Kolumn”.  Detta fönster kommer visas:

Fönstret innehåller 3 olika flikar, allmänt, data och händelser. Vi fokuserar mest på datafliken, men vi kan ändra etiketten under allmänt så det ser lite snyggare ut. Ändra till Genre istället för ”Listruta 1”.

Gå sen till datafliken och ändra till detta:

”Datafält” ska ändras till ”GenreID”, ”typ av listinnehåll” till sql och sen den allra viktigaste, Listinnehåll. Denna kommer att visa alternativen som går att välja mellan, i vårt fall action, komedi m.m.

Jag fick inte med hela sql-frågan men det ska stå:

SELECT ”Genre”, ”GenreID” FROM ”Genretabell”

Ta notis om att Genre står före GenreID och detta måste vara i denna ordning för annars fungerar det inte. Första fältet anger vad som går att välja mellan, andra fältet är kopplingen till Genredatabasen.

Själva namnen som står här baseras helt och hållet till vad ni har döpt tabellerna till. I mitt fall valde jag Genretabell för att man lätt ska veta att det är en tabell det rör sig om.

Tryck sen på denna knappen för att knappa in uppgifter i databasen:

Ser väl inte så jättesnyggt ut men det fungerar.

Skriv in en film och år och tryck sen under ”Genre” för att välja genre. Man kan välja bland dom som är inskrivna i genretabellen.

Det som inte är speciellt bra här är att när man trycker på underformuläret så blir det i fokus och alltså går det inte att skriva in en ny post i huvudformuläret. Tryck därför någonstans på det beige området för att det ska få fokus igen och tryck sen på pilarna längst ner för att skriva in en ny post.

Så här ser det ut i FilmGenre för min del nu efter att ha knappat in några filmer:

Som ni ser så har jag knappat in 4 filmer från 0-3. Film 0 har två genrer, 0 och 1. I mitt fall betyder detta filmen Dödligt vapen som har FilmID 0. Filmen är en actionkomedi, action fick GenreID 0 och komedi GenreID 1.

Film nummer 2 har FilmID 1 och är en actionfilm osv. Denna tabell matas på för varje ny post man lägger in.

OBS!! Notera att om man mixtrar för mycket med tabeller och kopplingar m.m. så kan det bli något problem på vägen som är oåterkallerligt. I min strävan att skriva detta höll jag på att ändra lite här och där och till slut fungerade inte filmtabellen som den skulle och det var omöjligt att komma ur läget. Mitt val var därför att skapa filmtabellen på nytt för att allt skulle bli normalt igen. För att skapa denna igen så måste man ta bort kopplingen under Verktyg/Relationer.

maj 152010
 

Flattr this!

Nu har vi kommit till punkten då Base knäcker Calc när det gäller databaser.

Vår uppgift är fortfarande att jobba med en filmdatabas. Eftersom det kan bli lite störningar med att ha inknappade data i en tabell så väljer jag att göra en helt ny databas.

Vi vill ha ett till fält i databasen som heter Genre. Kan lika gärna vara skådespelare. Problemet är att en film kan ha flera genrer och en film brukar ha fler än en skådespelare. 😉

Skulle vi nu göra en tabell med fältnamnet Genre så går det bara att knappa in en genrer i varje ruta och därför fungerar det inte.

Så här går vi till väga:

Skapa dessa tabeller på samma sätt som vi gjorde här:

Tabell 1:

Tabell 2 (Här ska alla genrer såsom action, skräck m.m. skrivas in):

Glöm inte i tabell 1 och 2 att sätta autovärde till ja vid FilmID och GenreID.

Tabell 3 (denna tabell ska lagra kopplingen mellan filmer och dess genrer):

Notera i denna tabell att vi har två nycklar. Dessa nycklar är inte primära utan ”främmande” nycklar, dvs. dom är inte unika. FilmID ska exempelvis kunna ha samma nummer i flera poster.

För att skapa främmande nycklar, i detta fallet två fält så markera FilmID genom att trycka där nyckeln visas på bilden. Håll sen in ctrl-knappen på tangentbordet och markera sen där den andra nyckeln visas till vänster om GenreID. Nu när både FilmID och GenreID är markerade så högerklicka där nyckeln visas och välj ”Primärnyckel” så visas nycklarna på samma sätt som på bilden ovan.

Markera sen en av nycklarna och högerklicka så ser ni att ”primärnyckel” inte är ibockad, alltså är det ingen primär nyckel utan främmande nyckel.

Nu har vi dessa tabeller:

Nästa steg är att skapa kopplingar mellan dessa tabeller. Gå upp i menyn Verktyg och välj Relationer. Välj att lägga till samtliga tabeller. Dessa hamnar nu som små rutor där man kan flytta på dom hur man vill.

Vi ska nu fokusera oss på FilmGenre.

Markera FilmID i tabellen FilmGenre och dra den till FilmID i Filmtabellen.

Markera GenreID i tabellen FilmGenre och dra den till GenreID i Genretabellen och resultatet blir detta:

Här kan vi se att det står 1 på ena sidan av strecket och ”n” på andra, detta betyder ”en till många”-relation. Skulle vi istället dra från Filmtabellen till FilmGenre så blir resultatet ”en till en”-relation.

Exempel på hur detta fungerar.

Filmen Dödligt Vapen är en actionkomedi och så här kommer det att se ut:

Filmtabellen innehåller en film som heter Dödligt Vapen och som har FilmID 0.

Genretabellen innehåller Action som har GenreID 0 och Komedi som har GenreID 1.

FilmGenre kommer härmed att visa detta:

För att preparera inför del 2 av guiden så skriv in lite data i genre-tabellen.

Nu har vi gjort en relationsdatabas och i del 2 kommer jag att visa hur vi gör ett formulär så det blir smidigt att knappa in uppgifterna.

Skapa formulär till vår relationsdatabas (del 2 av 2)

maj 152010
 

Flattr this!

Efter att hållt på i över en vecka med att studera hur en relationsdatabas fungerar i OpenOffice Base så har jag äntligen lyckats lösa problemet och kommer att delge er alla hur man gör.

Jag har använt många källor för att förstå mig på detta, främst har jag kollat i openoffice.org forum efter hjälp och en som heter Drew Jensen har haft ett exempel som heter movies_2.odb som jag hittade här.

Även om man får ett färdigt exempel så är det ett aber att förstå sig på det och verkligen veta hur det fungerar och då speciellt när man jobbar i formuläret. Det finns undermenyer m.m. och jag fick granska en massa olika kontroller.

Jag kommer att skriva på ett överpedagogiskt vis för att alla ska kunna hänga med. Eftersom detta är så komplext så gör jag det i två delar, ett där jag visar hur man skapar relationsdatabasen och ett där jag visar hur man skapar formuläret.

maj 092010
 

Flattr this!

Ibland kan det vara bra att kunna skriva ut ens databas. Man kan skräddarsy designen på rapporten hur man vill. Jag kommer nu att visa hur detta går till och kommer att använda vår filmdatabas som exempel.

Välj ”Rapporter” i huvudfönstret och tryck sen på ”Skapa rapport med hjälp av guiden”:

och man kommer till punkt 1. Där väljs vilken tabell som ska användas och vilka fält som ska vara med i rapporten. Notera att resultatet visas på ett bra sätt i bakomvarande fönster. Vi måste inte använda en tabell för uppgiften utan kan lika gärna använda sökningen vi gjorde här. Detta betyder alltså att jag kan använda tabellen ”Filmer” eller sökningen ”Sökning_Filmer” att jobba med, den senare med bara Alfred Hitchcock-filmer.

Tryck ”Nästa” för att komma till punkt 2.

Här väljer man etiketter på fälten om man önskar ha andra än de befintliga. Dessa kommer alltså att visas på pappret när det skrivs ut. Tryck ”Nästa”.

Under punkt 3 kan man gruppera olika fält. Testa er fram och se resultatet direkt i bakomvarande fönster. Tryck ”Nästa” när ni är klara för att komma till punkt 4.

Här väljer man vilket fält listan ska sorteras efter. Jag väljer ”Namn” för jag vill ha filmerna i bokstavsordning. Tryck ”Nästa”.

Punkt 5 innehåller layouter av olika slag. Testa er fram och se vilket som passar bäst. Man kan även ha liggande eller stående orientering av pappret. Har man många kolumner så är det att rekommendera liggande för att få med allt. Tryck ”Nästa”.

Under punkt 6 kan man ändra rapportnamnet till valfritt (jag väljer att ändra till Rapport_Filmer för att lättare hålla ordning på namnen) och välja om rapporten ska vara dynamisk eller statisk. Väljer man statisk så ändras inte rapporten om man ändrar eller lägger till en post i en tabell. Det mest användbara är dynamisk för att få en aktuell rapport. Tryck på ”Färdigställ” och man har en fin rapport som går att skriva ut.

dessutom finns det en trevlig ikon under Rapporter som man kan dubbelklicka på om man vill skriva ut rapporten vid senare tillfälle. Vill man ändra på layouten så högerklickar man på ikonen och väljer ”redigera”.

maj 082010
 

Flattr this!

Sist visade jag om hur man gjorde en sökning via guiden och detta är ett bra sätt att göra en sökning. Ändå bättre är om man lär sig att använda sql-språket för att skapa frågan. Man kan säga att det är en backend till guiden vi använde här. Skillnaden är att möjligheterna är obegränsade om man kan skriva frågan manuellt.

Detta är med annat ord ett programmeringsspråk där SQL står för ”Structured Query Language” och med detta menas att man kan göra de mesta, dvs. skapa tabeller och frågor till dessa.

Allt jag visar kommer att baseras på ett exempel så det inte finns några oklarheter. Dessutom förklarar jag rad för rad vad koden gör.

Jag tänker visa exakt samma sökning som jag gjorde med denna guide.

Vi hade med annat ord en databas där vi ville söka efter alla filmer i databasen som hade Alfred Hitchcock som regissör men vi ville utesluta fåglarna. Dessutom ska listan vi får fram ordnas så Namn visas i bokstavsordning.

Så här går vi till väga. Markera ”Sökningar” till vänster och välj alternativet ”Skapa sökning i SQL-vy”:

och man kommer till ett blankt fönster:

Skriv in denna kod här:

SELECT ”Namn”, ”Regissör”, ”År”, ”Beskrivning” FROM ”Filmer”
WHERE ”Regissör”=’Alfred Hitchcock’
AND ”Namn”<>’Fåglarna’
ORDER BY ”Namn”

Notera att allting visas med olika färger. Kommandon visas med blå text och allt annat med orange färg, detta för att underlätta vid inskrivandet. Skulle man skriva fel någonstans så är det lättare att felsöka.

och tryck på denna knapp efteråt för att utföra sökningen:

Resultatet blir precis samma som när vi använde guiden. Skillnaden är att vi har skrivit in fyra rader kod istället.

SELECT ”Namn”, ”Regissör”, ”År”, ”Beskrivning” FROM ”Filmer”

Denna rad säger att vi vill ha fälten Namn, Regissör, År och Beskrivning med i Sökresultatet och att det är tabellen Filmer som gäller. Glöm inte att ha kommatecken mellan varje fältnamn.

WHERE ”Regissör”=’Alfred Hitchcock’

Detta är första kriteriet vi vill ha. Regissören ska vara Alfred Hitchcock. Notera enkelfnuttarna kring namnet.

AND ”Namn”<>’Fåglarna’

Det andra kriteriet är att vi inte vill få med filmen Fåglarna i sökningen. Notera <> som betyder skilt från, alltså skilt från Fåglarna.

ORDER BY ”Namn”

Slutligen vill vi sortera listan efter filmerna från A-Ö och väljer då fältnamnet Namn.

ORDER BY Namn DESC

Denna rad skulle få listan sorterad från Ö-A. DESC står för Descending (fallande ordning). Vi hade lika gärna kunna skriva ASC som står för ascending (stigande ordning) men det är inte nödvändigt. Skriver man inget så blir det automatiskt stigande ordning.

Som regel är det bra att sätta dubbelfnuttar kring fältnamnen och enkelfnuttar kring sökkriterier. Enkelfnuttarna måste finnas men dubbelfnuttarna sätts dit automatiskt så fort man sparat sökningen.

Stäng nu frågan och spara med lämpligt namn och vi har två olika sökningar mot vår databas:

För att redigera frågan så är det bara att högerklicka på ikonen och välja antingen ”redigera” eller ”redigera i sql-vy”. Väljer vi ”redigera” så kommer vi till den hederliga grafiska vyn som jag visade med guiden:

Väljer vi istället ”redigera i sql-vy” så kommer vi tillbaks till vår kod och kan ändra där istället.

maj 082010
 

Flattr this!

Nu har vi kommit till ett läge där vi ska skapa en fråga mot vår databas, något som gör en databas extra kraftfull. Tänk er att ni har en databas med över 1000 poster. Det blir ohållbart att försöka hitta det man vill ha utan datorns hjälp och då har vi extra kraftfulla verktyg i form av antingen en guide eller en sql-fråga (som jag kommer till vid senare tillfälle). Just nu koncentrerar vi oss på en fråga i guide-form.

Vi håller oss till vår filmdatabas som jag tog upp i denna bloggen:

Se även till att ha lite data i tabellen för att frågan ska ge lite fler resultat. Jag har lagt in en hel del i min.

Jag la in data genom att dubbelklicka på tabellen men det går lika bra via formuläret som vi gjorde här.

Notera att jag lagt flera filmer med Alfred Hitchcock, detta för att få bättre sökresultat.

Tryck nu på ”Sökningar” till vänster och välj ”Skapa sökning med hjälp av guiden”

Då får man upp denna ruta:

Välj att flytta över samtliga fält utan ID från vänster till höger sida och tryck ”Nästa”.

Jag tänkte att vi skulle ge oss på en sökning över vissa filmer som Alfred Hitchcock har gjort. Eftersom det är sorteringsordningen som gäller här så ger inte sortering över regissör något utan vi tar filmernas namn istället. Välj därför Filmer.Namn och i stigande ordning som det redan står. Filmer står för tabellen ”Filmer” och Namn står för fältnamnet ”Namn”, alltså Filmer.Namn. Tryck sen ”Nästa”.

Här har jag valt att Regissören ska vara Alfred Hitchcock och att filmen fåglarna inte ska visas i sökningen. Här kan man välja vilka sökalternativ man vill, bara fantasin sätter gränsen. Tryck ”Nästa” för att komma till punkt 4.

Under punkt 4 kan vi inte göra något och eftersom vi slopar denna punkt så försvinner även punkt 5-6 och när man trycker på ”Nästa” så kommer man till punkt 7 där man kan sätta alias på fältnamnen om det behövs. Detta är valfritt och det går att skriva vad man vill.

Tryck ”Nästa” för att komma till punkt 8. Här visas en sammanfattning över sökningen.

Notera att det står ”Sökvillkor: Regissör är lika med ’Alfred Hitchcock’ och Namn är inte lika med ’Fåglarna'”

Tryck på ”Färdigställ” för att sökningen ska ske. I mitt fall blir sökresultatet detta:

Som man kan se så har vi tre filmer med Alfred Hitchcock uppradade. Fåglarna utesluts från resultatet

Som ni kan se så har vi fått upp en sökikon till frågan vi ställde under huvudfönstret:

För att visa sökresultatet igen så är det bara att dubbelklicka på filen eller så kan man högerklicka på den och välja redigera och får då upp detta fönster:

Här är det fritt att ändra sökresultaten. Genom att t.ex. ta bort innehållet i fältet <>’Fåglarna’ så får vi även med denna film i resultatet nästa gång. <> betyder för övrigt ”skilt från”.

Man kan fortsätta att fylla i kriterier där det står ”eller” för att få ändå mer specifikt innehåll i sökresultatet.

maj 032010
 

Flattr this!

Jag tänkte visa hur man gör ett enkelt formulär och som grund till detta använder jag filmdatabasen jag visade här:

Skapa den första tabellen i OOo Base

Själv la jag databasen under Dokument i hemmappen där jag döpte den till ”Filmdatabas.odb”. Det är bara att dubbelklicka på den via någon filbläddrare så startas databasen automatiskt.

Nu väljer vi istället att göra ett formulär baserat på tabellen vi gjorde. Se därför till att det finns en tabell tillgänglig innan:

Därefter markerar man ”Formulär” till vänster och får då upp dessa alternativ:

Välj ”Skapa formulär med hjälp av guiden”.

I följande fönster får man frågan vilken tabell och vilka fält som ska användas. Eftersom jag valde att tabellen skulle heta ”Filmer” och jag inte har någon annan tabell så finns det inga valmöjligheter här. Däremot kan jag ställa mig frågan vilka av fälten ID, Namn, Regissör och Beskrivning som ska användas.

Om ni kom ihåg så var ID en nyckel som vi satte till autovärde för att den skulle bli unik med början 0,1,2 osv. Eftersom man inte kan skriva in i denna så finns det ingen anledning att ha med den i formuläret heller. Vi väljer således att flytta över Namn, Regissör och Beskrivning till högersidan via pilarna i mitten.

Tryck sen på ”Nästa” för att komma till punkt två.

Eftersom vi bara har en tabell tillgänglig så kan vi inte göra något med underformulär, dessutom försvinner även möjligheten till att påverka punkt 3-4 utan här trycker vi på ”Nästa” och kommer då fram till punkt 5 som är ”Placera kontroller”.

Här finns fyra alternativ hur ”huvudformuläret” ska se ut, alltså vårt formulär. Testa att tryck på dessa och kolla hur utseendet blir på bakomvarande fönster.

När utseendet är till belåtenhet så tryck ”Nästa” (notera att detta är ett enkelt formulär och att man kan göra betydligt mer åt det visuella senare om man skulle vilja).

Punkt 6 ser bra ut som den är. Det är mest frågor om data får ändras m.m.  utan vi trycker ”nästa för att komma till punkt 7.

Här kan man ändra färgen på bakgrunden om man vill. Den beige färgen kanske inte uppskattas av alla utan man har ett antal färger att välja mellan. Dessutom hur man vill ha ”fältinramningen”. Även här ser man direkt hur resultatet blir i underliggande fönster. Tryck ”nästa” när allt är klart.

I punkt 8 får man frågan vad formuläret ska heta och dessutom om man vill arbeta eller modifiera formuläret. Skriv in ett passande namn på formuläret så det framgår tydligt vad formuläret gör. Jag väljer namnet ”Filmformulär” som duger för mig. Välj sen ”Modifiera formuläret” och tryck ”Färdigställ”.

Nu har vi följande fönster framme:

Jag har markerat en knapp som är väldigt användbar. Den anger om fönstret är i modifieringsläge eller arbetsläge.

Modifieringsläge: Om man vill flytta kontroller eller lägga till någon egen design.

Arbetsläge: Helt enkelt att knappa in data i tabellen.

När man väljer arbetsläge så förstår man varför fältet ID inte ska vara med i formuläret utan förpassas i bakgrunden.

Kommer ta upp mer om att arbeta med design i formulär vid senare tillfälle.

Stäng nu formuläret med krysset uppe till höger, har man ändrat något i formuläret så fås frågan om man ska spara ändringarna.

Nu har det tillkommit ett formulär i följande fönster:

Dubbelklickar man på formuläret så kommer man i arbetsläget. Högerklickar man på den och väljer ”redigera” så kommer man i modifieringsläget.

maj 022010
 

Flattr this!

Ibland kan det hända att man redan har lagt ner en massa jobb på att skriva in ett register i Calc. Var med om detta själv och så här ser mitt register ut i Calc:

Detta är ett register över bouppteckningar som jag har till min släktforskning. Dessa skulle jag vilja föra över till Base-delen för att jobba vidare där istället. Notera att på första raden står det Död, Förnamn, Efternamn osv. Detta motsvarar fältnamnen så har man inte en rad som liknar fältnamn så infoga en rad längst upp i bladet och skriv in passande namn som fältnamn i den nya tabellen.

Nu ska vi markera alla poster som vi vill ha med i den nya tabellen. För min del handlar det om att markera från post 1 till 3579. Notera här att det inte går att markera självaste kolumnena A till F. Testade detta själv och programmet hängde sig efter ett tag. Lättaste sättet är att markera A1 och sen gå längst ner till sista posten och hålla nere shift-knappen på tangentbordet och trycka på sista postens sista kolumn som innehåller data, i mitt fall F3579. Sen kan man högerklicka och välja kopiera eller ctrl+c om man föredrar den varianten.

Öppna sen OOo Base och välj antingen ny databas eller öppna befintlig beroende på vad man föredrar. Inom det område jag markerat högerklickar man och väljer klistra in:

Välj sedan ett passande namn på vad tabellen ska heta och bocka i nedersta rutan för att skapa en primärnyckel.

Tryck ”nästa”.

Nu väljer man vilka fält som ska vara med. Fälten som ska vara med ska flyttas till höger via pilarna i mitten.

Tryck sen ”nästa”.

Nu ska man välja fälttyp på dom olika fältnamnen precis som när vi skapade vår första tabell. Notera att ett fält har tillkommit som heter ID och har en nyckel till vänster om sig. Dessutom är fälttypen ”integer” på ID. Vill man så kan man ändra fälttypen för respektive fältnamn.

Alla fältnamn i nuläget har fälttypen ”Text[VarChar]” som innebär att man kan skriva in 255 tecken maximalt, dessutom är detta standard. Vill man så kan man ändra detta till något mer passande. Skulle kunna tänka mig att 20 tecken verkar mer rimligt på dom flesta fältnamnen i detta fallet och det är bara att ändra under ”Längd”.

När allt är ändrat så tryck på ”Färdigställ”.

Nu har vi fått upp en tabell som innehåller samma data som när vi hade det i Calc. En sak till behöver dock göras och det är att göra så att nyckeln ID uppdateras automatiskt med nytt nummer när man knappar in en ny post. Detta gör vi genom att högerklicka på tabellen och välja ”redigera”. Där markerar vi ”ID” och väljer ”Autovärde Ja”

maj 022010
 

Flattr this!

OpenOffice Base är inte installerat från start i Ubuntu utan man går lätt in i Synaptic och installerar denna. Sök efter openoffice.org-base eller genom att skriva följande i en terminal:

sudo apt-get install openoffice.org-base

När programmet väl är installerat så ligger det under Program/Kontor.

Innan vi gör en tabell så kan det vara bra att veta hur en tabell fungerar. En tabell innehåller ”Fält” och ”Poster”. Denna skiss ger en bra bild över hur detta ser ut:

En post kan med annat ord vara en film, mailadress m.m. med medföljande attribut. En post går alltid horisontellt och ett fält går alltid vertikalt.

Vid uppstart av Base får man upp frågan om man vill öppna eller skapa en ny databas. Välj skapa en ny och tryck nästa. Vid nästa fråga så välj att databasen ska registreras, alltså bara tryck på Slutför och välj en plats att spara databasen på.

Denna bild kommer nu upp och det är här man jobbar ifrån.

Till vänster har vi Tabeller, Sökningar, Formulär och Rapporter. Med ”Sökningar” jobbar man med SQL-frågor mot databasen, ”Formulär” för att göra en fräckare design på inknappandet istället för att bara skriva in allting direkt i databasen. ”Rapporter” gör så man kan få utskrift av databasen i pappersform (Även här kan man designa hur man vill ha utskriften. Finns färdiga mallar att använda om man nu inte vill göra en egen snygg variant).

Det är den första som vi koncentrerar oss på i nuläget som heter Tabeller.

När tabeller är markerad så finns dessa alternativ att välja mellan:

Här tycker jag helt klart att ”skapa tabell i designvy” är enklast att jobba med. Guider i all ära men just i detta fallet är designvyn bäst.

Nu kommer det roliga att knappa in olika ”fältnamn”. Här gäller det att vara noggrann och tänka innan vad man vill ha med i databasen. Som exempel väljer jag att göra en databas som handlar om filmer.

Så här ser designvyn ut:

Rent spontant vill jag ha fältnamnen:

ID (måste finnas), Namn, Regissör, År, Beskrivning

ID talar om att posten är unik (i en databas får inte två poster se likadana ut och därför har man en räknare som räknar upp från 0,1,2 osv.) Så här ser det ut när fältnamnen är inknappade:

I vänstra kolumnen knappar man in fältnamnen (namn, beskrivning osv) och i den andra kolumnen (Fälttyp) väljs vad det är för typ av fält och här har vi en hel del att välja mellan. Som standard väljs ”Text [VarChar]” och då kan man skriva vad som helst när man väl knappar in data. Vill man begränsa detta så sätter man exempelvis datum eller tid om det handlar om dessa.

Det som är extra intressant här är att jag satt fältnamnet ID till Integer. Detta beror på att det är ett fält där jag inte vill att man ska kunna skriva i. Notera att jag satt Autovärde till ”Ja” för att uppräkning ska ske automatiskt och dessutom har en trevlig nyckel poppat upp till vänster om ID som tydligt visar att detta är en nyckel som gör varje post unik. En tabell i en databas får aldrig ha två poster som ser likadana ut, därför är detta viktigt. Personligen tycker jag det är snyggast att börja med att knappa in ID men det är inte nödvändigt eftersom man kan möblera om fälten hur man vill när man väl har gjort ett formulär.

När alla fältnamnen är inmatade så kan man stänga tabellen och får då upp frågan vad man vill spara tabellen som. Välj ett namn som är logiskt och är specifik för just denna tabell. Jag väljer ”Filmer”.

Nu kommer man till förstasidan igen med Tabeller, Sökningar osv. Där markeras Tabeller igen och som ni ser så har det tillkommit en tabell:

Dubbelklicka på denna tabell och testa sen att knappa in lite data. Notera nu att fältet ID inte går att skriva i utan det står auto. Det är bara att trycka tab för att komma till nästa fält i posten. Alla data sparas automatiskt så fort det knappas in.