Skip to content

purple_weave - Implementation Details

VBA Modules

Form_Action List (Form)

File: ms_access_files\purple_weave\Forms\Frm Action List.txt Lines: 198

Procedures

Public Sub UpdateList() - ⚠️ High branching (12 If statements)

Private Sub ActionList_DblClick(Cancel As Integer)

Private Sub ActionList_KeyDown(KeyCode As Integer, Shift As Integer)

Private Sub ActionStatus_AfterUpdate()

Private Sub AddGeneralAction_Click()

Private Sub ClearFilters_Click()

Private Sub CloseFOrm_Click()

Private Sub CriteriaCombo1_AfterUpdate()

Private Sub Dashboards_AfterUpdate()

Private Sub Filter1_AfterUpdate()

Private Sub Form_Activate()

Private Sub Form_Open(Cancel As Integer)

Private Sub PrincipalProjectList_AfterUpdate()

Private Sub PrincipalProjectStatus_AfterUpdate()

Private Sub StrCriteria1_AfterUpdate()

Form_Add and Edit Purple Ops Meeting Action (Form)

File: ms_access_files\purple_weave\Forms\Frm Add and Edit Purple Ops Meeting Action.txt Lines: 72

Procedures

Private Sub CloseFOrm_Click() - ⚠️ Contains GoTo statements

Private Sub Department_AfterUpdate()

Private Sub Form_BeforeInsert(Cancel As Integer)

Private Sub Form_Close()

Private Sub Form_Open(Cancel As Integer)

Form_Add and Edit Users (Form)

File: ms_access_files\purple_weave\Forms\Frm Add and Edit Users.txt Lines: 40

Procedures

Private Sub CloseFOrm_Click() - ⚠️ Contains GoTo statements

Private Sub Form_BeforeUpdate(Cancel As Integer)

Private Sub NewRecord_Click() - ⚠️ Contains GoTo statements

Form_Change Password (Form)

File: ms_access_files\purple_weave\Forms\Frm Change Password.txt Lines: 138

Procedures

Private Sub CancelButton_Click()

Private Sub CurrentPassword_AfterUpdate()

Private Sub Form_Open(Cancel As Integer)

Private Sub NewPassword_AfterUpdate()

Private Sub OKButton_Click()

Form_Opening Dialog (Form)

File: ms_access_files\purple_weave\Forms\Frm Opening Dialog.txt Lines: 97

Procedures

Private Sub CancelButton_Click()

Private Sub Form_Open(Cancel As Integer)

Private Sub Password_AfterUpdate()

Private Sub Username_AfterUpdate()

Form_Principal Project List (Form)

File: ms_access_files\purple_weave\Forms\Frm Principal Project List.txt Lines: 223

Procedures

Public Sub UpdateList() - ⚠️ High branching (7 If statements)

Private Sub ActionList_DblClick(Cancel As Integer)

Private Sub ActionList_KeyDown(KeyCode As Integer, Shift As Integer)

Private Sub AddGeneralAction_Click()

Private Sub AddPPAction_Click()

Private Sub AuditReport_Click()

Private Sub ClearFilters_Click()

Private Sub CloseFOrm_Click()

Private Sub Dashboards_AfterUpdate()

Private Sub ExportLog_Click()

Private Sub Filter1_AfterUpdate()

Private Sub Form_Activate()

Private Sub Form_Open(Cancel As Integer)

Private Sub PrincipalProjectList_AfterUpdate()

Private Sub PrincipalProjectList_DblClick(Cancel As Integer)

Private Sub PrincipalProjectStatus_AfterUpdate()

Private Sub StrCriteria1_AfterUpdate()

Form_Principal Project Pillar High Risk Dialog (Form)

File: ms_access_files\purple_weave\Forms\Frm Principal Project Pillar High Risk Dialog.txt Lines: 70

Procedures

Private Sub Form_Close()

Private Sub Form_Open(Cancel As Integer)

Private Sub OKButton_Click() - ⚠️ Contains GoTo statements

Private Sub Principal_Projet_Status_ID_AfterUpdate()

File: ms_access_files\purple_weave\Modules\basRelink.bas Lines: 604

Procedures

Public Function RelinkODBC() As Boolean - ⚠️ Contains GoTo statements; High branching (7 If statements); Large procedure (153 lines)

Public Function Update_zstblODBC() As Boolean - ⚠️ Contains GoTo statements

Public Function RelinkTablesLocal() As Boolean - ⚠️ Contains GoTo statements

Public Function CompactTablesMain() As Boolean - ⚠️ Contains GoTo statements

Public Function CompactTablesLocal() As Boolean - ⚠️ Contains GoTo statements

Public Function TableExists(ByVal pstrTableName As String) As Boolean - ⚠️ Uses On Error Resume Next

Public Sub PopulateTableList() - ⚠️ Contains GoTo statements

Mod Export Excel (Standard)

File: ms_access_files\purple_weave\Modules\Mod Export Excel.bas Lines: 261

Procedures

Public Sub ExportActionLogToExcel(FromAuto As Boolean, Optional TheFileName As String) - ⚠️ Contains GoTo statements; High branching (13 If statements); Large procedure (259 lines)

Mod Send Outlook Message (Standard)

File: ms_access_files\purple_weave\Modules\Mod Send Outlook Message.bas Lines: 53

Procedures

Public Sub SendOutlookMessage(Recip As String, Optional fileName As String, Optional SubText As String, Optional BodyText As String, Optional CCText As String)

Mod Utilities (Standard)

File: ms_access_files\purple_weave\Modules\Mod Utilities.bas Lines: 140

Procedures

Public Function GetXofY(f As Form) - ⚠️ Uses On Error Resume Next

Public Function IsLoaded(ByVal strFormName As String) As Boolean

Public Function StringsSameCase(x As String, y As String) As Boolean

Public Function CheckForUpper(CheckString As String)

Public Function CheckForSpecial(CheckString As String)

Public Function CheckForNumber(CheckString As String)

Public Sub DeleteImportErrorTables()

Public Sub ObjectCounts()

SQL Queries

Qry Count Active Allocated Companies by Principal Project Pillar

Type: Select

SELECT [Entrepreneur Company Principal Projects].[Principal Project Pillar ID], Count([Entrepreneur Company].[Entrepreneur Company ID]) FROM [Entrepreneur Company], [Entrepreneur Company Programme Years], [Entrepreneur Company Principal Projects] WHERE ((([Entrepreneur Company].[Company Status ID])=1 Or ([Entrepreneur Company].[Com

Qry Count Entrepreneurs Pipeline Phase 1 by Rec PP

Type: Select

SELECT Entrepreneurs.[Recommended Principal Project ID], ProcessStep.Phase, Count(Entrepreneurs.[Entrepreneur ID]) FROM [Entrepreneurs], [ProcessStatus], [ProcessStep]

Qry Count Entrepreneurs Pipeline Phase 2 by Rec PP

Type: Select

SELECT Entrepreneurs.[Recommended Principal Project ID], ProcessStep.Phase, Count(Entrepreneurs.[Entrepreneur ID]) FROM [Entrepreneurs], [ProcessStatus], [ProcessStep]

Qry Count Entrepreneurs Pipeline Phase 3 by Rec PP

Type: Select

SELECT Entrepreneurs.[Recommended Principal Project ID], ProcessStep.Phase, Count(Entrepreneurs.[Entrepreneur ID]) FROM [Entrepreneurs], [ProcessStatus], [ProcessStep]

Qry Count Exited Companies by Principal Project Pillar

Type: Select

SELECT [Entrepreneur Company Principal Projects].[Principal Project Pillar ID], Count([Entrepreneur Company].[Entrepreneur Company ID]) FROM [Entrepreneur Company], [Entrepreneur Company Programme Years], [Entrepreneur Company Principal Projects] WHERE ((([Entrepreneur Company Programme Years].[Company Programme Year Status ID])=2 

Qry Count Exited Need Replacement by Principal Project Pillar

Type: Select

SELECT [Entrepreneur Company Principal Projects].[Principal Project Pillar ID], Count([Entrepreneur Company].[Entrepreneur Company ID]), [Entrepreneur Company Programme Years].[Company Programme Year Status ID] FROM [Entrepreneur Company], [Entrepreneur Company Principal Projects], [Entrepreneur Company Programme Years] WHERE ((([Entrepreneur Company Principal Projects].[Replacement Status])=\"Needs Repla

Type: Select

SELECT [Qry Get Division Dist Model and Rec Info by Company].[Recommended Principal Pro, Count([Qry Get Division Dist Model and Rec Info by Company].[Entrepreneur Compan FROM [Qry Get Division Dist Model and Rec Info by Company], [Entrepreneur Company] WHERE ((([Entrepreneur Company].[Company Status ID])=2 Or ([Entrepreneur Company].[Com

Qry Get Division Dist Model and Rec Info by Company

Type: Select

SELECT Entrepreneurs.[Entrepreneur Company ID], Entrepreneurs.[Process Status ID], Entrepreneurs.[Division ID], Entrepreneurs.[Distribution Model ID], Entrepreneurs.[Recommended Principal Project ID], Entrepreneurs.[Recommended Product ID], Entrepreneurs.[Pipeline ID] FROM [Entrepreneurs]

Qry Principal Project Pillar List

Type: Select

SELECT vwPurpleWeavePrincipalProjectPillarList.[Principal Project Pillar ID], vwPurpleWeavePrincipalProjectPillarList.[Principal Project ID], [Principal] & \, vwPurpleWeavePrincipalProjectPillarList.[BBBEE Pillar], vwPurpleWeavePrincipalProjectPillarList.[Lump Sum Allocation], vwPurpleWeavePrincipalProjectPillarList.[Number of Companies Required], vwPurpleWeavePrincipalProjectPillarList.[Principal Project Status ID], vwPurpleWeavePrincipalProjectPillarList.Status, vwPurpleWeavePrincipalProjectPillarList.Scout, vwPurpleWeavePrincipalProjectPillarList.[Key Account Manager], vwPurpleWeavePrincipalProjectPillarList.[Solutions Architect], vwPurpleWeavePrincipalProjectPillarList.[Principal Project Pillar Urgency], IIf(IsNull([Number Entrepreneurs Phase 1]),0,[Number Entrepreneurs Phase 1]), IIf(IsNull([Number Entrepreneurs Phase 2]),0,[Number Entrepreneurs Phase 2]), IIf(IsNull([Number Entrepreneurs Phase 3]),0,[Number Entrepreneurs Phase 3]), IIf(IsNull([Number Active Allocated Companies]),0,[Number Active Allocated Compa, IIf(IsNull([Number Exited Companies]),0,[Number Exited Companies]), IIf(IsNull([Unallocated Companies]),0,[Unallocated Companies]), [Number of Companies Required]-[Active]-[Exited]-[Unallocated], IIf(IsNull([Number of Replacements Needed]),0,[Number of Replacements Needed]), vwPurpleWeavePrincipalProjectPillarList.[Amount Sponsored], IIf([Lump Sum Allocation]=True,IIf([Active]=0 And [Exited]=0,0,[Amount Sponsored, IIf([Lump Sum Allocation]=True,0,[Amount Sponsored]-[Total Sponsorship]), IIf([Lump Sum Allocation]=True,0,IIf(IsNull([Total To Be Billed]),0,[Total To Be, vwPurpleWeavePrincipalProjectPillarList.[Date Principal Requires Packs] FROM [Qry Count Entrepreneurs Pipeline Phase 1 by Rec PP], [Qry Count Entrepreneurs Pipeline Phase 2 by Rec PP], [Qry Count Entrepreneurs Pipeline Phase 3 by Rec PP], [Qry Sum Total Replaced To Be Billed by Prin Project Pillar], [vwPurpleWeavePrincipalProjectPillarList], [vwPurpleSumTotalReplacedSelectionFeebyPrinProjectPillar], [vwPurpleSumTotalReplacedBilledtoDatebyPrinProjectPillar]

Qry Purple Meeting Action List

Type: Select

SELECT [Purple Meeting Actions].[Purple Meeting Action ID], [Purple Meeting Actions].[Date Created], [Purple Meeting Actions].[Principal Project Pillar ID], [Purple Meeting Actions].Priority, [Purple Meeting Actions].Department, [Purple Meeting Actions].Action, [Purple Meeting Actions].[Due Date], [Purple Meeting Actions].[Date Completed] FROM [Purple Meeting Actions]

Qry Purple Meeting PPP Action List

Type: Select

SELECT [Purple Meeting Actions].[Purple Meeting Action ID], [Purple Meeting Actions].[Date Created], [Purple Meeting Actions].[Principal Project Pillar ID], [Purple Meeting Actions].Priority, [Purple Meeting Actions].Department, [Purple Meeting Actions].Action, [Purple Meeting Actions].[Due Date], [Purple Meeting Actions].[Date Completed], IIf(IsNull([Project Name]),\, [Principal Project Pillars].[BBBEE Pillar], [Principal Projects].[Solutions Architect], [Principal Project Pillars].Scout FROM [Purple Meeting Actions], [Principal Project Pillars], [Principal Projects], [Principals]

Qry Report Action Log

Type: Select

SELECT [Principal Project Pillars].[Principal Project Pillar Urgency], IIf(IsNull([Project Name]),0,[Principal] & \, IIf(IsNull([Project Name]),\, [Principal Project Pillars].[BBBEE Pillar], [Principal Project Pillars].[Lump Sum Allocation], [Principal Project Pillars].[Amount Sponsored], IIf(IsNull([Total Sponsorship Amt]),0,[Total Sponsorship Amt])+IIf(IsNull([Total, [Amount Sponsored]-[Total Sponsorship], IIf([Amount Sponsored]=0,0,[Total Sponsorship]/[Amount Sponsored]), DateDiff(\, DateDiff(\, [Purple Meeting Actions].[Date Completed], [Purple Meeting Actions].[Date Created], [Purple Meeting Actions].Priority, [Purple Meeting Actions].Department, IIf([Department]=\, [Principal Project Pillars].Scout, [Principal Projects].[Solutions Architect], [Purple Meeting Actions].Action, [Purple Meeting Actions].[Due Date], [Principal Project Pillars].[Number of Companies Required], PrincipalProjectStatus.Status, IIf(IsNull([Number Entrepreneurs Phase 1]),0,[Number Entrepreneurs Phase 1]), IIf(IsNull([Number Entrepreneurs Phase 2]),0,[Number Entrepreneurs Phase 2]), IIf(IsNull([Number Entrepreneurs Phase 3]),0,[Number Entrepreneurs Phase 3]), IIf(IsNull([Number Active Allocated Companies]),0,[Number Active Allocated Compa, IIf(IsNull([Number Exited Companies]),0,[Number Exited Companies]), IIf(IsNull([Unallocated Companies]),0,[Unallocated Companies]), [Number of Companies Required]-[Active]-[Exited]-[Unallocated], IIf(IsNull([Number of Replacements Needed]),0,[Number of Replacements Needed]) FROM [Principal Project Pillars], [Principal Projects], [Principals], [PrincipalProjectStatus], [Purple Meeting Actions], [Qry Count Entrepreneurs Pipeline Phase 1 by Rec PP], [Qry Count Entrepreneurs Pipeline Phase 2 by Rec PP], [Qry Count Entrepreneurs Pipeline Phase 3 by Rec PP], [vwPurpleCountActiveAllocatedCompaniesbyPrinProjPillar], [vwPurpleCountExitedCompaniesbyPrincipalProjectPillar], [vwPurpleCountExitedNeedReplacementbyPrincipalProjectPillar], [vwPurpleCountUnallocatedCompaniesbyPrincipalProjectRec], [vwPurpleSumTotalSponsorshipbyPrincipalProjectPillar], [vwPurpleSumTotalReplacedBilledtoDatebyPrinProjectPillar], [vwPurpleSumTotalReplacedSelectionFeebyPrinProjectPillar] WHERE ((([Purple Meeting Actions].[Date Completed]) Is Null))

Qry Report Principal Project Allocation Audit

Type: Select

SELECT vwGarnetRptPrincipalProjectAllocationAudit.[Principal Project ID], vwGarnetRptPrincipalProjectAllocationAudit.Status, IIf(IsNull([Programme Year Status]),[Status],[Programme Year Status]), IIf(IsNull([ProgrammeYrSortOrder]),0,[ProgrammeYrSortOrder]), vwGarnetRptPrincipalProjectAllocationAudit.[Date Status Changed], vwGarnetRptPrincipalProjectAllocationAudit.[Replacement Status], [Company Name] & IIf([Ring Fencing]=True,\, vwGarnetRptPrincipalProjectAllocationAudit.[Contract Start Date] FROM [vwGarnetRptPrincipalProjectAllocationAudit], [Qry Sum Total Spend by Principal Project] WHERE (((vwGarnetRptPrincipalProjectAllocationAudit.[Principal Project ID])=Forms![Frm

Qry SubRpt Principal Project Allocation Audit Replaced Companies

Type: Select

SELECT [Principal Projects].[Principal Project ID], CompanyStatus.Status, IIf(IsNull([Programme Year Status]),[Status],[Programme Year Status]), IIf(IsNull([CompanyProgrammeYearStatus].[Sort Order]),0,[CompanyProgrammeYearSta, [Entrepreneur Company Programme Years].[Date Status Changed], [Entrepreneur Company Principal Projects].[Replacement Status], [Entrepreneur Company].[Company Name], [Entrepreneur Company Programme Years].[Contract Start Date] FROM [Products], [Entrepreneur Company], [CompanyStatus], [Entrepreneur Company Programme Years], [Entrepreneur Company Principal Projects], [Principal Project Pillars], [Principal Projects], [Principals], [Qry Sum Total Spend by Principal Project], [CompanyProgrammeYearStatus], [Delivery Locations] WHERE ((([Principal Projects].[Principal Project ID])=Forms![Frm Principal Project Lis

Qry Sum Total Replaced To Be Billed by Prin Project Pillar

Type: Select

SELECT [SubQry Sum Total Replaced To Be Billed by Prin Project Pillar].[Principal Proje, [Tot To Be Billed]-IIf(IsNull([Replacement Allocated]),0,[Replacement Allocated] FROM [SubQry Sum Total Replaced To Be Billed by Prin Project Pillar], [vwPurpleWeaveSumTotalReplacementAllocatedbyPPP]

Qry Sum Total Spend by Principal Project

Type: Select

SELECT [Principal Project Pillars].[Principal Project ID], Sum([Principal Project Pillars].[Amount Sponsored]) FROM [Principal Project Pillars]

Qry Sum Total Sponsorship by Principal Project Pillar

Type: Select

SELECT [Entrepreneur Company Principal Projects].[Principal Project Pillar ID], Sum(IIf(IsNull([Allocated Amount]),0,[Allocated Amount])+IIf(IsNull([Selection F FROM [Entrepreneur Company Principal Projects] WHERE ((([Entrepreneur Company Principal Projects].[Replacement Status]) Is Null Or ([

qryLinkODBC

Type: Select

SELECT zstblODBC_db.Driver, zstblODBC_db.ServerName, zstblODBC_db.DBName, zstblODBC_db.Authentication, zstblODBC_db.UID, zstblODBC_db.PWD, zstblODBC_tables.Hidden, zstblODBC_tables.TableName, zstblODBC_tables.SourceTableName, zstblODBC_tables.AfterDDL FROM [zstblODBC_db], [zstblODBC_tables] WHERE (((zstblODBC_db.SelectDB)=True) AND ((zstblODBC_tables.Link)=True))

SubQry Sum Total Replaced To Be Billed by Prin Project Pillar

Type: Select

SELECT [Entrepreneur Company Principal Projects].[Principal Project Pillar ID], Sum([Allocated Amount]-[Needs Replacement Billed to Date]) FROM [vwPurpleWeaveSumTotalNeedsRepBilledToDatebyPPPCriteria], [Entrepreneur Company Principal Projects]