[Access] Rapport, gegevens uit 2 tabellen

Pagina: 1
Acties:
  • 185 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
Ik heb de volgende vraag:

Ik heb 3 tabellen, 1 met klantengegevens, 1 met de eigen gegevens (bedrijfnaam e.d.) 1 met de facturen.

De relatie tussen klantengegevens en tabellen gaat goed, en hiermee maak ik dus een rapport, waarbij de klantennaam + gegevens op de afzender plaats staan, en de desbetreffende facturen worden weergegeven.

Nu wil ik alleen ook de afzender erboven krijgen, waarbij de gegevens uit de tabel eigengegevens komen.

ik heb hetvolgende geprobeerd: =[eigengegevens]![bedrijfsnaam] maar dit geeft een #fout

Hoe kan ik zorgen dat dit wel werkt?

Acties:
  • 0 Henk 'm!

Anoniem: 12795

Wat voor fout krijg je dan?
Heb je bij je rapport el aangegeven dat je ook uit 'eigengegevens' wilt ophalen?

Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
als ik dat bij het raport zelf doe dat ik er gegevens uit wil halen zegt hij:

kan geen relaties vinden. Maak een relatie aan

Maar hoe kan ik nou mijn bedrijfsgegevens koppelen aan factuurnummers :S

kan ik het niet gewoon oproepen?

hij geeft fout: #fout
#fout
#fout
#fout

en je krijgt zo'n popup venster waarbij je een waarde moet geven... (voor dat je het rapport opent

[ Voor 26% gewijzigd door Anoniem: 125322 op 05-11-2004 14:32 ]


Acties:
  • 0 Henk 'm!

Anoniem: 12795

Als er een popup komt waarin een waarde wordt gevraagt betekent dat hij een variabele tegen komt die die niet kan plaatsen.
Als je nu eerst een query maakt die de gewenste gegevens toont, dan kun je daarvan een report maken.

Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
ja dat heb ik ook gedaan.

SELECT * FROM eigengegevens WHERE eigengegevens.Id=1

nu komt hij ook weer met het popupje!

* heb ik ook uitgediept in: eigengegevens.bedrijfsnaam, enz. enz. maar dat werkte ook niet!

al open ik de querie zelf, zie ik gewoon de goede info staan!

[ Voor 19% gewijzigd door Anoniem: 125322 op 05-11-2004 14:46 ]


Acties:
  • 0 Henk 'm!

Anoniem: 12795

Dan lijkt het erop dat je meer velden op je rapport hebt staan da je terug krijgt uit je query.
Kun je niet veel beter de velden definieren die je nodig hebt in de query? Dat is handiger voor het debuggen en volgens mij ook sneller omdat bij een select * de indexen worden overgeslagen.
Dus:
select veld1, veld2, veld3 from tabel

Als je dan ook een overzichtje maakt van alle velden op je rapport moet je eruit komen waar de fout zit.

Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
maar dat is t m juist

ik heb ook gewoon die query uitgediept (die ster) in alle velden (met forumnaam er zelfs voor)

maar al doe ik dan =[querygegevens]![bedrijfsnaam] dan krijg ik in het Rapport #fout terug...

en daarvoor zo'n popup... met waarde toevoegen, dit omdat hij geen relatie heeft met de rest, en dus niet weet welk ID hij moet opvragen, terwijl ik dat weer wel in de query aangeef...

Ik kan m anders uploaden... miss dat je dan mn probleem ziet

[ Voor 9% gewijzigd door Anoniem: 125322 op 05-11-2004 15:07 ]


Acties:
  • 0 Henk 'm!

Anoniem: 12795

Hmm :?
Lastig.
Geef anders je uitgeschreven query. Misschien dat dat wat verhelderd.

Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
SELECT naam FROM eigengegevens WHERE Id=1

(dit is er dan gewoon met 1 om te proberen)

Al open ik die query, zie ik gewoon de bedrijfsnaam staan

al wil ik m dan in het rapport weergeven door: =[query1]![naam]
geeft ie #fout weer (en daarvoor krijg je dus een popup)

ook geprobeerd:
SELECT eigengegevens.naam FROM eigengegevens WHERE eigengegevens.Id=1

[ Voor 15% gewijzigd door Anoniem: 125322 op 05-11-2004 15:13 ]


Acties:
  • 0 Henk 'm!

Anoniem: 12795

Ik zie het ook nog niet.

