Народ подключайтесь !!! Неужели никому не интересно ?

Программирование на Visual Basic for Applications
MItya
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 08.06.2005 (Ср) 16:35

Народ подключайтесь !!! Неужели никому не интересно ?

Сообщение MItya » 08.06.2005 (Ср) 16:44

Я из новичков, вопросов > 1000
но для начала два:

1. нужно чтобы в форме при нажатии chkbox в соседнем поле записывалось имя текущего пользователя.

2. Как послать сообщение с формой ?
Последний раз редактировалось MItya 11.06.2005 (Сб) 10:51, всего редактировалось 2 раз(а).

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.06.2005 (Ср) 16:54

эти вопросы надо задавать в форуме VBA :!:

MItya
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 08.06.2005 (Ср) 16:35

Может кто знает как повторить событие ...

Сообщение MItya » 08.06.2005 (Ср) 17:00

пишу в VBS
с текущим именем пользователя в системе Exchange решил так:
Код: Выделить всё
Sub CheckBox6_Click
    If CheckBox6 Then
        userproperties("Recipient1") = vbNullString
    Else
        Set objNS = Application.GetNamespace("MAPI")
        userproperties("Recipient1") = GetCurrentUser
    End if
End sub
Function GetCurrentUser
    Dim objTopFolder, strTopFolder
    Const olFolderInbox = 6
    On Error Resume Next
    Set objTopFolder = _
       Application.GetNamespace("MAPI") _
       .GetDefaultFolder(olFolderInbox).Parent
    strTopFolder = objTopFolder.Name
    If InStr(1, strTopFolder, "-") Then
        GetCurrentUser = Trim(Right(strTopFolder, _
           Len(strTopFolder) - InStr(1, strTopFolder, "-")))
    Else
        GetCurrentUser = strTopFolder
    End If
End Function

но тут есть небольшая проблемка.
Событие выполняется только при создании сообщения.
При его открытии и редактировании уже ничего не меняется.

Не подскажете как можно изменить код, чтобы событие можно было повторять.
хотелось бы примерно так:
Код: Выделить всё
Sub CheckBox6_Click
    If CheckBox6 Then
        userproperties("Recipient1") = vbNullString
    Else
        Set objNS = Application.GetNamespace("MAPI")
        userproperties("Recipient1") = GetCurrentUser
    End if
End sub
Sub CheckBox7_Click
    If CheckBox7 Then
        userproperties("Recipient2") = vbNullString
    Else
        Set objNS = Application.GetNamespace("MAPI")
        userproperties("Recipient2") = GetCurrentUser
    End if
End sub
Function GetCurrentUser
    Dim objTopFolder, strTopFolder
    Const olFolderInbox = 6
    On Error Resume Next
    Set objTopFolder = _
       Application.GetNamespace("MAPI") _
       .GetDefaultFolder(olFolderInbox).Parent
    strTopFolder = objTopFolder.Name
    If InStr(1, strTopFolder, "-") Then
        GetCurrentUser = Trim(Right(strTopFolder, _
           Len(strTopFolder) - InStr(1, strTopFolder, "-")))
    Else
        GetCurrentUser = strTopFolder
    End If
End Function

MItya
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 08.06.2005 (Ср) 16:35

Сообщение MItya » 11.06.2005 (Сб) 10:50

Всем привет !!!

свой вопрос решил так..
Чтобы при его открытии и редактировании событие менялось
нужно редактируемый пункт (в данном случае "Sub CheckBox7_Click")
описать немного по другому:

Код: Выделить всё

Sub CheckBox6_Click
    Set objNS = Application.GetNamespace("MAPI")
    userproperties("Recipient1") = GetCurrentUser
End sub

Sub CheckBox7_Click
Set MyPage = Item.GetInspector.ModifiedFormPages("Zayavka")
    Set MyControls = MyPage.Controls
    if MyControls("CheckBox7").value = True then
        Set objNS = Application.GetNamespace("MAPI")
        userproperties("Recipient2") = GetCurrentUser
    End If
End sub

Function GetCurrentUser
    Dim objTopFolder, strTopFolder
    Const olFolderInbox = 6
    On Error Resume Next
    Set objTopFolder = _
       Application.GetNamespace("MAPI") _
       .GetDefaultFolder(olFolderInbox).Parent
    strTopFolder = objTopFolder.Name
    If InStr(1, strTopFolder, "-") Then
        GetCurrentUser = Trim(Right(strTopFolder, _
           Len(strTopFolder) - InStr(1, strTopFolder, "-")))
    Else
        GetCurrentUser = strTopFolder
    End If
End Function


Остается не решенным второй вопрос:
Как заполненую форму из "Общих папок" ссылкой постать человеку, чтобы он ее отредактировал, сохранил.
И все изменения остались в "Общих папках".

Немного некрасиво изложил, но смысл примерно такой.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 56

    TopList