[asp/access] rapporten maken op basis van een kamer

Pagina: 1
Acties:

  • wd200
  • Registratie: Juni 2005
  • Laatst online: 01-12 22:34
Ik heb een access database met de volgende structuur

code:
1
2
3
4
5
6
7
8
9
planning

id      locatie        kamer       van        tot
1         1                1              1          2
2         1                1              2          3
3         1                2              3          4
4         2                2              1          2

enzoverder


Nu wil een rapport hebben van 1 pagina groot van elke kamer.
( elk rapport per kamer moet 1 pagina worden omdat je deze rapporten dan aan de kamers kan uitdelen als je het volledige rapport uitprint.)

Ik heb een script gemaakt die in een tabel (van 1 pagina groot) deze waarde op papier maar doet dit met ID.

Wat krijg ik dan een heel mooi rapport van de data maar per id.
Het rapport ziet er grof weg zo uit

code:
1
2
3
4
5
6
7
Datum

Locatie

Kamer

van                 tot


maar dat doet die voor elke waarde in de database en ik wil een rapport van een kamer waar meerdere "afspraken op staan dus "

code:
1
2
3
4
5
6
7
8
Datum

Locatie

Kamer

van                 tot 
van                 tot


Maar wel van alle data die aan mijn query voldoet dmv een loopje.

de code die ik nu heb is

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<%

Dim locatie
locatie = Request.QueryString("locatie")


  SQL = "SELECT * FROM planning where locatie LIKE '%"&locatie&"%' " 


%>


<h2><%=date()%></h2>

<h3><%="Locatie: " & locatie%><br>


<%
    set objRec = objCon.execute(SQL)
%>


<table border="1" cellspacing="0" cellpadding="0" width="70%">
<tr><td>tandarts</td><td>van</td><td>tot</td><td>patient</td></tr>
<%
Do While Not objRec.EOF
%>


    <tr>
    
        
                <td><%= objRec.Fields("van").Value %></td>
                    <td><%= objRec.Fields("tot").Value %></td>
                    
    </tr>
    

<%
    objRec.MoveNext
    Loop
%>



Hoe los ik dit op ?

Wat heb ik zelf gedaan
Veel gezocht op google.
ik ben bezig geweest met de id waarde te laten bepalen door een loopje langs de min en max waarde in de database.
Dit is natuurlijk stom als er 1 record verwijderd wordt.
dan krijg je een leeg rapport.

[ Voor 112% gewijzigd door wd200 op 26-03-2007 17:19 ]


Verwijderd

Ik zou de database normaliseren, waardoor je meerdere tabellen krijgt zonder dubbele data.

Vervolgens kan je eenvoudig een query maken die 1 bepaalde kamer opvraagd en in de bijbehorende afspraken-tabel de juiste data retourneert voor je for-loop.

  • wd200
  • Registratie: Juni 2005
  • Laatst online: 01-12 22:34
Verwijderd schreef op maandag 26 maart 2007 @ 21:32:
Ik zou de database normaliseren, waardoor je meerdere tabellen krijgt zonder dubbele data.

Vervolgens kan je eenvoudig een query maken die 1 bepaalde kamer opvraagd en in de bijbehorende afspraken-tabel de juiste data retourneert voor je for-loop.
Volgens mij is de database structuur goed zo.


Locatie
ID (PK)
locatie
straat
postcode etc.

kamer
ID (PK)
kamer
locatie (FK)
gegevens (over de kamer)

planning
ID (PK)
locatie(FK)
kamer(FK)
van
tot

er zijn dus meerdere kamers per locatie vandaar ik het zo opgelost heb.

Bij planning wordt er uit een pull down menu een locatie geselecteerd die veranderd met onchange een query die de kamer bij die locatie in een pull down laat zien.
dus de combinatie van locatie en kamer is bij het invoeren altijd goed.

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

wd200 schreef op dinsdag 27 maart 2007 @ 09:03:
Bij planning wordt er uit een pull down menu een locatie geselecteerd die veranderd met onchange een query die de kamer bij die locatie in een pull down laat zien.
Beetje muggenzifterij, maar je kan beter AfterUpdate van de combobox gebruiken, omdat onchange iedere bij wijziging triggert, dus als iemand het intypt, ipv de muis gebruikt, dan wordt bij iedere letter het event uitgevoerd.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • wd200
  • Registratie: Juni 2005
  • Laatst online: 01-12 22:34
schopje ?

ik heb nu een loop laten uitvoeren met distinct om een malig de kamer nummer op het scherm te krijgen die gebruikt worden.
maar ik kan ik deze loop geen query uitvoeren wat mij idee was. :(

Ik wil dus van elke kamer een rapport maar dan alle kamers onder elkaar.

dus

-----------------------------
kamer 1

van tot
1 2
2 4
6 7

_________________
kamer 2

etc...

  • x-force
  • Registratie: Maart 2001
  • Laatst online: 05-01-2024
ik ben niet bekend met asp maar ik kan je wel speudo code geven wat misschien helpt:

code:
1
2
3
4
5
6
7
8
result1 = select * from kamer
while( result1 ){
  echo result1.kamernaam 
  result2 = select * from planning where kamer = result1.kamer ORDER BY van,tot
  while( result2 ){
     echo result2.van - result2.tot -> result2
  }
}


Dit gaat niet exact werken omdat je ook nog met verschillende vestigingen hebt. Maar hopelijk snap je het idee.

VangenopBetaalwater.nl Het platform om ervaringen over betaalwater in Frankrijk te delen met andere karpervissers zodat iedereen kan vangen op betaalwater!


  • wd200
  • Registratie: Juni 2005
  • Laatst online: 01-12 22:34
vestigingen boeit even niet maar ik ga even met je code spelen wie weet kom ik er uit :)
thnx anyway

asp kan niet overweg met { en }

zit te bedenken evt een loopje door alle kamers zou ook nog kunnen
dan geef ik de kamer nummer hard de waarde 1 t/m 8 (max 8 kamers) mee

[ Voor 59% gewijzigd door wd200 op 03-04-2007 15:41 ]


  • glmona
  • Registratie: Maart 2005
  • Laatst online: 04-11 21:05
Gebruik je Access als front-end of back-end

Als het als front end is kan je de rapportage tool van Access gebruiken

Anders zou ik in de SQL een Group By functie gebruiken en het id niet meenemen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
wd200 schreef op dinsdag 03 april 2007 @ 14:39:

asp kan niet overweg met { en }
Het is dan ook pseudocode...
glmona schreef op woensdag 04 april 2007 @ 11:45:
Gebruik je Access als front-end of back-end
* RobIII wijst naar topictitel: ASP ;) Dan lijkt me dat het front-end :Y) (zeker omdat er in de topicstart ook nog eens ASP code (met HTML uitvoer) staat). Dan zal Access dus wel het backend zijn :P
wd200 schreef op dinsdag 03 april 2007 @ 14:12:
ik heb nu een loop laten uitvoeren met distinct om een malig de kamer nummer op het scherm te krijgen die gebruikt worden.
maar ik kan ik deze loop geen query uitvoeren wat mij idee was. :(
Waarom zou dat niet kunnen?
Kom op, we hebben je er al vaak genoeg op gewezen, en wij hebben geen kristallen bollen: post eens relevante informatie en code. Zo kunnen wij net zo min als jij.

[ Voor 83% gewijzigd door RobIII op 04-04-2007 11:54 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1