[Access 2003] Data Access Pagina: Tabel en Query

Pagina: 1
Acties:

  • M. Mulder
  • Registratie: Juni 2003
  • Laatst online: 07-06 14:55

M. Mulder

DPC: Team TFC

Topicstarter
Het lukt mij niet om in een Data Access Pagina tegelijkertijd de velden van de tabel en de door mij aangemaakte velden van de query te laten werken.

Dus als bijvoorbeeld record 1 van de tabel wordt weergegeven in de pagina, dan kan hij niet record 1 laten weergeven van de query in de pagina.

Ditzelfde geld overigens ook voor Formulieren en Rapporton, dat is toch bizar :?

Het is een OF OF principe. Of de gegevens van de tabel OF de gegevens van de query.

Hoe kan ik dit oplossen ?

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Ik snap er niks van. Over welk product heb je het?

Wilde gok: kan je niet gewoon een query schrijven die de gegevens uit een tabel + additionele velden teruggeeft?

  • M. Mulder
  • Registratie: Juni 2003
  • Laatst online: 07-06 14:55

M. Mulder

DPC: Team TFC

Topicstarter
Het gaat over Microsoft Acces 2003.

Een query die de gegevens teruggeeft aan een veld in de tabel? Dat bedoel je?

Maar als je de tabel opstart dan weet deze niet dat het gegevens moet ontvangen, want de code staat bij de query.

Normaal programmeer ik in Visual basic en dan lukt dat wel, maar in Acces zelf lukt dat niet, lijkt me.

[ Voor 18% gewijzigd door M. Mulder op 24-09-2006 21:51 ]


Verwijderd

Ga even zitten, haal 's diep adem, en vertel dan wat het probleem is?
Om welke programmeertaal/library of welk programma gaat 't? Wat heb je zelf al geprobeerd? Met je openingspost kan niemand iets zinnigs aanvangen.

  • M. Mulder
  • Registratie: Juni 2003
  • Laatst online: 07-06 14:55

M. Mulder

DPC: Team TFC

Topicstarter
Verwijderd schreef op zondag 24 september 2006 @ 21:55:
Ga even zitten, haal 's diep adem, en vertel dan wat het probleem is?
Om welke programmeertaal/library of welk programma gaat 't? Wat heb je zelf al geprobeerd? Met je openingspost kan niemand iets zinnigs aanvangen.
In Microsoft Acces heb ik een tabel aangemaakt met een aantal velden, t.w.

Naam
Les 1
Les 2
Les 3
Les 4
Les 5
enz.

De tabel heet Absenten

Daarbij heb ik een selectiequery aangemaakt met de volgende sql string:
SELECT naam, SUM(Absenten.[Les 1]+Absenten.[Les 2]+Absenten.[Les 3]+Absenten.[Les 4]) AS totaal
FROM absenten
GROUP BY naam
ORDER BY naam;

Deze query telt dus de waarden van een record bij elkaar op.


Nu wil ik de records van de tabel weergeven in een pagina die door MS Acces zelf gegenereerd kan worden (*.htm extensie). Dit heb ik ook gedaan. Tot dusver geen problemen.

Echter wil ik ook die query in de pagina hebben staan zodat die de waarden kan laten zien per record. Dat lukt dus niet tegelijkertijd met de data uit de absenten tabel

Verwijderd

Lees even iets over normaliseren van databases... Op deze manier wordt het inderdaad vrij lastig. Je zult per les een record moeten hebben in een andere tabel, en niet per record x lessen, zoals nu.

  • M. Mulder
  • Registratie: Juni 2003
  • Laatst online: 07-06 14:55

M. Mulder

DPC: Team TFC

Topicstarter
Die query die ik heb gemaakt functioneert prima hoor. Dus deze geeft aan dat hij per naam en daarmee dus per record, de gegevens optelt.

Maak maar eens een tabel aan en daarop een query. Zet deze eens via een wizardin een formulier of rapport. Dat lukt dus niet, maar waarom is dat? Een query hoort juist samen te gaan met gegevens uit de tabel waarop hij gebaseerd is :?

Verwijderd

M. Mulder schreef op maandag 25 september 2006 @ 19:47:
Die query die ik heb gemaakt functioneert prima hoor. Dus deze geeft aan dat hij per naam en daarmee dus per record, de gegevens optelt.

