Avatar billede steensommer Praktikant
17. december 2003 - 17:06 Der er 1 løsning

Flere-brugere Read-only

Fra en patientliste lavet i excel opstartes (vha VBA tilsluttet en kommandoknap) en journal (worddokument). Vha VBA logger brugerne på systemet og udfra dette log-on har de enten Redigeringsrettigheder eller Read-only. Når en bruger med Read-only starter journalen (i read-only) burde en bruger med udvidede rettigheder kunne åbne journalen med redigeringsrettigheder MEN sådan er det ikke - den åbnes også som Read-only. Nedenfor ses koden til opstart af journalen:

Sub StartJournal1()

If Sheets("Config").Range("C1") <> "" Then
Sheets("Ark1").Select

'Vi erklærer lige nogen variable
    Dim Wdapp As Object
    Dim Cprnr As String
    Dim Navn As String
    Dim sPath As String
    Dim Indlæggelsesdato As Date

'Og tildeler dem en værdi baseret på indholdet af arket
    Cprnr = Range("G8").Value
    Hcvnr = Range("I8").Value
    Navn = Range("E8").Value
    Indlæggelsesdato = Range("Y8").Value
   
'Besked om at cpr skal indtastes
If Range("Patientliste.xls!G8") = "" Then
    MsgBox ("Cpr nummer SKAL indtastes")

'Undersøger om dokumentet allerede eksisterer
Else:
    sPath = "\\hjertesrv\faelles\Index Data\Journaler\"
   
        If Dir(sPath & Cprnr & ".jou") <> "" Then
'Undersøger om Word er startet
        On Error Resume Next
        Set Wdapp = GetObject(, "Word.application")
            If Err.Number <> 0 Then
'Ellers starter vi word
            Set Wdapp = CreateObject("Word.Application")
            End If
   
                If Sheets("Config").Range("C1") = ("ss") Or Sheets("Config").Range("C1") = ("lbj") Or Sheets("Config").Range("C1") = ("rs") Or Sheets("Config").Range("C1") = ("jp") Or Sheets("Config").Range("C1") = ("tg") Or Sheets("Config").Range("C1") = ("me") Or Sheets("Config").Range("C1") = ("ssa") Or Sheets("Config").Range("C1") = ("bim") Then

                Wdapp.Documents.Open sPath & Cprnr & ".jou"
'Så gør vi Word synlig så der kan skrives i kontinuationen
                Wdapp.Visible = True
                Else
                Wdapp.Documents.Open sPath & Cprnr & ".jou", ReadOnly:=True
'Så gør vi Word synlig så der kan skrives i kontinuationen
                Wdapp.Visible = True
                End If
   
        Else
           
        Dim Msg, Style, Title, Ctxt, Response, MyString
        Msg = "Skal der oprettes en ny journal?"    ' Define message.
        Style = vbYesNo + vbDefaultButton2    ' Define buttons.
        Title = "Meddelelsesbox"    ' Define title.
        Response = MsgBox(Msg, Style, Title, Help, Ctxt)
            If Response = vbYes Then
                               
                If Sheets("Config").Range("C1") = ("ss") Or Sheets("Config").Range("C1") = ("lbj") Or Sheets("Config").Range("C1") = ("rs") Or Sheets("Config").Range("C1") = ("jp") Or Sheets("Config").Range("C1") = ("tg") Or Sheets("Config").Range("C1") = ("me") Or Sheets("Config").Range("C1") = ("ssa") Or Sheets("Config").Range("C1") = ("bim") Then
   
'Undersøger om Word er startet
                On Error Resume Next
                Set Wdapp = GetObject(, "Word.application")
                    If Err.Number <> 0 Then
   
'Ellers starter vi word
                    Set Wdapp = CreateObject("Word.Application")
               
'Så laver vi et nyt tomt dokument baseret på den relevante skabelon
                    Wdapp.Documents.Add ("\\hjertesrv\faelles\Index\dokumenter\journalskabelon\kontinuation.dot")

'Skabelonen indeholder to bogmærker i headeren. De hedder cpr og navn
'I disse bogmærker indsætter vi den variable information fra arket.
                    Wdapp.ActiveDocument.Bookmarks("cprnr").Range.Text = Cprnr
                    Wdapp.ActiveDocument.Bookmarks("Navn").Range.Text = Navn
                    Wdapp.ActiveDocument.Bookmarks("Hcvnr").Range.Text = Hcvnr
                    Wdapp.ActiveDocument.Bookmarks("Indlæggelsesdato").Range.Text = Indlæggelsesdato

'Så skal dokumentet gemmes med indholdet af cpr variable som filnavn
                    Wdapp.ActiveDocument.SaveAs Filename:="\\hjertesrv\faelles\Index Data\Journaler\" & Cprnr & ".jou"

'Så gør vi Word synlig så der kan skrives i kontinuationen
                    Wdapp.Visible = True

'Og frigiver lidt hukommelse når Word lukkes
                    Set Wdapp = Nothing
       
                    End If
   
                Else
                MsgBox ("Du har ikke rettighed til at oprette en journal!")
                End If

            End If
    End If

End If

Else
MsgBox ("Du skal først logge på systemet")
End If

End Sub

Jeg håber at en eller anden kan gennemskue hvad der kan gøres.

/Steen
Avatar billede steensommer Praktikant
03. januar 2004 - 13:46 #1
Nå det lykkedes ikk :0(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester