If password ="111" then do this

Status
Niet open voor verdere reacties.

Killerclown

Gebruiker
Lid geworden
30 dec 2007
Berichten
181
Ik zit met een probleem:

Ik heb verschillende Word-bestanden die beveiligd zijn met een paswoord (1 word-bestand in verschillende versies met telkens verschillende paswoorden)
Als nu iemand het bestand opent met zijn paswoord, zou ik dat in een lijst willen hebben.
Het open van het bestand en loggen in een lijst (op datum en uur) is geen probleem maar ik kan niet zien wie het bestand opent.
Ik wou eerst op de usernaam van de pc loggen maar als iemand op een andere pc zit en daar zijn bestand opent, krijg ik een vals resultaat :-)

Ik zou dit dus willen koppelen aan het paswoord maar is zoiets mogelijk?
Iemand enig idee?

Zoiets in deze trend:
if password = "111" then 'do this
if password = "222" then 'do something else

Maar ik krijg het paswoord van Word er niet uit.

Alvast dank.
 
ALs je bestanden op een Windows server staan op een met NTFS geformatteerde schijf kun je ook auditing aanzetten. Kun je precies zien wanneer een bestand geopend is en door wie.
 
Ik wou eerst op de usernaam van de pc loggen maar als iemand op een andere pc zit en daar zijn bestand opent, krijg ik een vals resultaat
Die snap ik niet helemaal; een username is een username, en die verandert voor een gebruiker toch echt niet als hij op een andere pc inlogt. waarschijnlijk pak je dus niet de naam van de user, maar de naam van de pc.
Username: VBA.Environ("UserName") moet de naam van de persoon die inlogt opleveren.
 
Windowsserver is geen optie.

Als de gebruiker inderdaad inlogt mijn zijn login, kan ik inderdaad de usernaam gebruiken maar een andere gebruiker kan het ingelogde scherm gebruiken van iemand anders en dan heb ik een probleem. (oorspronkelijk werkte ik met username maar ik kreeg rare meldingen :-))
Aangezien toch iedereen het Word-bestand met zijn paswoord opent, zou ik dus op paswoord willen werken.

Maar net dat paswoord krijg ik er niet uit in de code :-s
 
En welke code heb/gebruik je nu?
Graag opmaken met de CODE knop ;)
 
Dit is wat ik al heb.
Misschien een woordje uitleg. In een ander formulier kan Persoon 1 een bericht typen en versturen. Er wordt een Word-document gecreeerd beveiligd met paswoord. (paswoord afhankelijk van de persoon die je aanklikt in het formulier, vb persoon 2)
Persoon 2 kan met zijn paswoord het worddocument openen. Als hij het opent, wordt volgende code geladen die dan een bevestiging stuurt. Die bevestiging is dan ook weer beveilig met een paswoord van diegene die het oorspronkelijke bericht gestuurd heeft (persoon 1 dus)
Aangezien de persoon 2 dit ook op een andere pc kan (met andere usernaam), kan ik dus de usernaam niet gebruiken. Vandaar dat ik op paswoord wil checken.


Code:
Private Sub document_open()

Dim naam As String
Dim strNaam As String

    naam = Application.ActiveDocument.Name
   
    strNaam = ActiveDocument.Words(6).Text
    If strNaam = "ikke" Then LeesbevestigingIkke
    If strNaam = "333" Then Leesbevestiging3
End sub

Code:
Sub LeesbevestigingIkke()

Dim fso
Dim fol As String
Dim FileSaveName As String
Dim sUniekNummer As String
Dim strNaam As String

FolderName = "F:Ikke\Test\Leesbevestiging\"
fol = "F:Ikke\Test\Leesbevestiging"
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(fol) Then fso.CreateFolder (fol)

sUniekNummer = Format(Now(), "-(DDMMMMYYYY)")
FileSaveName = FolderName & "leesbevestiging" & sUniekNummer & ".doc"

strNaam = ActiveDocument.Words(6).Text

Dim nd As New Document
With nd
    nd.Activate
    Selection.HomeKey wdStory
    Selection.Font.Bold = wdToggle
    Selection.Font.Underline = True
    Selection.TypeText "U heeft bericht van:"
    Selection.Font.Underline = False
    Selection.Font.Bold = wdToggle
    Selection.TypeText " "
    Selection.TypeText strNaam
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.Font.Bold = wdToggle
    Selection.Font.Underline = True
    Selection.TypeText "Verzonden op:"
    Selection.Font.Underline = False
    Selection.Font.Bold = wdToggle
    Selection.TypeText " "
    Selection.TypeText Format(Now, "d mmmm yyyy")
    Selection.TypeParagraph
    Selection.TypeParagraph
    .ReadOnlyRecommended = False
    .Password = "123"
    .WritePassword = ""
    .SaveAs2 FileSaveName
    ActiveDocument.Close
          
        
End With

End Sub
 
Kan 'iets' korter:

Code:
Sub Leesbevestiging_snb()
   if dir("F:\Ikke\Test\Leesbevestiging",16)="" then mkdir "F:\Ikke\Test\Leesbevestiging"

   with documents.add
      .content="U heeft bericht van: " & ThisDocument.Words(6).Text & string(2.vbcr) & Verzonden op: " & Format(Now, "d mmmm yyyy")
      .Password = "123"
      .SaveAs "F:\Ikke\Test\Leesbevestiging\leesbevestiging" & Format(Now, "_DDMMMMYYYY"
      .Close 0
   end with
End Sub
 
Inderdaad wat korter. (alvast dank daarvoor)
Dat ga ik morgen eens proberen :-)

Nu nog het paswoord-probleem proberen oplossen :-)
 
Niemand een idee of je het paswoord van Word in de code van VBA kan ophalen?

Zoiets in deze trend:
if password = "111" then 'do this
if password = "222" then 'do something else

Alvast dank.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan