Cum fac un camp tip "breadcrumbs" ?
Cum pot crea in ACCESS 2003 un camp de tipul "breadcrumbs navigation" din site-urile web?
Mai exact, am tabelul cu urmatoarele campuri:
ID
denumire
ID parinte
si daca ma duc pe inregistrarea DVR 8 canale model xxxxx vreau sa obtin un camp de genul:
Home > Supraveghere video > DVR 4 / 8 / 16 canale > DVR 8 canale > DVR 8 canale model xxxxx
sau in ordine inversa.
denumire (nivel n) > denumire (nivel n-1) > denumire (nivel n-2) > ... > denumire (nivel 0)
Nivelul 0 fiind inregistrarile care nu se mai subordoneaza altora.
Mai exact, am tabelul cu urmatoarele campuri:
ID
denumire
ID parinte
si daca ma duc pe inregistrarea DVR 8 canale model xxxxx vreau sa obtin un camp de genul:
Home > Supraveghere video > DVR 4 / 8 / 16 canale > DVR 8 canale > DVR 8 canale model xxxxx
sau in ordine inversa.
denumire (nivel n) > denumire (nivel n-1) > denumire (nivel n-2) > ... > denumire (nivel 0)
Nivelul 0 fiind inregistrarile care nu se mai subordoneaza altora.
Re: Cum fac un camp tip "breadcrumbs" ?
Tot cautand pe net am gasit urmatorul cod pentru o functie care verifica pe "ramura" de la inregistrarea curenta pana la inregistrarea de nivel 0 si imi returneaza doar ID-ul acesteia.
Dar nu este exact ce imi trebuie si nici nu stiu cum as putea sa o modific pentru a lucra cum imi trebuie mie, adica sa imi afiseze toata calea.
Dar nu este exact ce imi trebuie si nici nu stiu cum as putea sa o modific pentru a lucra cum imi trebuie mie, adica sa imi afiseze toata calea.
Cod: Selectaţi tot
Public Function JobRoot(Id As Long, ParentId As Long) As Long
If ParentId = 0 Then
JobRoot = Id
Exit Function
End If
Dim Rst As New ADODB.Recordset
Dim sql As String
sql = "SELECT Id, ParentID FROM JobTable WHERE Id = " & ParentId & ";"
Rst.Open sql, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
If Rst.Fields("ParentID") = 0 Then
JobRoot = Rst.Fields("Id")
Else
JobRoot = JobRoot(Id, Rst.Fields("ParentID")) ' Recursive.
End If
Rst.Close
Set Rst = Nothing
End Function
-
- Mesaje:88
- Membru din:Vin Sep 04, 2009 7:45 am
- Localitate:Slatina
Re: Cum fac un camp tip "breadcrumbs" ?
O posibila solutie este aceasta:
Cod: Selectaţi tot
Public Function BreadCrumbs(ByVal ID As Long) As String
Dim rs As DAO.Recordset
Dim strBC() As String
Dim i As Long, j As Long, IDP As Long
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Table1 WHERE ID=" & ID, dbOpenSnapshot, dbReadOnly)
If rs.EOF Then
rs.Close
Set rs = Nothing
BreadCrumbs = ""
Exit Function
End If
i = -1
Do Until rs.EOF
i = i + 1
ReDim Preserve strBC(i)
strBC(i) = rs!Denumire
IDP = rs!IDParinte
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Table1 WHERE ID=" & IDP, dbOpenSnapshot, dbReadOnly)
Loop
rs.Close
Set rs = Nothing
Dim strX As String
strX = ""
For j = i To 0 Step -1
If j <> i Then strX = strX & " > "
strX = strX & strBC(j)
Next j
BreadCrumbs = strX
End Function
Re: Cum fac un camp tip "breadcrumbs" ?
Multumesc mult.
Ma apuc acum de treaba sa vad cum merge.
Ma apuc acum de treaba sa vad cum merge.