Avatar billede bms122 Nybegynder
10. oktober 2003 - 21:50 Der er 40 kommentarer og
1 løsning

Søg i flere tabeller

haløjsa alle sammen.

Så er jeg her igen.
Nu har jeg kigget og læst en del om databaser og jeg er dødtræt af alle de eksempler med byer og postnumre.
Jeg har i min database flere tabeller (i øjebliket kun 3, men ender op med en del tror jeg), i hver tabel har jeg en kolonne jeg i mangel af bedre har kaldt søgeord. Når jeg om en 3-4 år er færdig med at taste alt ind, ville jeg gerne kunne bruge databasen til at søge i, dvs den skal søge efter et nummer eller et ord i alle tabeller.
Kan man det, eller skal jeg bare tilbage til papir og blyant.?
Nogen havde godt advaret mig om at det ikke var så nemt at lave en database, øvvvv hvor har de ret.
Avatar billede lap Nybegynder
10. oktober 2003 - 21:52 #1
select * from tabel1 where sogeord like '%SOG%'
UNION
select * from tabel2 where sogeord like '%SOG%'
UNION
select * from tabel3 where sogeord like '%SOG%'
UNION
select * from tabel4 where sogeord like '%SOG%'
UNION
select * from tabel5 where sogeord like '%SOG%'

og din database er lavet forkert, hvis det skal være løsningen - lav en forespørgsel som hægter alle tabellerne sammen - og søg i den i stedet for.
Avatar billede henrik13 Nybegynder
10. oktober 2003 - 21:52 #2
Via en forespørgsel
Avatar billede mugs Novice
10. oktober 2003 - 21:53 #3
En søgefunktion som beskrevet, er meget kompleks at lave. Det nemmeste er at lave en forespørgsel med alle tabeller og derefter en formular. Du kan så lave en VBA-kode der søger i et felt, og hvis søgningen er negativ kalder den en ny VBA-kode der søger i næste felt. Men som sagt er det ret komplakst at lave, og jeg har absolut ikke mod på det iaften.
Avatar billede henrik13 Nybegynder
10. oktober 2003 - 21:54 #4
I forespørgslen tilføjer du bare de tabeller du vil have med, samt relatere dem.
Avatar billede bms122 Nybegynder
10. oktober 2003 - 21:58 #5
Det var desvæære også det jeg selv var kommet frem til at det var bøvlet.
Jeg har prøvet at lavet en forespørgelse, men den vil kun bruge fra den ene tabel.
lap>>Hvordan i alverden laver jeg en forspørgelse der hægter alle tabeller sammen?
mugs>> Det skulle heller ikke nødvendigvis være i aften. Jeg er bare nået til det punkt hvor jeg er kommet til at tænke på om jeg overhovedet laver det her rigtigt. Jeg "gider" jo ikke taste alle mine dataer ind og så bagefter finde ud af at det er helt forkert.
Avatar billede lap Nybegynder
10. oktober 2003 - 21:59 #6
problemet er formentlig, at du ikke kan relatere tabellerne. Jeg tror ikke, at databasens tabeller egentlig relaterer sig til hinanden, men hver især indeholder uafhængige data (ligesom en række uafhængige regneark).

Du skal derfor lave en forespørgsel, som union'er alle tabeller (uden relationer) - og søger i den.
Avatar billede lap Nybegynder
10. oktober 2003 - 21:59 #7
det kan guiden nok ikke lave - vent...
Avatar billede bms122 Nybegynder
10. oktober 2003 - 21:59 #8
Jeg kan altså ikke se nogen relation mellem mine tabeller. Har stirret mig helt blind på postnummer og by og sådan hænger mit ikke sammen. :(
Avatar billede henrik13 Nybegynder
10. oktober 2003 - 22:04 #9
Hvad hedder de to tabeller du vil søge i, og hvad søger du efter. :o)
Avatar billede lap Nybegynder
10. oktober 2003 - 22:04 #10
via forespørgsel
opret forespørgsel i designvisning
indsæt f.eks. 2 tabeller
vis sql

skriv din sql - her er et eksempel:

SELECT *
FROM Adresseliste
UNION SELECT *
FROM Adresseliste2;
Avatar billede bms122 Nybegynder
10. oktober 2003 - 22:04 #11
lap>> OK jeg venter.
Avatar billede lap Nybegynder
10. oktober 2003 - 22:05 #12
ventetid er ovre :-)- se ovenfor
Avatar billede bms122 Nybegynder
10. oktober 2003 - 22:05 #13
henrik13>>Lige nu har jeg prøvet i dem der hedder MPL og EAS, men med tiden vil der jo komme flere til.
Avatar billede henrik13 Nybegynder
10. oktober 2003 - 22:06 #14
og hvad søger du efter. :o)
Avatar billede lap Nybegynder
10. oktober 2003 - 22:07 #15
bms122>> jeg tror altså fortsat, at du opretter din database forkert - prøv at forklare hvad det er, du har tænkt dig at lægge i databasen?
Avatar billede bms122 Nybegynder
10. oktober 2003 - 22:15 #16
lap>> Gik ikke så godt med sql taler ikke sproget.
Jeg samler på glansbiller og har mange nu. De kommer fra forskellige firmaer (MPL, EF, EAS) de får hver sin tabel. Så er der de gamle uden firma navn men med nummer og uden nummer og navn og alle de løse mærker og gamle album de får også hver deres tabel. Jeg lægger så forskellige oplysninger ind  om dem størrelse, pris, osv og så har jeg den der kolonne med søgeord.
Jeg ville så gerne når det hele er tastet ind, kunne sidde her ved computeren(man er vel doven) og så slå op i min database og se om jeg har forskellig ark eller løse mærker. Det kræver at jeg kan søge på en beskrivelse eller et bestemt nummer.
Avatar billede bms122 Nybegynder
10. oktober 2003 - 22:17 #17
Nogle gange vil jeg have brug for at vide hvad jeg har af forskellig nisser eller julemænd og så skal den jo kunne søge på alt hvad jeg har, andre gange har jeg bare et nummer fra MPL og det er jo let nok at se om jeg ahr det.
Giver det nogen mening ?  :)
Avatar billede bms122 Nybegynder
10. oktober 2003 - 22:23 #18
Henrik13>> en løsning jeg selv kan bygge videre på :), jeg bruger nogle af de beskrivelser jeg har i søgeord, f.eks nisser
var det det du mente?
Avatar billede henrik13 Nybegynder
10. oktober 2003 - 22:38 #19
Ja det var lige det. Jeg har lavet en til dig nu med søgeord:
SELECT EAS.[EAS nr], EAS.E, EAS.D, EAS.U, EAS.[S med], EAS.Antal, EAS.Søgeord, EAS.Beskr, EAS.Mærke, EAS.Kommentar, EAS.[S som], EAS.Pris, MPL.[MPL Nr], MPL.Kat80, MPL.Kat, MPL.Antal, MPL.Søgeord, MPL.Beskrivelse, MPL.Ark, MPL.MP, MPL.MPL, MPL.G, MPL.Mærke, MPL.[S som], MPL.CE, MPL.Kommentar, MPL.Pris, MPL.figurpath, MPL.figurfil
FROM EAS INNER JOIN MPL ON EAS.Beskr = MPL.Beskrivelse
WHERE (((MPL.Beskrivelse) Like [søg]));

Du kan bare kopier den ind i en forespørgsel, og søg på KÆRLIGHED der er kun 2 poster med det, så det er let at overskue.
Jeg kan også sende den.
Mvh Henrik13
Avatar billede bms122 Nybegynder
10. oktober 2003 - 22:50 #20
Henrik13>> hmm kan ikke helt få det til at virke, men jeg må lige spørge, når der står sådan "FROM EAS INNER JOIN MPL ON EAS.Beskr = MPL.Beskrivelse
WHERE (((MPL.Beskrivelse) Like [søg]));" søger den så kun i MPL tabellen eller i begge 2 ?
Avatar billede bms122 Nybegynder
10. oktober 2003 - 22:51 #21
henrik13>> du må gerne sende den for det vil ikke her hos mig.
Avatar billede henrik13 Nybegynder
10. oktober 2003 - 22:51 #22
Rettelse:
Det var felted Beskr med relation til Beskrivelse i den anden tabel.
Det gav en felles søgestring.
Mvh Henrik13
Avatar billede bms122 Nybegynder
10. oktober 2003 - 22:56 #23
Hov nu virker det sørme. Jeg skulle bare trykke enter indtil jeg kom til søg og så skrive kærlighed der.  :)
Avatar billede henrik13 Nybegynder
10. oktober 2003 - 23:07 #24
Er sendt.
Avatar billede bms122 Nybegynder
10. oktober 2003 - 23:25 #25
Er modtaget.
Hvis jeg søger på noget som er i MPL men ikke i EAS tabellen så får jeg ingen ting, det skulle jeg jo helst. Kan det ordnes?
Avatar billede henrik13 Nybegynder
10. oktober 2003 - 23:27 #26
Kikker på det nu.
Avatar billede bms122 Nybegynder
11. oktober 2003 - 00:36 #27
Næ nu har jeg fået nok af underlige sætninger, så jeg er den der er muttet i seng. Godnat.
Vender tilbage imorgen.
Avatar billede henrik13 Nybegynder
11. oktober 2003 - 00:38 #28
Ok. jeg fortsætter nok en time mere
Avatar billede lap Nybegynder
11. oktober 2003 - 00:44 #29
beklager jeg var borte, men dit database design er forkert.

