Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Bitdefender Total Security ș...

casa verde 2024

Intrerupator cu N - doza doar cu ...

Incalzire casa fara gaz/lemne
 Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii
 Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...
 Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor
 

Query "inlantuit" in acelasi tabel

- - - - -
  • Please log in to reply
4 replies to this topic

#1
fly_dream

fly_dream

    Senior Member

  • Grup: Senior Members
  • Posts: 2,075
  • Înscris: 17.05.2007
Am o aplicatie in Access 2003, inceputa de cineva, dar pe care trebuie sa o termin eu si inca extrem de rapid! Cunostintele mele de Access 2003/2007 nu ajung inca foarte departe, invat din mers, dar se apropie dealine-ul si am o problema careia nu stiu cum sa-i dau de cap. Este o chestiune de inregistrari in casacada.... pe baza carora trebuie sa editez un raport.

Am doua tabele, sa le zicem BIUBLIOTECA si CARTI, cu urmatoarele campuri care ne intereseaza:

CARTI:

ID_carte
Denumire_carte
ID_domeniu
...

DOMENII:

ID_domeniu
Denumire_domeniu
ID_domeniu_superior
.....

Cele doua table se leaga prin campul ID_domeniu.

Trebuie sa creez un raport care sa afiseze lista cartilor pe domenii si subdomenii pana la ultimul nivel. Problema este ca structura domeniilor si subdomeniilor este una arborescenta, in care numarul nivelelor nu este nici cunoscut, nici acelasi pentru fiecare domeniu in parte, astfel incat in tableul DOMENII inregistrarile in care apar domeniile de la primul nivel (sa zicem nivelul 0, radacina) au campul ID_domeniu_superior egal cu 0, iar inregistrarile care au subdomenii contin in campul ID_domeniu_superior valoarea ID_domeniu a domeniului de deasupra, astfel incat cautarea pentru raport trebuie sa se faca inlantuit, pentru a se depista inregistrarile de pe fiecare nivel. Asta nu stiu sa fac! Ma puteti ajuta?

Ca sa fiu mai explicita, va dau un exemplu de tabele:

CARTI

1 Ivanhoe 10
2 Curs SQL    2
3 Prin foc si sabie 10
4.Curs Oracle  2
5 Curs ASP   2
6.Curs fizica cuantica 4
7 Arhitectura Greciei 7

DOMENII

1 Stiinte exacte 0
2 Informatica 1
3 Matematica 1
4 Fizica  1
5 Arta  0
6 Pictura 5
7 Arhitectura 5
8 Muzica 5
9 Socio-umane 0
10 Istorie 9
11 Filosofie 9
12 Istoria antica 10
13 Istoria Evului Mediu 10
14 Istoria contemporana 10

Pentru ca in raport sa pot afisa cartile pe domenii sio subdomenii, adica

Stiinte exacte
   - Informatica: Cartea 1, 2, 3....
   - Matematica: Cartea n,......
   - Fizica  
Arta
   - Pictura
   - Arhitectura
   - Muzica
Socio-umane
    -Istorie
        - Istoria antica
        - Istoria Evului Mediu
        - Istoria contemporana
    - Filosofie

am nevoie de un query care sa stie sa caute "increngatura" din tabelul DOMENII..... S-ar putea sa fie nevoie doar de cateva linii de cod, dar.... nu ma descurc!

Edited by fly_dream, 06 March 2010 - 17:04.


#2
dumitrasrazvan

dumitrasrazvan

    Junior Member

  • Grup: Members
  • Posts: 83
  • Înscris: 12.02.2010
folosind un Select nu se poate face. trebuie sa folosesti VBA pentru a parcurge arborele recursiv.

#3
fly_dream

fly_dream

    Senior Member

  • Grup: Senior Members
  • Posts: 2,075
  • Înscris: 17.05.2007

View Postdumitrasrazvan, on 6th March 2010, 21:31, said:

folosind un Select nu se poate face. trebuie sa folosesti VBA pentru a parcurge arborele recursiv.

Poti fi un pic mai explicit? Am incercat deja cateva variante, una incluzand un query in care pun mai multe copii ale tabelului, pe care le leg intre ele (chestie care imi da ierarhizarea, insa nu o pot "prinde" in raport decat daca toate arborele ar fi simetric), alta in care incerc sa fac un tabel temporar, cuprinzand nivelele, ID_grup si parinte....

#4
dumitrasrazvan

dumitrasrazvan

    Junior Member

  • Grup: Members
  • Posts: 83
  • Înscris: 12.02.2010
Prima data spune-mi tu cum vrei sa generezi raportul? Ce folosesti pentru generarea rapoartelor?

#5
fly_dream

fly_dream

    Senior Member

  • Grup: Senior Members
  • Posts: 2,075
  • Înscris: 17.05.2007

View Postdumitrasrazvan, on 7th March 2010, 14:09, said:

Prima data spune-mi tu cum vrei sa generezi raportul? Ce folosesti pentru generarea rapoartelor?

Baza de date a fost creata in SQL, insa totul se intampla prin intermediul unei aplicatii in Access 2003. Rapoartele trebuie generate tot in Access si trebuie sa contina informatiile pe nivele; mai precis, pentru nivelul x ar trebui sa generez lista tuturor cartilor care se gasesc sub fiecare nod aflat la nivelul x, nu doar denumirea nodului de la nivelul x. Bine ar fi sa pot parametriza numarul nivelului, dar cred ca deja visez, asa-i? (Oricum el se misca undeva in plaja 0-4.)

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate