Pagina 1 din 1

Creare istoric pe o coloana de comentarii

Scris: Vin Dec 18, 2009 3:13 pm
de alexuky
CUM SE CREAZA UN ISTORIC PE O COLOANA DE COMENTARII SI CUM POT SA IMI SELECTEZ IN CALENDAR LUCRURILE IMPORTANTE?

Re: Creare istoric pe o coloana de comentarii

Scris: Mar Dec 22, 2009 5:41 pm
de Dr.Windows
Daca te referi la o modalitate pentru utilizarea metodei ColumnHistory din Access pe langa detaliile de utilizare de pe site-ul Microsoft pentru Application.ColumnHistory Method mai trebuie sa tii cont de urmatoarele:

1. Este obligatoriu ca basa de date sa fie in format Access 2007 (.ACDDB)
2. Este obligatoriu ca pentru campul pe care il doresti sa monitorizezi "istoricul" sa fie in primul rand de tip MEMO si neaparat sa setezi proprietatea acelui camp AppendOnly pe True (este jos de tot cand esti pe tabela in design view pe campul tau memo)

Pentru "demonstratie" ai atasat un exemplu ColumnHistory_L1.accdb in care tabela Table1 are un camp Field1 de tip memo si cu AppendOnly pe True

Si acum... dupa ce am modificat de cateva ori acest camp salvand tabela se pot face urmatoarele observatii:

1. Daca faci "browse" pe tabela, in Field1 vei "vedea" numai ultima modificare

2. Daca creezi un macro dupa modelul pe care il ai si in link-ul de pe site-ul Microsoft, dar "adaptat" pentru exemplul atasat:

Cod: Selectaţi tot

Sub colhist()
    Dim sHistory As String
    
    sHistory = Application.ColumnHistory("Table1", "Field1", "ID=1")
    Debug.Print sHistory
    
End Sub
Vei vedea in fereastra "immediate" (daca o afisezi din VBA Editor, meniul View\Immediate window sau apesi Ctrl+G) modificarile facute in tabela de test pentru inregistrarea cu ID=1.

Mai exact rezultatul ar trebui sa fie urmatorul:

Cod: Selectaţi tot

[Version:  12/22/2009 4:25:09 PM ] MemoFld
[Version:  12/22/2009 4:25:26 PM ] Alt memo Fld
[Version:  12/22/2009 4:25:38 PM ] Al 3-lea memo fld
Sunt niste inregistrari "aiurea" din lipsa de inspiratie... ;)

3. Daca creezi pentru Table1 o forma cu Form Wizard, in exemplul meu se numeste Table1-FaraHistory o sa vezi, exact ca si la nota 1 tot numai "ultima modificare" din acel camp.

4. In schimb, pentru acelasi tabel am creat in exemplul atasat si o forma Table1-CuHistory la care, pentru a vedea "istoricul modificarilor" a trebuit sa modific pentru Field1.Textbox (nu label) campul Control Source sa fie urmatorul:

Cod: Selectaţi tot

=ColumnHistory("Table1","Field1","ID=" & nz([ID],0))


Adica seamana putin cu ce este in macro-ul de la nota 2, doar ca este adaptat sa ia ID-ul corespunzator din forma /tabel pentru a afisa istoricul in functie de inregistrarea pe care esti... adica pentru inregistrarea cu ID=2 vei vedea in acea forma:

Cod: Selectaţi tot

[Versiune: 22-12-2009 17:38:03 ] Field 2 modificarea 1
[Versiune: 22-12-2009 17:38:11 ] Field 2 modificarea 2
[Versiune: 22-12-2009 17:38:19 ] Field 2 modificarea 3
Sper sa-ti fie de folos...