Hvis du skal kunne have flere søgeord på et glansbillede, så er nedenstående korrekt.

Lav en tabel med producenter
Lav en tabel med søgeord
lav en tabel med glansbilleder (med reference til producenter)
lav en tabel med link-glans-søg (reference til søgeord og glansbilleder)

Så kan alle billeder registreres - evt. med en producent (hvor du kan lægge felter med adresse, opstart, link til web, levetid osv.)

Og du har et ubegrænset antal søgeord til alle billeder.

Vend tilbage hvis du vil have et forslag til db - så skal jeg lige bruge din eksisterende database - så finder vi nok ud af det.
Avatar billede bms122 Nybegynder
11. oktober 2003 - 09:01 #30
Godmorgen/middag.
Mit database design er forkert, tjaa det er  det måske nok, men jeg sprang jo også udviklingsfasen over, jeg mente jo ikke jeg skulle bruge det til noget, for så svært kunne det jo heller ikke være. Jeg vidste jo hvad jeg ville have, hahaha.
Jeg kan godt lide ideen med en tabel til producenter(hvor adresse og sådan kan være)
Men 1 tabel med alle glansbilleder har jeg lidt svært ved at få ind i mit hoved, for der er altså mange, rigtig mange.
Hvis ingen tager mig det ilde op, så vil jeg da gerne have et forslag til et bedre design hvis det kan lette mit arbejde fremover, med søgninger osv.
Jeg sidder her først mere fast iaften(efter 20.00, når børnene sover), i løbet af dagen, render jeg frem og tilbage.
Avatar billede bms122 Nybegynder
11. oktober 2003 - 21:01 #31
Hejsa.
Jeg har valgt at lukke dette spørgsmål, ved selv at tage point. Da jeg ikke har fået noget svar der kan bruges.
Mine tabeller er helt forkerte og jeg må forfra og om igen.
Avatar billede lap Nybegynder
11. oktober 2003 - 21:06 #32
Så tag udgangspunkt i mit forslag.

Du er nødt til at starte med at skrive de ting ned, som du har tænkt dig at registrere. Derefter skal du normalisere disse oplysninger. Det vil sige, at du kikker på logisk inddeling, relationer, sikre at de samme oplysninger kun skal skrives en gang osv.

Jeg ville nu gerne ha' lavet et forslag til dig, men var ikke nået til det endnu :-)
Avatar billede mugs Novice
11. oktober 2003 - 21:09 #33
lap -> Helt enig. Dog plejer jeg at indlede et sådant svar med:

- Sluk din PC
- Tag papir og blyant og "tegn" hele db.
Avatar billede bms122 Nybegynder
11. oktober 2003 - 21:10 #34
Åhh det må du unskylde havde helt glemt dig.
Jeg har oprettet nyt spørgsmål der går på design
"hjælp til design af database.
Avatar billede lap Nybegynder
11. oktober 2003 - 21:10 #35
ok med mig :-)
Avatar billede henrik13 Nybegynder
11. oktober 2003 - 21:11 #36
Hans foreslag var ellers løsningen.  :o)
Avatar billede bms122 Nybegynder
11. oktober 2003 - 21:12 #37
Nå ja når i nu forsætter her så.
Det er det jeg har gjort idag.
Fundet papir og blyant. Jeg synes bare jeg ser alt for mange problemer hvis jeg skal lave det om. Jeg er så fastlåst i min opdeling af glansbillederne.
Avatar billede lap Nybegynder
11. oktober 2003 - 21:15 #38
prøv at forestille dig:

g1 -> EML
g2 -> ULS
g3 -> EML
g4 ->
g5 -> EML

I en tabel har du alligevel inddelingen - ved at kikke på relationen til producent, så derfor skal der ikke være en tabel til hver producent - men 1 tabel til billeder og en anden tabel til producent.

1 tabel med et par millioner billeder er ikke noget problem.
Avatar billede mugs Novice
11. oktober 2003 - 21:17 #39
bms122 -> Hvis dit dedsign ikke er 100% iorden, så vil du senere hen få endnu større problemer end du kan forudse ved at lave en ny db.

Det forslag jeg har sendt dig, bygger i princippet på samme struktur som lap. Og bemærk, at søgefunktionen er simpel.
Avatar billede bms122 Nybegynder
11. oktober 2003 - 21:20 #40
Sidder lige og kigger på Mugs eksempel.
Jeg begynder at se hvor I vil have mig hen.
Jeg har bare brugt nummerne der er på arkene som primærnøgle og det var måske ikke så smart.
Avatar billede lap Nybegynder
11. oktober 2003 - 21:23 #41
nej, sørg for at bruge autonummerering - du bør ikke have "databærende" nøgler - altså nøgler, som rent faktisk betyder noget.
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