Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Outlook - Using Contacts (http://www.outlookbanter.com/outlook-using-contacts/)
-   -   form's VBscript disabled after the first save (http://www.outlookbanter.com/outlook-using-contacts/20657-forms-vbscript-disabled-after-first.html)

j1313 July 13th 06 07:29 PM

form's VBscript disabled after the first save
 
If I open a new form then save it its all good but if i then try to edit this
new contact, the VB script in the form is disabled and events do not take
place (eg at contact item write).

Some things I've tried:
* I Opened the newly saved contact where the scripts don't work and went to
tools/forms/design this form, and then in the form design window to form/view
code and the script code is all there. I go to form/run this form and the
form runs with the scripts.


I've narrowed things down to using method: "item.UserProperties.Find"



in
Function Item_Write()
....
item.UserProperties.Find("GovernmentIDNumber", False)


#############################################

Const MAX_RAND_SIZE = 1000000000
Const MIN_RAND_SIZE = 100000000
Const FOLDER_L0_MAILBOX = "Public Folders"
Const FOLDER_L1 = "All Public Folders"
Const FOLDER_L2 = "Contacts Database"


Dim cloneBunnyLoopProtection

Function MyRand()
Dim r1
r1 = (Rnd * MAX_RAND_SIZE) Mod MAX_RAND_SIZE
If r1 100000000 Then
MyRand = MyRand()
Else
MyRand = r1
End If
End Function

'just for mailboxes
Function getMailboxFolder(mbName)
For Each mailbox In Application.Session.Folders
If InStr(mailbox.Name, mbName) Then
Set getMailboxFolder = mailbox
End If
Next
End Function

'generic folder search function
Function getFolderWithStringInFolder(folderName, parentFolder)
For Each Folder In parentFolder.Folders
If InStr(Folder.Name, folderName) Then
Set getFolderWithStringInFolder = Folder
End If
Next
End Function

Function Item_Open()
cloneBunnyLoopProtection = True
End Function

Function Item_Read()
End Function

Function Item_Write()
Dim currFolder
Dim pubFolder
Dim pubContact
Dim currGovID
Dim pubGovID
msgbox "form - write"
If cloneBunnyLoopProtection then
set currGovID = item.UserProperties.Find("GovernmentIDNumber", False)
If currGovID.Value = "" Then 'new contact
Randomize
currGovID.Value = "id" & MyRand()
Randomize
currGovID.Value = currGovID.Value & MyRand()
Randomize
currGovID.Value = currGovID.Value & MyRand()
Else 'else find the public copy of contact
Set currFolder = getMailboxFolder(FOLDER_L0_MAILBOX )
Set currFolder = getFolderWithStringInFolder(FOLDER_L1,
currFolder)
Set pubFolder = getFolderWithStringInFolder(FOLDER_L2, currFolder)
set pubContact = pubFolder.Items.Find("[GovernmentIDNumber] = "
& currGovID.Value)
If VarType(pubContact) = 8 Then
set pubGovID =
pubContact.UserProperties.Find("GovernmentIDNumber ", False)
If pubGovID.Value = currGovID.Value Then
pubContact.Delete
End if
End if
End If
CreateCensoredContact()
End If
cloneBunnyLoopProtection = False
End Function

Sub CreateCensoredContact()
Dim currFolder
Dim pubFolder
Dim ncc

Set currFolder = getMailboxFolder(FOLDER_L0_MAILBOX )
Set currFolder = getFolderWithStringInFolder(FOLDER_L1, currFolder)
Set pubFolder = getFolderWithStringInFolder(FOLDER_L2, currFolder)

Set ncc = item.copy

CensorContactFields(ncc)
CensorCustomFields(ncc)
ncc.Move pubFolder
End Sub

Sub CensorContactFields(ncc)
ncc.Account = ""
ncc.AssistantName = ""
ncc.AssistantTelephoneNumber = ""
ncc.BillingInformation = ""
'ncc.Body = "" 'Notes Field
'ncc.Business2TelephoneNumber = ""
'ncc.BusinessAddress = ""
'ncc.BusinessAddressCity = ""
'ncc.BusinessAddressCountry = ""
'ncc.BusinessAddressPostalCode = ""
'ncc.BusinessAddressPostOfficeBox = ""
'ncc.BusinessAddressState = ""
'ncc.BusinessAddressStreet = ""
'ncc.BusinessFaxNumber = ""
'ncc.BusinessHomePage = ""
'ncc.BusinessTelephoneNumber = ""
ncc.CallbackTelephoneNumber = ""
ncc.CarTelephoneNumber = ""
'ncc.Categories = ""
ncc.Children = ""
'ncc.Companies = ""
ncc.CompanyMainTelephoneNumber = ""
'ncc.CompanyName = ""
ncc.ComputerNetworkName = ""
'ncc.CustomerID = ""
'ncc.Department = ""
'ncc.Email1Address = ""
'ncc.Email1AddressType = ""
'ncc.Email1DisplayName = ""
ncc.Email2Address = ""
ncc.Email2AddressType = ""
ncc.Email2DisplayName = ""
ncc.Email3Address = ""
ncc.Email3AddressType = ""
ncc.Email3DisplayName = ""
'ncc.FileAs = ""
'ncc.FirstName = ""
ncc.FormDescription = ""
ncc.FTPSite = ""
'ncc.FullName = " "
'ncc.GovernmentIDNumber = ""


ncc.Hobby = ""
ncc.Home2TelephoneNumber = ""
ncc.HomeAddress = ""
ncc.HomeAddressCity = ""
ncc.HomeAddressCountry = ""
ncc.HomeAddressPostalCode = ""
ncc.HomeAddressPostOfficeBox = ""
ncc.HomeAddressState = ""
ncc.HomeAddressStreet = ""
ncc.HomeFaxNumber = ""
ncc.HomeTelephoneNumber = ""
ncc.IMAddress = ""
'ncc.Initials = ""
ncc.InternetFreeBusyAddress = ""
ncc.ISDNNumber = ""
'ncc.JobTitle = ""
ncc.Language = ""
'ncc.LastName = ""
'ncc.MailingAddress = ""
'ncc.MailingAddressCity = ""
'ncc.MailingAddressCountry = ""
'ncc.MailingAddressPostalCode = ""
'ncc.MailingAddressPostOfficeBox = ""
'ncc.MailingAddressState = ""
'ncc.MailingAddressStreet = ""
ncc.ManagerName = ""
ncc.MessageClass = ""
'ncc.MiddleName = ""
ncc.Mileage = ""
ncc.MobileTelephoneNumber = ""
ncc.NetMeetingAlias = ""
ncc.NetMeetingServer = ""
'ncc.NickName = ""

ncc.OfficeLocation = ""
ncc.OrganizationalIDNumber = ""
ncc.OtherAddress = ""
ncc.OtherAddressCity = ""
ncc.OtherAddressCountry = ""
ncc.OtherAddressPostalCode = ""
ncc.OtherAddressPostOfficeBox = ""
ncc.OtherAddressState = ""
ncc.OtherAddressStreet = ""
ncc.OtherFaxNumber = ""
ncc.OtherTelephoneNumber = ""
ncc.PagerNumber = ""
ncc.PersonalHomePage = ""
ncc.PrimaryTelephoneNumber = ""
'ncc.Profession = ""
ncc.RadioTelephoneNumber = ""
ncc.ReferredBy = ""
ncc.Spouse = ""
'ncc.Subject = ""
'ncc.Suffix = ""
ncc.TelexNumber = ""
'ncc.Title = ""
ncc.TTYTDDTelephoneNumber = ""
ncc.User1 = ""
ncc.User2 = ""
ncc.User3 = ""
ncc.User4 = ""
'ncc.UserCertificate = ""
ncc.WebPage = ""
ncc.YomiCompanyName = ""
ncc.YomiFirstName = ""
ncc.YomiLastName = ""
End Sub

Sub CensorCustomFields(ncc)
ncc.UserProperties.Find("Private Notes").Value = ""
'ncc.UserProperties.Find("Project").Value = ""
'ncc.UserProperties.Find("Project Role").Value = ""

ncc.UserProperties.Find("Christmas card 2001 sent").Value = False
ncc.UserProperties.Find("Christmas card 2001 received").Value = False
ncc.UserProperties.Find("Christmas card 2002 sent").Value = False
ncc.UserProperties.Find("Christmas card 2002 received").Value = False
ncc.UserProperties.Find("Christmas card 2003 sent").Value = False
ncc.UserProperties.Find("Christmas card 2003 received").Value = False
ncc.UserProperties.Find("Christmas card 2004 sent").Value = False
ncc.UserProperties.Find("Christmas card 2004 received").Value = False
ncc.UserProperties.Find("Christmas card 2005 sent").Value = False
ncc.UserProperties.Find("Christmas card 2005 received").Value = False
ncc.UserProperties.Find("Christmas card 2006 sent").Value = False
ncc.UserProperties.Find("Christmas card 2006 received").Value = False
ncc.UserProperties.Find("Christmas card 2007 sent").Value = False
ncc.UserProperties.Find("Christmas card 2007 received").Value = False
ncc.UserProperties.Find("Christmas card 2008 sent").Value = False
ncc.UserProperties.Find("Christmas card 2008 received").Value = False
ncc.UserProperties.Find("Christmas card 2009 sent").Value = False
ncc.UserProperties.Find("Christmas card 2009 received").Value = False
ncc.UserProperties.Find("Christmas card 2010 sent").Value = False
ncc.UserProperties.Find("Christmas card 2010 received").Value = False
ncc.UserProperties.Find("Christmas card 2011 sent").Value = False
ncc.UserProperties.Find("Christmas card 2011 received").Value = False
ncc.UserProperties.Find("Christmas card 2012 sent").Value = False
ncc.UserProperties.Find("Christmas card 2012 received").Value = False
ncc.UserProperties.Find("Christmas card 2013 sent").Value = False
ncc.UserProperties.Find("Christmas card 2013 received").Value = False
ncc.UserProperties.Find("Christmas card 2014 sent").Value = False
ncc.UserProperties.Find("Christmas card 2014 received").Value = False
ncc.UserProperties.Find("Christmas card 2015 sent").Value = False
ncc.UserProperties.Find("Christmas card 2015 received").Value = False

ncc.UserProperties.Find("HSBC").Value = False
ncc.UserProperties.Find("Vents").Value = False
ncc.UserProperties.Find("CraftsC").Value = False
ncc.UserProperties.Find("V&A").Value = False
ncc.UserProperties.Find("Sci-M").Value = False
ncc.UserProperties.Find("F&T").Value = False
ncc.UserProperties.Find("Sitooterie").Value = False
ncc.UserProperties.Find("DesignM").Value = False
ncc.UserProperties.Find("Zipbags").Value = False

ncc.UserProperties.Find("Aberystwyth").Value = False
ncc.UserProperties.Find("Bleigiessen").Value = False
ncc.UserProperties.Find("Blue Carpet").Value = False
ncc.UserProperties.Find("B of the Bang").Value = False
ncc.UserProperties.Find("Guy's Hospital").Value = False
ncc.UserProperties.Find("Little Hampton").Value = False
ncc.UserProperties.Find("Longchamp NY").Value = False
ncc.UserProperties.Find("Rolling Bridge").Value = False

End Sub


'################################################# #########
' Phone number reformating
'################################################# #########



Function purePhoneNumber(markedNumber)
markedNumber = Join(Split(markedNumber, " "), "")
markedNumber = Join(Split(markedNumber, "("), "")
markedNumber = Join(Split(markedNumber, "-"), "")
markedNumber = Join(Split(markedNumber, "."), "")
purePhoneNumber = Join(Split(markedNumber, ")"), "")
End Function

Sub Item_PropertyChange(ByVal Name)
Select case Name
Case "AssistantTelephoneNumber"
item.AssistantTelephoneNumber =
ReformatedNumber(item.AssistantTelephoneNumber)
Case "Business2TelephoneNumber"
item.Business2TelephoneNumber =
ReformatedNumber(item.Business2TelephoneNumber)
Case "BusinessFaxNumber"
item.BusinessFaxNumber = ReformatedNumber(item.BusinessFaxNumber)
Case "BusinessTelephoneNumber"
item.BusinessTelephoneNumber =
ReformatedNumber(item.BusinessTelephoneNumber)
Case "CallbackTelephoneNumber"
item.CallbackTelephoneNumber =
ReformatedNumber(item.CallbackTelephoneNumber)
Case "CarTelephoneNumber"
item.CarTelephoneNumber = ReformatedNumber(item.CarTelephoneNumber)
Case "CompanyMainTelephoneNumber"
item.CompanyMainTelephoneNumber =
ReformatedNumber(item.CompanyMainTelephoneNumber)
Case "Home2TelephoneNumber"
item.Home2TelephoneNumber= ReformatedNumber(item.Home2TelephoneNumber)
Case "HomeFaxNumber"
item.HomeFaxNumber = ReformatedNumber(item.HomeFaxNumber)
Case "HomeTelephoneNumber"
item.HomeTelephoneNumber = ReformatedNumber(item.HomeTelephoneNumber)
Case "ISDNNumber"
item.ISDNNumber = ReformatedNumber(item.ISDNNumber)
Case "MobileTelephoneNumber"
item.MobileTelephoneNumber =
ReformatedNumber(item.MobileTelephoneNumber)
Case "OrganizationalIDNumber"
item.OrganizationalIDNumber =
ReformatedNumber(item.OrganizationalIDNumber)
Case "OtherFaxNumber"
item.OtherFaxNumber = ReformatedNumber(item.OtherFaxNumber)
Case "OtherTelephoneNumber"
item.OtherTelephoneNumber =
ReformatedNumber(item.OtherTelephoneNumber)
Case "PagerNumber"
item.PagerNumber = ReformatedNumber(item.PagerNumber)
Case "PrimaryTelephoneNumber"
item.PrimaryTelephoneNumber =
ReformatedNumber(item.PrimaryTelephoneNumber)
Case "RadioTelephoneNumber"
item.RadioTelephoneNumber =
ReformatedNumber(item.RadioTelephoneNumber)
Case "TelexNumber"
item.TelexNumber = ReformatedNumber(item.TelexNumber)
Case "TTYTDDTelephoneNumber"
item.TTYTDDTelephoneNumber =
ReformatedNumber(item.TTYTDDTelephoneNumber)
End Select
End Sub

Function ReformatedNumber(phoneNumber)
Dim NNLen
Dim CCode
Dim NNumber

phoneNumber = purePhoneNumber(phoneNumber)

If Len(phoneNumber) = 4 Then
If Left(phoneNumber, 1) = "+" And IsNumeric(Right(Left(phoneNumber,
3), 2)) Then
NNLen = Len(phoneNumber) - 3
CCode = Left(phoneNumber, 3)
NNumber = Right(phoneNumber, NNLen)
phoneNumber = CCode & " " & NNumber
ElseIf Left(phoneNumber, 2) = "00" And
IsNumeric(Right(Left(phoneNumber, 2), 2)) Then
NNLen = Len(phoneNumber) - 4
CCode = Left(phoneNumber, 4)
NNumber = Right(phoneNumber, NNLen)
phoneNumber = "+" & Right(CCode, 2) & " " & NNumber
ElseIf Left(phoneNumber, 1) = "0" Then
NNLen = Len(phoneNumber) - 1
CCode = Left(phoneNumber, 1)
NNumber = Right(phoneNumber, NNLen)
phoneNumber = "+" & "44 " & NNumber
Else
phoneNumber = "+" & "44 " & "20" & phoneNumber
End If
If Mid(phoneNumber, 2,1) = "1" Then
phoneNumber = NANP_CCodeReformated(phoneNumber)
End If

End If
ReformatedNumber = phoneNumber

End Function

Function NANP_CCodeReformated(phoneNumber)
phoneNumber = Join(Split(phoneNumber), "")
If Len(phoneNumber) 5 Then
phoneNumber = Left(phoneNumber, 2) & " " & _
Mid(phoneNumber, 3,3) & " " & _
Mid(phoneNumber, 6,Len(phoneNumber)-5)
Else
phoneNumber = Left(phoneNumber, 2) & " " & _
Mid(phoneNumber, 3,Len(phoneNumber)-2)
End If
NANP_CCodeReformated = phoneNumber
End Function




Sue Mosher [MVP-Outlook] July 13th 06 07:41 PM

form's VBscript disabled after the first save
 
If the form doesn't run code after you have sent or saved an item using the published form, you probably have done something to "one-off" the form. Outlook 2003, Outlook 2002, Outlook 2000 SP2 and Outlook 2000 or 98 with the Email Security Update will not run code on one-off forms; see http://www.outlookcode.com/d/secforms.htm for more information on this issue.

GovernmentIDNumber is a built-in property, not a custom property. You should access it with Item.GovernmentIDNumber, not through the UserProperties collection.

FYI, there is a newsgroup specifically for Outlook forms issues "down the hall" at microsoft.public.outlook.program_forms or, via web interface, at http://www.microsoft.com/office/comm...rogram_f orms

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx

"j1313" wrote in message ...
If I open a new form then save it its all good but if i then try to edit this
new contact, the VB script in the form is disabled and events do not take
place (eg at contact item write).

Some things I've tried:
* I Opened the newly saved contact where the scripts don't work and went to
tools/forms/design this form, and then in the form design window to form/view
code and the script code is all there. I go to form/run this form and the
form runs with the scripts.


I've narrowed things down to using method: "item.UserProperties.Find"



in
Function Item_Write()
...
item.UserProperties.Find("GovernmentIDNumber", False)


#############################################

Const MAX_RAND_SIZE = 1000000000
Const MIN_RAND_SIZE = 100000000
Const FOLDER_L0_MAILBOX = "Public Folders"
Const FOLDER_L1 = "All Public Folders"
Const FOLDER_L2 = "Contacts Database"


Dim cloneBunnyLoopProtection

Function MyRand()
Dim r1
r1 = (Rnd * MAX_RAND_SIZE) Mod MAX_RAND_SIZE
If r1 100000000 Then
MyRand = MyRand()
Else
MyRand = r1
End If
End Function

'just for mailboxes
Function getMailboxFolder(mbName)
For Each mailbox In Application.Session.Folders
If InStr(mailbox.Name, mbName) Then
Set getMailboxFolder = mailbox
End If
Next
End Function

'generic folder search function
Function getFolderWithStringInFolder(folderName, parentFolder)
For Each Folder In parentFolder.Folders
If InStr(Folder.Name, folderName) Then
Set getFolderWithStringInFolder = Folder
End If
Next
End Function

Function Item_Open()
cloneBunnyLoopProtection = True
End Function

Function Item_Read()
End Function

Function Item_Write()
Dim currFolder
Dim pubFolder
Dim pubContact
Dim currGovID
Dim pubGovID
msgbox "form - write"
If cloneBunnyLoopProtection then
set currGovID = item.UserProperties.Find("GovernmentIDNumber", False)
If currGovID.Value = "" Then 'new contact
Randomize
currGovID.Value = "id" & MyRand()
Randomize
currGovID.Value = currGovID.Value & MyRand()
Randomize
currGovID.Value = currGovID.Value & MyRand()
Else 'else find the public copy of contact
Set currFolder = getMailboxFolder(FOLDER_L0_MAILBOX )
Set currFolder = getFolderWithStringInFolder(FOLDER_L1,
currFolder)
Set pubFolder = getFolderWithStringInFolder(FOLDER_L2, currFolder)
set pubContact = pubFolder.Items.Find("[GovernmentIDNumber] = "
& currGovID.Value)
If VarType(pubContact) = 8 Then
set pubGovID =
pubContact.UserProperties.Find("GovernmentIDNumber ", False)
If pubGovID.Value = currGovID.Value Then
pubContact.Delete
End if
End if
End If
CreateCensoredContact()
End If
cloneBunnyLoopProtection = False
End Function

Sub CreateCensoredContact()
Dim currFolder
Dim pubFolder
Dim ncc

Set currFolder = getMailboxFolder(FOLDER_L0_MAILBOX )
Set currFolder = getFolderWithStringInFolder(FOLDER_L1, currFolder)
Set pubFolder = getFolderWithStringInFolder(FOLDER_L2, currFolder)

Set ncc = item.copy

CensorContactFields(ncc)
CensorCustomFields(ncc)
ncc.Move pubFolder
End Sub

Sub CensorContactFields(ncc)
ncc.Account = ""
ncc.AssistantName = ""
ncc.AssistantTelephoneNumber = ""
ncc.BillingInformation = ""
'ncc.Body = "" 'Notes Field
'ncc.Business2TelephoneNumber = ""
'ncc.BusinessAddress = ""
'ncc.BusinessAddressCity = ""
'ncc.BusinessAddressCountry = ""
'ncc.BusinessAddressPostalCode = ""
'ncc.BusinessAddressPostOfficeBox = ""
'ncc.BusinessAddressState = ""
'ncc.BusinessAddressStreet = ""
'ncc.BusinessFaxNumber = ""
'ncc.BusinessHomePage = ""
'ncc.BusinessTelephoneNumber = ""
ncc.CallbackTelephoneNumber = ""
ncc.CarTelephoneNumber = ""
'ncc.Categories = ""
ncc.Children = ""
'ncc.Companies = ""
ncc.CompanyMainTelephoneNumber = ""
'ncc.CompanyName = ""
ncc.ComputerNetworkName = ""
'ncc.CustomerID = ""
'ncc.Department = ""
'ncc.Email1Address = ""
'ncc.Email1AddressType = ""
'ncc.Email1DisplayName = ""
ncc.Email2Address = ""
ncc.Email2AddressType = ""
ncc.Email2DisplayName = ""
ncc.Email3Address = ""
ncc.Email3AddressType = ""
ncc.Email3DisplayName = ""
'ncc.FileAs = ""
'ncc.FirstName = ""
ncc.FormDescription = ""
ncc.FTPSite = ""
'ncc.FullName = " "
'ncc.GovernmentIDNumber = ""


ncc.Hobby = ""
ncc.Home2TelephoneNumber = ""
ncc.HomeAddress = ""
ncc.HomeAddressCity = ""
ncc.HomeAddressCountry = ""
ncc.HomeAddressPostalCode = ""
ncc.HomeAddressPostOfficeBox = ""
ncc.HomeAddressState = ""
ncc.HomeAddressStreet = ""
ncc.HomeFaxNumber = ""
ncc.HomeTelephoneNumber = ""
ncc.IMAddress = ""
'ncc.Initials = ""
ncc.InternetFreeBusyAddress = ""
ncc.ISDNNumber = ""
'ncc.JobTitle = ""
ncc.Language = ""
'ncc.LastName = ""
'ncc.MailingAddress = ""
'ncc.MailingAddressCity = ""
'ncc.MailingAddressCountry = ""
'ncc.MailingAddressPostalCode = ""
'ncc.MailingAddressPostOfficeBox = ""
'ncc.MailingAddressState = ""
'ncc.MailingAddressStreet = ""
ncc.ManagerName = ""
ncc.MessageClass = ""
'ncc.MiddleName = ""
ncc.Mileage = ""
ncc.MobileTelephoneNumber = ""
ncc.NetMeetingAlias = ""
ncc.NetMeetingServer = ""
'ncc.NickName = ""

ncc.OfficeLocation = ""
ncc.OrganizationalIDNumber = ""
ncc.OtherAddress = ""
ncc.OtherAddressCity = ""
ncc.OtherAddressCountry = ""
ncc.OtherAddressPostalCode = ""
ncc.OtherAddressPostOfficeBox = ""
ncc.OtherAddressState = ""
ncc.OtherAddressStreet = ""
ncc.OtherFaxNumber = ""
ncc.OtherTelephoneNumber = ""
ncc.PagerNumber = ""
ncc.PersonalHomePage = ""
ncc.PrimaryTelephoneNumber = ""
'ncc.Profession = ""
ncc.RadioTelephoneNumber = ""
ncc.ReferredBy = ""
ncc.Spouse = ""
'ncc.Subject = ""
'ncc.Suffix = ""
ncc.TelexNumber = ""
'ncc.Title = ""
ncc.TTYTDDTelephoneNumber = ""
ncc.User1 = ""
ncc.User2 = ""
ncc.User3 = ""
ncc.User4 = ""
'ncc.UserCertificate = ""
ncc.WebPage = ""
ncc.YomiCompanyName = ""
ncc.YomiFirstName = ""
ncc.YomiLastName = ""
End Sub

Sub CensorCustomFields(ncc)
ncc.UserProperties.Find("Private Notes").Value = ""
'ncc.UserProperties.Find("Project").Value = ""
'ncc.UserProperties.Find("Project Role").Value = ""

ncc.UserProperties.Find("Christmas card 2001 sent").Value = False
ncc.UserProperties.Find("Christmas card 2001 received").Value = False
ncc.UserProperties.Find("Christmas card 2002 sent").Value = False
ncc.UserProperties.Find("Christmas card 2002 received").Value = False
ncc.UserProperties.Find("Christmas card 2003 sent").Value = False
ncc.UserProperties.Find("Christmas card 2003 received").Value = False
ncc.UserProperties.Find("Christmas card 2004 sent").Value = False
ncc.UserProperties.Find("Christmas card 2004 received").Value = False
ncc.UserProperties.Find("Christmas card 2005 sent").Value = False
ncc.UserProperties.Find("Christmas card 2005 received").Value = False
ncc.UserProperties.Find("Christmas card 2006 sent").Value = False
ncc.UserProperties.Find("Christmas card 2006 received").Value = False
ncc.UserProperties.Find("Christmas card 2007 sent").Value = False
ncc.UserProperties.Find("Christmas card 2007 received").Value = False
ncc.UserProperties.Find("Christmas card 2008 sent").Value = False
ncc.UserProperties.Find("Christmas card 2008 received").Value = False
ncc.UserProperties.Find("Christmas card 2009 sent").Value = False
ncc.UserProperties.Find("Christmas card 2009 received").Value = False
ncc.UserProperties.Find("Christmas card 2010 sent").Value = False
ncc.UserProperties.Find("Christmas card 2010 received").Value = False
ncc.UserProperties.Find("Christmas card 2011 sent").Value = False
ncc.UserProperties.Find("Christmas card 2011 received").Value = False
ncc.UserProperties.Find("Christmas card 2012 sent").Value = False
ncc.UserProperties.Find("Christmas card 2012 received").Value = False
ncc.UserProperties.Find("Christmas card 2013 sent").Value = False
ncc.UserProperties.Find("Christmas card 2013 received").Value = False
ncc.UserProperties.Find("Christmas card 2014 sent").Value = False
ncc.UserProperties.Find("Christmas card 2014 received").Value = False
ncc.UserProperties.Find("Christmas card 2015 sent").Value = False
ncc.UserProperties.Find("Christmas card 2015 received").Value = False

ncc.UserProperties.Find("HSBC").Value = False
ncc.UserProperties.Find("Vents").Value = False
ncc.UserProperties.Find("CraftsC").Value = False
ncc.UserProperties.Find("V&A").Value = False
ncc.UserProperties.Find("Sci-M").Value = False
ncc.UserProperties.Find("F&T").Value = False
ncc.UserProperties.Find("Sitooterie").Value = False
ncc.UserProperties.Find("DesignM").Value = False
ncc.UserProperties.Find("Zipbags").Value = False

ncc.UserProperties.Find("Aberystwyth").Value = False
ncc.UserProperties.Find("Bleigiessen").Value = False
ncc.UserProperties.Find("Blue Carpet").Value = False
ncc.UserProperties.Find("B of the Bang").Value = False
ncc.UserProperties.Find("Guy's Hospital").Value = False
ncc.UserProperties.Find("Little Hampton").Value = False
ncc.UserProperties.Find("Longchamp NY").Value = False
ncc.UserProperties.Find("Rolling Bridge").Value = False

End Sub


'################################################# #########
' Phone number reformating
'################################################# #########



Function purePhoneNumber(markedNumber)
markedNumber = Join(Split(markedNumber, " "), "")
markedNumber = Join(Split(markedNumber, "("), "")
markedNumber = Join(Split(markedNumber, "-"), "")
markedNumber = Join(Split(markedNumber, "."), "")
purePhoneNumber = Join(Split(markedNumber, ")"), "")
End Function

Sub Item_PropertyChange(ByVal Name)
Select case Name
Case "AssistantTelephoneNumber"
item.AssistantTelephoneNumber =
ReformatedNumber(item.AssistantTelephoneNumber)
Case "Business2TelephoneNumber"
item.Business2TelephoneNumber =
ReformatedNumber(item.Business2TelephoneNumber)
Case "BusinessFaxNumber"
item.BusinessFaxNumber = ReformatedNumber(item.BusinessFaxNumber)
Case "BusinessTelephoneNumber"
item.BusinessTelephoneNumber =
ReformatedNumber(item.BusinessTelephoneNumber)
Case "CallbackTelephoneNumber"
item.CallbackTelephoneNumber =
ReformatedNumber(item.CallbackTelephoneNumber)
Case "CarTelephoneNumber"
item.CarTelephoneNumber = ReformatedNumber(item.CarTelephoneNumber)
Case "CompanyMainTelephoneNumber"
item.CompanyMainTelephoneNumber =
ReformatedNumber(item.CompanyMainTelephoneNumber)
Case "Home2TelephoneNumber"
item.Home2TelephoneNumber= ReformatedNumber(item.Home2TelephoneNumber)
Case "HomeFaxNumber"
item.HomeFaxNumber = ReformatedNumber(item.HomeFaxNumber)
Case "HomeTelephoneNumber"
item.HomeTelephoneNumber = ReformatedNumber(item.HomeTelephoneNumber)
Case "ISDNNumber"
item.ISDNNumber = ReformatedNumber(item.ISDNNumber)
Case "MobileTelephoneNumber"
item.MobileTelephoneNumber =
ReformatedNumber(item.MobileTelephoneNumber)
Case "OrganizationalIDNumber"
item.OrganizationalIDNumber =
ReformatedNumber(item.OrganizationalIDNumber)
Case "OtherFaxNumber"
item.OtherFaxNumber = ReformatedNumber(item.OtherFaxNumber)
Case "OtherTelephoneNumber"
item.OtherTelephoneNumber =
ReformatedNumber(item.OtherTelephoneNumber)
Case "PagerNumber"
item.PagerNumber = ReformatedNumber(item.PagerNumber)
Case "PrimaryTelephoneNumber"
item.PrimaryTelephoneNumber =
ReformatedNumber(item.PrimaryTelephoneNumber)
Case "RadioTelephoneNumber"
item.RadioTelephoneNumber =
ReformatedNumber(item.RadioTelephoneNumber)
Case "TelexNumber"
item.TelexNumber = ReformatedNumber(item.TelexNumber)
Case "TTYTDDTelephoneNumber"
item.TTYTDDTelephoneNumber =
ReformatedNumber(item.TTYTDDTelephoneNumber)
End Select
End Sub

Function ReformatedNumber(phoneNumber)
Dim NNLen
Dim CCode
Dim NNumber

phoneNumber = purePhoneNumber(phoneNumber)

If Len(phoneNumber) = 4 Then
If Left(phoneNumber, 1) = "+" And IsNumeric(Right(Left(phoneNumber,
3), 2)) Then
NNLen = Len(phoneNumber) - 3
CCode = Left(phoneNumber, 3)
NNumber = Right(phoneNumber, NNLen)
phoneNumber = CCode & " " & NNumber
ElseIf Left(phoneNumber, 2) = "00" And
IsNumeric(Right(Left(phoneNumber, 2), 2)) Then
NNLen = Len(phoneNumber) - 4
CCode = Left(phoneNumber, 4)
NNumber = Right(phoneNumber, NNLen)
phoneNumber = "+" & Right(CCode, 2) & " " & NNumber
ElseIf Left(phoneNumber, 1) = "0" Then
NNLen = Len(phoneNumber) - 1
CCode = Left(phoneNumber, 1)
NNumber = Right(phoneNumber, NNLen)
phoneNumber = "+" & "44 " & NNumber
Else
phoneNumber = "+" & "44 " & "20" & phoneNumber
End If
If Mid(phoneNumber, 2,1) = "1" Then
phoneNumber = NANP_CCodeReformated(phoneNumber)
End If

End If
ReformatedNumber = phoneNumber

End Function

Function NANP_CCodeReformated(phoneNumber)
phoneNumber = Join(Split(phoneNumber), "")
If Len(phoneNumber) 5 Then
phoneNumber = Left(phoneNumber, 2) & " " & _
Mid(phoneNumber, 3,3) & " " & _
Mid(phoneNumber, 6,Len(phoneNumber)-5)
Else
phoneNumber = Left(phoneNumber, 2) & " " & _
Mid(phoneNumber, 3,Len(phoneNumber)-2)
End If
NANP_CCodeReformated = phoneNumber
End Function




jkos13 July 17th 06 12:48 PM

form's VBscript disabled after the first save
 
Using "Item.GovernmentIDNumber" instead of
"Item.UserProperties.Find("GovernmentIDNumber" , False)" has worked.

many thanks

"Sue Mosher [MVP-Outlook]" wrote:

If the form doesn't run code after you have sent or saved an item using the published form, you probably have done something to "one-off" the form. Outlook 2003, Outlook 2002, Outlook 2000 SP2 and Outlook 2000 or 98 with the Email Security Update will not run code on one-off forms; see http://www.outlookcode.com/d/secforms.htm for more information on this issue.

GovernmentIDNumber is a built-in property, not a custom property. You should access it with Item.GovernmentIDNumber, not through the UserProperties collection.

FYI, there is a newsgroup specifically for Outlook forms issues "down the hall" at microsoft.public.outlook.program_forms or, via web interface, at http://www.microsoft.com/office/comm...rogram_f orms

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx

"j1313" wrote in message ...
If I open a new form then save it its all good but if i then try to edit this
new contact, the VB script in the form is disabled and events do not take
place (eg at contact item write).

Some things I've tried:
* I Opened the newly saved contact where the scripts don't work and went to
tools/forms/design this form, and then in the form design window to form/view
code and the script code is all there. I go to form/run this form and the
form runs with the scripts.


I've narrowed things down to using method: "item.UserProperties.Find"



in
Function Item_Write()
...
item.UserProperties.Find("GovernmentIDNumber", False)


#############################################

.
.
.



All times are GMT +1. The time now is 01:40 PM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com