Record toevoegen aan filter of meerdere vensters van 1 form openen.

  • Onderwerp starter Onderwerp starter Tibs
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Tibs

Gebruiker
Lid geworden
29 sep 2009
Berichten
27
Goedemiddag,

Ik zit met het volgende probleempje. Voor een documentbeheer systeem houd een tabel de bestandsnamen bij die worden toegevoegd, na het toekennen van eigenschappen (waaronder ook een revisie index) wordt het document opgeslaan onder een bepaalde documentcode en wordt het andere bestand gewist.

Nu kijkt vba bij het invoegen van nieuwe documenten altijd naar de bestandsnaam, als deze al eens ingevoegd is waarschuwt vba de gebruiker en vraagt of het om een nieuwe revisie gaat. Als de gebruiker dan op Ja klikt dan wordt een eigenschappen form geopend met een filter die het desbetreffende record weergeeft waarbij enkel de revisie index kan verhoogd worden. De reeds toegekende eigenschappen zijn vergrendeld.

Dit lukt perfect als er slechts 1 document wordt toegevoegt dat ooit al eens werd toegevoegd. Als het er meerdere zijn dan wordt enkel de laatste record weergegeven in het eigeschappen form.

Nu is mijn vraag,

Is het mogelijk om een verzameling te maken in een bepaalde filter ? Op die manier komen alle documenten in de filter waarbij de revisie verhoogd kan worden.

of

Is het mogelijk om meerdere vensters van 1 form te openen met daarop een filter van 1 record?

Hieronder de code die ik gebruik voor het openen van de form.

Code:
If (Controle = 6) Then
                    
          Rev = "Ja"
          DoCmd.OpenForm "frmDocumenteigenschappen", acNormal, , "Id = " & OldId & " ", , acNormal
                            
End If
 
Ik denk niet dat het mogelijk is om meerdere exemplaren van hetzelfde formulier te openen, al wil ik die hoop niet definitief voor je de grond in boren.... Misschien dat iemand anders er een oplossing voor weet. Je kunt natuurlijk wel een doorlopend formulier gebruiken, al weet ik niet wat er op te zien is, en of dat dus een alternatief kan zijn.
Als ik het verhaal zo lees, denk ik dat je misschien beter een Loop kunt maken, die allen te bewerken formulieren één voor één opent, bewerkt en weer opslaat. Dan kun je met één formulier blijven werken.
Alternatief is nog, dat je tijdelijke formulieren laat maken voor alle losse documenten, die je na gebruik dan weer verwijdert. Maar dat lijkt mij een erg omslachtige werkwijze...
 
Dank u wel voor het antwoord, na wat onderzoek op internet is het oproepen van meerdere instances wel mogelijk maar niet voor echt voor de toepassing dat ik ze zou gebruiken.

Hoe zie je die loop dan Octafish?

Ik zie even door de bomen het bos niet meer :(
 
Je opent nu een rapport met een bepaald criterium. Als je meerdere formulieren wilt kunnen openen, dan voldoen er dus blijkbaaar meer records aan dat criterium. Van die records kun je een Recordset maken, die je één voor een opent m.b.v. het formulier (in modale modus denk ik zo) en weer sluit.
Om het beter uit te leggen, zou ik eigenlijk een voorbeeldje moeten zien van wat de bedoeling is. Nu blijft het (bewust) een beetje vaag...
 
Ik heb een deel van de code hier gepost, deze staat in om bij iedere record een controle uit te voeren of het bestand vanuit een bepaalde locatie komt en of het bestand reeds aanwezig is in de database.

Code:
If lst Is Nothing Then
                For Each varItem In colDirList
                
                        strArray = Split(varItem, "\")
                        strFilename = strArray(UBound(strArray))
                        
                    If (strPath = DLookup("Workmanager", "tblBronmap", "Id=1")) Then
                    
                        If (strFilename = DLookup("Old", "tblDocumentenoverzicht", "Old ='" & strFilename & "'")) Then

                        GoTo WorkmanagerDubbel
                        
                        End If
                       
                    End If

                    If (strFilename = DLookup("Old", "tblDocumentenoverzicht", "Old ='" & strFilename & "'")) Then
                    
                        If (strPath <> DLookup("Workmanager", "tblBronmap", "Id=1")) Then

                            GoTo Volgende
                    
                        End If
                   
                    Else
                        ' Debug.Print varItem
                        strArray = Split(varItem, "\")
                        strFilename = strArray(UBound(strArray))
                                                                   
                        dbs.Execute "INSERT INTO tblDocumentenoverzicht (Old, Hyperlink) VALUES ('" & strFilename & "', '" & varItem & "');"
                        
                        GoTo Einde
                        
                    End If
                
Volgende:

                    Controle = MsgBox("Opgelet, dit document werd reeds ingevoerd.Is dit een revisie?", vbYesNo, "Opgelet!")
                    strArray = Split(varItem, "\")
                    strFilename = strArray(UBound(strArray))
                    
                        If (Controle = 6) Then
                    
                            Rev = "Ja"
                            OldId = DLookup("Id", "tblDocumenteigenschappen", "Old = '" & strFilename & "' ")
                            DoCmd.OpenForm "frmDocumenteigenschappen", acNormal, , "Id = " & OldId & " ", , acNormal
                            
    
                        End If
                        
                        If (Controle = 7) Then
                        
                            dbs.Execute "INSERT INTO tblDocumenteigenschappen (Old) VALUES ('" & strFilename & "');"
                            OldId = DLookup("Id", "tblDocumenteigenschappen", "Old = '" & strFilename & "' ")
                            MsgBox "Opgelet, het document werd reeds toegevoegd." & Chr(13) & "Gelieve de eigenschappen van het document te vervolledigen.", vbOKOnly, "Opgelet!"
                            DoCmd.OpenForm "frmDocumenteigenschappen", acNormal, , "Id = " & OldId & " ", , acNormal
                            
                        End If
                        
                        GoTo Einde

WorkmanagerDubbel:

                    Controle = MsgBox("Opgelet, dit document werd reeds ingevoerd.Is dit een revisie?", vbYesNo, "Opgelet!")
                    strArray = Split(varItem, "\")
                    strFilename = strArray(UBound(strArray))
                    
                        If (Controle = 6) Then
                    
                            Rev = "Ja"
                            OldId = DLookup("Id", "tblDocumenteigenschappen", "Old = '" & strFilename & "' ")
                            DoCmd.OpenForm "frmDocumenteigenschappen", acNormal, , "Id = " & OldId & " ", , acNormal
                            
    
                        End If
                        
                        If (Controle = 7) Then
                        
                            dbs.Execute "INSERT INTO tblDocumenteigenschappen (Old) VALUES ('" & strFilename & "');"
                            OldId = DLookup("Id", "tblDocumenteigenschappen", "Old = '" & strFilename & "' ")
                            MsgBox "Opgelet, het document werd reeds toegevoegd." & Chr(13) & "Gelieve de eigenschappen van het document te vervolledigen.", vbOKOnly, "Opgelet!"
                            DoCmd.OpenForm "frmDocumenteigenschappen", acNormal, , "Id = " & OldId & " ", , acNormal
                            
                        End If
                        
                        GoTo Einde
                        
Einde:
           
                Next
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan