Overzicht van alle Rapporten, Formulier en queries.

Pagina: 1
Acties:
  • 47 views sinds 30-01-2008

  • LordAlderaan
  • Registratie: Oktober 2001
  • Laatst online: 04-11-2021
Ik zit met een probleem. Ik heb een access Database gemaakt en ik heb zoveel forms 200) en reports (80) en queries (300) dat ik door de bomen het bos niet meer zie. Nu had ik graag een overzicht van de volgende dingen:

Rapporten met hun bron en hun eventuele subrapporten.
Formulieren met hun bron en eventuele subformulieren.
Queries met onderliggende queries/tabellen.

Zodat ik beter kan uitdokteren welke queries/formulieren/rapporten eigenlijk niet meer gerbuikt worden. En een aantal specifieke overzichten kan maken van wat allemaal van elkaar afhankelijk is.

Is er software of een VBA script voor om dit te maken?
Ik ben er nu al een paar uur mee aan het kloten in VBA. Maar ik loop tegen wat problemen op.

De documentatie die je kunt laten genereren (extra->Analyseren->Documentatie) helpt een beetje maar schiet tekort bij subformulieren/subrapporten en queries.

I do not suffer from insanity... I enjoy every minute of it!


  • Boss
  • Registratie: September 1999
  • Laatst online: 10:17

Boss

+1 Overgewaardeerd

Da's toch zo gemaakt in VBA?

Waar loop je mee vast? Ik ken geen standaard scriptjes die het voor je doen, maar kan me niet voorstellen dat er iets is wat niet kan in Access (voor wat betreft dit probleem dan :))

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • LordAlderaan
  • Registratie: Oktober 2001
  • Laatst online: 04-11-2021
Iets in de richting van:

Dim frm as Object
For each frm in CurrentProject.AllForms

En dan de volgende dingen opvragen en in een tabel planten:

Frm.name
Form(Frm.Name).RecordSource


Zo wou ik alle recordsources in een tabel opslaan (wat ook enigsinds lukte). Maar bij het Form() gedeelte gaat het bij bepaalde formulieren al mis omdat het formulier geopent moet zijn om de RecordSource waarde zo op te zoeken. Maar openen gaat niet altijd omdat de form in 80% van de gevallen is gebaseerd op een querie met een filter gebaseerd op een andere formulier (die dus niet geopend is). Daarbuiten heb ik nog niet geklungelt met het achterhalen van de subformulieren. Hetzelfde probleem dus met de Rapporten. Queries heb ik nog niet eens geprobeerd.

Ik kwam hier niet echt uit. Ik ben dan ook geen expert.

I do not suffer from insanity... I enjoy every minute of it!


  • Boss
  • Registratie: September 1999
  • Laatst online: 10:17

Boss

+1 Overgewaardeerd

ai. Dan wordt het wel lastig. Wat je dan zou kunnen doen:
Hernoem alle formulieren, queries & tabellen met een _ ervoor of een ander teken.
Open je programma, en probeer alle functionaliteiten te gebruiekn (alle formulieren openen die je als gebruiker zou tegen kunnen komen). Je krijgt dan vanzelf een hoop foutmeldingen en kan dan de gebruikte formulieren weer terug renamen. Na een tijdje blijven alleen de niet gebruikte forms en rapporten nog in hun tijdelijke naam staan, en die kunnen dan weg (na nog een extra controle natuurlijk!)

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • LordAlderaan
  • Registratie: Oktober 2001
  • Laatst online: 04-11-2021
Ik heb er een tijdje niet meer naar omgekeken. Maar gisteren had ik het overzicht eigenlijk weer nodig en nu ben ik er ff mee bezig geweest en heb ik iets dat werkt.

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
Function OverzichtForms()
Dim Varform As Object
Dim subcontrol As Control
Dim SQLinstructie As String
Dim formulierId As Integer
'Dim stopq As VbMsgBoxResult

formulierId = 1
For Each Varform In CurrentProject.AllForms
    
    DoCmd.OpenForm Varform.Name, acDesign
    SQLinstructie = "Insert INTO OverzichtForms (Id, Naam, Bron) VALUES(" & formulierId & ",""" & Varform.Name & """,""" & Replace(Screen.ActiveForm.RecordSource, Chr(34), Chr(34) + Chr(34)) & """)"
    'Msgbox SQLinstructie
    CurrentDb.Execute SQLinstructie
        
    For Each subcontrol In Screen.ActiveForm
        If subcontrol.ControlType = 112 Then
            SQLinstructie = "INSERT INTO OverzichtFormSubform (ParentId, SubFormControlNaam, Subform) VALUES(" & formulierId & ", """ & subcontrol.Name & """, """ & subcontrol.SourceObject & """)"
            'Msgbox SQLinstructie
            CurrentDb.Execute SQLinstructie
        End If
        If subcontrol.ControlType = 111 Or subcontrol.ControlType = 110 Then
            SQLinstructie = "INSERT INTO OverzichtFormLists (ParentId, ListControlNaam, RowSource) VALUES(" & formulierId & ", """ & subcontrol.Name & """, """ & Replace(subcontrol.RowSource, Chr(34), Chr(34) + Chr(34)) & """)"
            'Msgbox SQLinstructie
            CurrentDb.Execute SQLinstructie
        End If
    Next
    DoCmd.Close acForm, Varform.Name
    formulierId = formulierId + 1
'stopq = Msgbox("Continue", vbOKCancel)
'Select Case stopq
'Case vbCancel
'Exit Function
'End Select
Next
End Function


Open formulier in design om te verkomen dat er afhankelijke formulieren geopent moeten zijn. (Ik moet ze openen omdat ik Varform.Name niet in een "[Form_" & Varform.Name & ""].enz" verwerkt kreeg, met screen.activeform werkt het goed. Alleen wat meer laadtijd.

Alle controls (velden e.d.) afgaan in een forum en diegene die subformulier (112) en keuzelijsten (met invoervak) (111 en 110) zijn weer opslaan met rijbron of gerelateerd formulier in de 3e colom.

On the fly, in SQL instructies de " vervangen met een "" om te verkomen dat hij de instructie afbreekt.

En een msgbox (die nu uitstaat) om te stoppen als dat nodig is.

Ik heb dus nu een tabel met forms, en twee gerelateerde tabellen met daarin de subformulieren en keuzelijsten (met invoervak). Ik ga dadelijk verder met iets in dezelfde trent voor rapporten en queries. Bedankt voor de hulp en ik hoop dat jullie hier wat aan hebben.

Vragen altijd welkom :P

I do not suffer from insanity... I enjoy every minute of it!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Is er software of een VBA script voor om dit te maken?
P&W FAQ - Scriptrequests
:z

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.