Maak maar eens een tabel aan en daarop een query. Zet deze eens via een wizardin een formulier of rapport. Dat lukt dus niet, maar waarom is dat? Een query hoort juist samen te gaan met gegevens uit de tabel waarop hij gebaseerd is :?
Klopt het dus dat je niet de gewenste gegevens krijgt? Je wilt dus de gegevens uit de tabel, tezamen met de query weergeven?

Dit gaat lijkt mij niet werken. Je query groepeert de gegevens uit je tabel, waardoor je nooit in 1 query alle gegevens uit je tabel + de gegroepeerde query kunt weergeven. Dit kan wel door de huidige query uit te breiden met de gegevens die je nog meer wilt zien, maar weet niet welke velden nog meer in je tabel zitten...

Wat ik trouwens bedoelde is dat je huidige structuur niet netjes is... Stel dat je nu 10 les-velden hebt en je een 11e wilt hebben. Dan moet je een extra veld toevoegen, dat is niet goed werkbaar. Je kunt beter in een aparte tabel per naam-les combinatie dit opslaan, zodat als je een 11e les hebt, je alleen een extra record toe hoeft te voegen. Dat heet normaliseren :)

[ Voor 16% gewijzigd door Verwijderd op 25-09-2006 20:01 ]


  • M. Mulder
  • Registratie: Juni 2003
  • Laatst online: 07-06 14:55

M. Mulder

DPC: Team TFC

Topicstarter
Bedankt voor het meedenken.

Het normaliseren begreep ik, maar je geeft aan dat je de lessen als records moet aanmaken. Zijn de velden dan de namen? Wat als je een andere naam krijgt, want dat gebeurt veel vaker namelijk. De lessen liggen wel vast.
Je bedoelt nog steeds dat ik 1 tabel hoef aan te maken, dus.

Deze fout geeft hij overigens:

"Unique Table bestaat niet of is niet volledig ingevoerd"

De tabelvelden en bijbehorende records worden prima in de pagina weergegeven, daarbij is het ook gelukt om de query in te voegen, maar zodra ik een gegeven bewerk, dan en ga opslaan in de pagina dan geeft hij deze fout.

Verwijderd

Over de foutmelding kan ik niets zinnigs zeggen, heb geen ervaring met Access.

Ik begrijp dat je per naam en per les bij wilt houden hoe vaak iemand absent is?

Dan maak je een tabel met de volgende velden:

-Lesnaam
-Persoonsnaam
-Aantal keer afwezig.

Op deze manier kun je altijd een nieuwe les toevoegen... Met een nieuwe query kun je dan per persoon weer laten geven hoe vaak hij bij welke les afwezig was :) Snappie?

  • M. Mulder
  • Registratie: Juni 2003
  • Laatst online: 07-06 14:55

M. Mulder

DPC: Team TFC

Topicstarter
Verwijderd schreef op maandag 25 september 2006 @ 20:25:
Over de foutmelding kan ik niets zinnigs zeggen, heb geen ervaring met Access.

Ik begrijp dat je per naam en per les bij wilt houden hoe vaak iemand absent is?

Dan maak je een tabel met de volgende velden:

-Lesnaam
-Persoonsnaam
-Aantal keer afwezig.

Op deze manier kun je altijd een nieuwe les toevoegen... Met een nieuwe query kun je dan per persoon weer laten geven hoe vaak hij bij welke les afwezig was :) Snappie?
Deze manier werkt dus niet als je gaat werken met een soort datagrid:


Ik heb hem even op deze site gezet. Morgen is het niet meer toegankelijk. Wachtwoord = achavo.

http://home.planet.nl/~biodbase/

Je kunt hem hier downloaden:

http://www.yousendit.com/...oad&ufid=29E57B836C4B849B

[ Voor 7% gewijzigd door M. Mulder op 25-09-2006 22:14 ]


  • M. Mulder
  • Registratie: Juni 2003
  • Laatst online: 07-06 14:55

M. Mulder

DPC: Team TFC

Topicstarter
Inmiddels ben ik erachter hoe het wel werkt. Ik heb eerst de wizard gebruikt om de query toe te voegen aan de Acces pagina en daarna pas de velden toegevoegd aan de DAP.

Maar nu wil ik het .mdb bestand koppelen aan een webserver. Dat bestand staat dus op het internet.

Dit is de connectionstring:

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Documents and Settings\Machiel Mulder\Bureaublad\Absenten.mdb;Mode=Share Deny None;Extended Properties="";Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=0;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False


Hoe kan ik het .mdb bestand laten verwijzen naar een webserver ?
De datasource veranderen naar http://www.blabla.nl/absenten.mdb werkt niet :O

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 26-07 17:36

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1