Als je nu 'from scratch' begint?
Eerst een (enkelvoudige) query maken en die gegevens in een nieuw rapport tonen en vervolgens de query steeds een beetje uitbreiden en steeds een nieuw rapport (via de wizard) maken.
Misschien dat je er dan uit komt, want ik weet het zo ook niet verder. Dan moet ik toch echt de database fysiek bekijken.

Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
Je moet t eigelijk koppelen... want wat het probleem volgens mij is:

Hij denkt dat het er meer kunnen zijn (omdat je gewoon nieuwe kunt toevoegen) en omdat hij niet gekoppeld is, weet hij dus niet welke die moet hebben, resultaat 1 2 3 4 5 of 6. terwijl de query dat weer wel goed neerzet.

Maargoed zoals jij zei:

ik heb wat nieuws gemaakt:

alleen eigengegevens tabel
en een facturen tabel

nu maak ik dus weer met facturen een rapport, probeer daar de gegevens van eigengegevensquery toe te voegen en je raad het al

#fout

Acties:
  • 0 Henk 'm!

Anoniem: 12795

Wat is nu je query dan?
Hoe koppel je de verschillende tabellen aan elkaar?

Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
dat probeer ik al te zeggen ik kan ze nergens mee aan elkaar koppelen, dat staat volgensmij compleet los van elkaar... ik kan moeilijk de factuurnummer aan de naam van het bedrijf koppelen want dan krijg je weer ERRORs...

Acties:
  • 0 Henk 'm!

Anoniem: 12795

Maar hoe weet je dan welk factuurnr bij welk bedrijf hoort.
Geen wonder dat Access het ook niet snapt.

Ik neem aan dat een factuur bij een bedrijf hoort en dat je via een bedrijfsID bij de eigengegevens van dat bedrijf kunt komen. Dan kun je toch linken?

Wat is anders de structuur van je drie tabellen?

Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
het is maar 1 bedrijf... maar omdat volgens mijn opdacht:
De bedrijfsnaam en gegevens moeten kunnen worden gewijzigd

moest ik dus zorgen dat hij het uit een tabel haalt...

daarom was mijn vraag ook hoe kan ik gegevens uit een buitenstaande tabel halen...

Acties:
  • 0 Henk 'm!

Anoniem: 12795

daarom was mijn vraag ook hoe kan ik gegevens uit een buitenstaande tabel halen...
Door de primairy key uit tabel A terug te laten komen in tabel B als foreign key.

Vervolgens kun je dan een query maken:
code:
1
Select a.naam, b.adres from tabelA as a, tabelB as b where a.id=b.bedrijfsID


Bedoel je dit?

Acties:
  • 0 Henk 'm!

  • Ecto2002
  • Registratie: Juni 2002
  • Laatst online: 20-03 15:32
Gewoon een query met een relatie tussen je klantentabel en je facturentabel maken. Daarin zet je ook je eigengegevenstabel ZONDER RELATIE zodat die gegevens bij elk record worden toegevoegd. In SQL krijg je dan zoiets als dit :

SELECT Eigengegevens.*, Klanten.*, Facturen.* FROM Eigengegevens, Klanten INNER JOIN Facturen ON Klanten.KlantID = Facturen.KlantID;

In je rapport maak je dan een group header aan waarin je eigengegevens zet en die gebruik je als page header (Repeat section op Yes zetten)

Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
precies... maar nu moet ik dus een bijna zinloze 1 in elke tabelrij zetten... (1 "zinloze" kolom dus)

dus ik dacht dat het mischien mogelijk was dat je een soort van selectie kon maken dat je bijvoorbeeld: [naamtabel]![naamkolom]?[WHERE Id=1] zoiets...

ik ken namelijk niet alle functies van access vandaar

maar iig bedankt voor je hulp

Acties:
  • 0 Henk 'm!

  • Ecto2002
  • Registratie: Juni 2002
  • Laatst online: 20-03 15:32
Als je 1 record uit een tabel wil halen, kan je de DLookup functie gebruiken :

=DLookup("[Bedrijfsnaam]";"eigengegevens")

Dit is wel niet zo performant om het in code te gebruiken, maar zou geen probleem zijn als je het in een rapport wil gebruiken. Deze functie geeft gewoon de inhoud van het veld terug van het eerste record dat hij vind.

Edit : opbouw van de functie is als volgt

DLookup("[Veldnaam]";"Tabel";"[Veldnaam]='x'")

Het laatste is een voorwaarde, maar als je maar 1 record in je tabel hebt, speelt dit geen rol.

[ Voor 32% gewijzigd door Ecto2002 op 05-11-2004 16:38 ]


Acties:
  • 0 Henk 'm!

Anoniem: 125322

Topicstarter
werkt perfect

tnx!
Pagina: 1