|
| Brugerdata fra Exchange > Word Fra : El_Skaarup | Vist : 520 gange 40 point Dato : 06-02-06 16:36 |
|
Jeg er ved, at lave en word skabelon til et brev.
Men vil gerne have at den kan 2 ting.
Den første har jeg ikke helt lagt mig selv fast på. Enten skal skabelonen selv finde brugeren ud fra login, eller også skal brugerne fremkomme i en drop-down menu, og så kan vedkommende så selv finde sig selv. PT hælder jeg mest til det sidste med drop-down, så skal den bare selv finde brugerne også.
Den anden ting. Jeg vil gerne have at brugerdata kan trækkes ud fra Exchange-serveren. Man kan jo skrive en brugers telefonnr, adresse o.l., og det vil jeg gerne have ud og ind i et word dokument.
Men hvordan?
Har desværre ikke flere point, ville ellers gerne have givet mere.
| |
| Kommentar Fra : berpox |
Dato : 06-02-06 20:15 |
| | |
|
Jeg har rodet noget rundt med noget kode fra msdn (godt nok ikke lige det du linker til), men det hentede kun kontaktpersonerne i clientens outlook og ikke fra serveren.
| |
| Kommentar Fra : berpox |
Dato : 06-02-06 23:46 |
| | |
|
Jeg har endnu ikke kigget på dine seneste links.
Men som jeg ser problemstillingen, så skal jeg ikke bruge noget med klientens adgang til exchange-serveren. Jeg skal bare have fat i de kontaktpersoner, der er oprettet på serveren. Så vil listen nemlig være ens for alle.
Laver klienten så nogle nye kontaktpersoner, så bliver de oprettet lokalt, og derfor vil brugerne ikke kunne se den samme liste.
Meningen er, at det skal bruges til at auto-udfylde en afsender af f.eks. et brev, og da enkelte godt kan blive sat til at skrive et brev for en anden, så skal der være mulighed for at vælge alle i f.eks. en drop-down. Når dette så er gjort, skal kontaktinfo. tilknyttet det valgte person, så hente for senere at bliver lagt over i Word skabelonen.
| |
|
Citat 'Med F2 kan du i Object Browseren se hvilke muligheder du har for at finde data i Outlook.
'Og så er det ellers bare med at kode derudaf :-) |
Hvordan kan jeg se hvilke der specifikt høre til Outlook delen eventuelt også Exchange?
| |
| Kommentar Fra : berpox |
Dato : 07-02-06 11:45 |
|
Når du har trykket F2, så skulle du gerne kunne se en rude hvor der står <All Libraries>
Hvis du dér vælger "Outlook" så får du de tilhørende objekter.
Ruden under denne, er et søgefelt - indtast f.eks. "recipi" og tryk [ENTER] eller "kikkerten"....
Exchange API'er finder du dér hvor exchange afvikles.
Det er derfor jeg antager, at du er nødt til at gå via Outlook's API for at få fat i Exchangeserverens indhold. Om det er muligt at lave en reference til et modul på serveren ved jeg ikke.
/berpox
| |
| Kommentar Fra : berpox |
Dato : 07-02-06 11:47 |
|
Men - jeg er lige ved at tro, at det er nemmere, at skabe et nyt worddokument med indlejrede oplysninger indefra Outlook...
Har du tænkt den vej rundt?
| |
|
Citat Når du har trykket F2, så skulle du gerne kunne se en rude hvor der står <All Libraries>
Hvis du dér vælger "Outlook" så får du de tilhørende objekter.
Ruden under denne, er et søgefelt - indtast f.eks. "recipi" og tryk [ENTER] eller "kikkerten".... |
Så er det derfor jeg ikke kan finde den, her nemlig ingen som hedder Outlook
Citat Men - jeg er lige ved at tro, at det er nemmere, at skabe et nyt worddokument med indlejrede oplysninger indefra Outlook |
Indlejrede? Fordel og hvordan gøres det?
| |
|
Glem den første bemærkning. Jeg havde set forkert og havde kun Microsoft Office <x.x> Object Library" <x.x> slået til og ikke Outlooks.
| |
|
<offtopic>
Den jeg har lavet, som hiver fat i klientens kontaktpersoner. Den løber jo ind i det problem, at Outlooks sikkerhed er hævet. Så nu skal man give tilgang i x antal minutter, og udløber denne skal man gøre det igen, når man vil tilgå Outlook. Kan dette ikke undgåes, på en eller anden måde?
</offtopic>
| |
|
Øn, er der ikke en side eller en bog, man kan bruge til at finde noget ordentligt information om hvad de forskellige kommandoer gør?
Jeg tænker her på noget lignede php.net, hvor der er en rimelig forklaring og måske også nogle eksempel fra andre brugere.
Jeg kan bl.a. se at jeg kan bruge en funktion der hedder olUser, men hvad den gør og hvordan den bruges, kan jeg ikke udmiddelbart finde.
| |
| Kommentar Fra : berpox |
Dato : 07-02-06 21:47 |
|
Indlejrede oplysninger.....
Jeg mener bare, at jeg forestiller mig følgende scenarie:
1) Indefra Outlook vælges en kontaktperson i adressekartoteket
2) Derefter aktiveres en "knap" der afvikler en makro der åbner et nyt worddokument.
3) Worddokumentet baseret på en skabelon har diverse bogmærker.
4) Outlook-macroen sørger for, at worddokumentet udfyldes med de rigtige oplysninger, og Word tildeles fokus herefter. Nu kan du så arbejde videre herfra.
- på denne måde HAR du på forhånd udvalgt modtageren (din "Selection") og kan udfra denne trække oplysningerne ud, og smække dem over i Word.
| |
| Kommentar Fra : berpox |
Dato : 07-02-06 21:48 |
| | |
|
Citat 1) Indefra Outlook vælges en kontaktperson i adressekartoteket
2) Derefter aktiveres en "knap" der afvikler en makro der åbner et nyt worddokument.
3) Worddokumentet baseret på en skabelon har diverse bogmærker.
4) Outlook-macroen sørger for, at worddokumentet udfyldes med de rigtige oplysninger, og Word tildeles fokus herefter. Nu kan du så arbejde videre herfra.
- på denne måde HAR du på forhånd udvalgt modtageren (din "Selection") og kan udfra denne trække oplysningerne ud, og smække dem over i Word. |
Jeg tro vi snakker lidt forbi hinanden.
Jeg har fået lavet en makro som direkte fra Word, kan hente f.eks. modtageroplysninger. Desværre beder Outlooks sikkerhed mig om at åbne hver gang, ikke optimalt.
Det jeg har brug for at adgang Exchange serverens user infomationer, og dem har jeg ikke adgang til fra Outlook adresse kartotek.
Som jeg har skrevet tidligere, så er det til at kunne vælge AFSENDER af et brev. Jeg kunne eventuelt lave en database til dette, men come on, kunne man få fat i de oplysninger som i forvejen ligger i Exchange, så ville det være meget lettere administrationmæssigt.
| |
| Kommentar Fra : berpox |
Dato : 08-02-06 19:48 |
|
Når din forbindelse til Exchange ryger med jævne mellemrum, så er det fordi det er en database du snakker med.
For at kunne manipulere med data i databasen vil jeg mene, at brugeren skal have administratorrettigheder i exchangedatabasen for at kunne gennemføre transaktioner der ligger ud over hvad outlook klienten giver mulighed for.
Det er muligt at denne artikel kan lede dig på sporet:
http://msdn.microsoft.com/msdnmag/issues/02/01/OutlookSQL/
Jeg står af her - det er noget langhåret noget du har fat i, og jeg tvivler meget stærkt på at der er nemme løsninger på din opgave.
Måske du alligevel kan bruge modellen: (let omskrevet)
1) Indefra Outlook vælges en kontaktperson i adressekartoteket
2) Derefter aktiveres en "knap" der afvikler en makro der åbner et nyt worddokument.
3) Worddokumentet baseret på en skabelon har diverse bogmærker.
4) Outlook-macroen sørger for, at worddokumentet udfyldes med de rigtige oplysninger, og Word tildeles fokus herefter. Nu kan du så arbejde videre herfra.
- på denne måde HAR du på forhånd udvalgt AFSENDEREN (din "Selection") og kan udfra denne trække oplysningerne ud, og smække dem over i Word.
Problemet med at exchange lukker af, er en hard-coded timeout. Der er en maksimal tid til at gennemføre transaktioner i databasen. (det er i alle tilfælde sådan jeg har forstået at exchange hænger sammen)
mvh berpox
| |
|
Jeg kan stadig bare ikke rigtigt se, hvordan jeg har udvalgt afsenderen. Nu kender jeg godt nok ikke VBA så meget, men det eneste jeg lige kunne få frem om brugeren der var logget ind, var brugernavnet og da vi bruger initialer der, så holder det ikke.
Så hvis du gider at skære det ud i pap, please
| |
| Kommentar Fra : berpox |
Dato : 09-02-06 02:16 |
|
1) Åbn Outlook.
2) Opret en Userform1
3) Opret 2 knapper, med navnene cmdCreateLetter / caption "Opret Brev" samt
cmdCancel / caption "Afbryd"
4) Kopiér nedenstående kode ind i kildekoden for userform1
Kode Option Explicit
Dim objApp As Outlook.Application
Dim objSel As Outlook.Selection
Dim objItem As Outlook.ContactItem
Dim MyItem As Outlook.ContactItem
Private Sub cmdCancel_Click()
Unload UserForm1
End
End Sub
Private Sub cmdCreateLetter_Click()
GetCurrentItem 'Call function
CreateNewWordDoc
End Sub
Function GetCurrentItem() As Object
Set objApp = CreateObject("Outlook.Application")
Select Case objApp.ActiveWindow.Class
Case olExplorer
Set objSel = objApp.ActiveExplorer.Selection
If objSel.Count > 0 Then
Set objItem = objSel.Item(1)
Set MyItem = objApp.ActiveExplorer.Selection.Item(1)
'Debug.Print MyItem.FullName
'Debug.Print MyItem.HomeTelephoneNumber
'Debug.Print MyItem.HomeAddress
MsgBox (MyItem.FullName & vbNewLine & MyItem.HomeTelephoneNumber & vbNewLine & MyItem.HomeAddress)
End If
Case Else
' can't handle any other kind of window
End Select
Set GetCurrentItem = objItem
Set objItem = Nothing
Set objSel = Nothing
Set objApp = Nothing
End Function
Sub CreateNewWordDoc()
' add a reference to the Word-library
' create a new folder named C:\Foldername or edit the filnames in the code
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim i As Integer
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
'Set wrdDoc = wrdApp.Documents.Add ' create a new document
' or
Set wrdDoc = wrdApp.Documents.Open("C:\Template.dot")
' open an existing document
With wrdDoc
.Content.InsertAfter "Til"
.Content.InsertParagraphAfter
.Content.InsertAfter MyItem.FullName
.Content.InsertParagraphAfter
.Content.InsertAfter MyItem.HomeAddress
.Content.InsertParagraphAfter
.Content.InsertParagraphAfter
For i = 1 To 25
.Content.InsertAfter "Eksempeltekst linie #" & i
.Content.InsertParagraphAfter
Next i
'If Dir("C:\Foldername\MyNewWordDoc.doc") <> "" Then
' Kill "C:\Foldername\MyNewWordDoc.doc"
'End If
'.SaveAs ("C:\Foldername\MyNewWordDoc.doc")
'.Close ' close the document
End With
'wrdApp.Quit ' close the Word application
'Set wrdDoc = Nothing
'Set wrdApp = Nothing
End Sub
Private Sub UserForm_Click()
End Sub |
5) Opret en Sub Main() i modulet "DenneOutlookSession" med flg. indhold:
Kode Sub main()
UserForm1.Show
End Sub |
6) Udpeg en adresse i kontaktpersoner i Outlook , og tryk på knappen du lige lavede.
Tryk på knappen [Opret brev med denne afsender]
Der kommer lige en messagebox op først med Navn og Adresse på den du har valgt (hjemmeadresse i dette tilfælde!)
Klik på [OK]
Og så oprettes der et worddokument på baggrund af en skabelon jeg har kaldt c:\template.dot
I dette tilfælde har jeg sat navn og adresse ind øverst i dokumentet, men du kan jo placere det som du vil.
Håber dette er brugbart og skåret nok ud i pap
mvh berpox
| |
|
, kigger lige på koden. SQL der kan jeg måske selv finde ud af noget, mit problem er pt. bare at jeg ikke ved hvordan dælen jeg kan får tilgang til User Info i Exchange, hvis man overhovedet kan det.
Måske er det kun Microsoft selv, som har adgang hertil når man skriver en ny mail
| |
|
Jeg får en fejl i CreateNewWordDoc() i linien Dim wrdApp As Word.Application
| |
|
Den siger at typen ikke er defineret
| |
| Kommentar Fra : berpox |
Dato : 09-02-06 11:47 |
|
Har du tilføjet reference til "Word-library" ?
Den hedder Microsoft Word <x.x> Object Library ... ellers kan man jo ikke forbinde til word
mvh berpox
| |
|
Nej ,det havde jeg ikke, kom i tanke om det samtidig som jeg så du havde lagt et indlæg.
Desværre gør den ikke det jeg gerne vil have.
Det indsætter modtageren af brevet, og det er jo afsenderen jeg skal have fat i.
Derudover kan jeg ikke under kontaktpersoner se, de personer som kommer via Exchange. Kontaktpersoner viser jo kun de personer som klienten har lagt ind.
| |
| Kommentar Fra : berpox |
Dato : 09-02-06 13:05 |
|
Altså - istedet for at vælge modtageren i "kontaktpersoner" - så kan man jo vælge sig selv i stedet.
Og mon ikke det kan lade sig gører udfra login-name at finde og selecte sig selv vha. macroen?
| |
| Kommentar Fra : berpox |
Dato : 09-02-06 13:09 |
|
Nej - kontaktpersoner viser skam også de adresser der er "globalt" på serveren!
Hvis ikke - så er det din opsætning den er gal med! Eller serverens.
/berpox
| |
| Kommentar Fra : berpox |
Dato : 24-02-06 19:01 |
| | |
|
Jeg har nu fået hjælp til det fra en konsulentfirma
| |
| Annuller spørgsmålet Fra : El_Skaarup |
Dato : 04-07-06 12:04 |
|
Jeg har fået hjælp til det fra en konsulentfirma
| |
| Du har følgende muligheder | |
|
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
| |
|
|