Exporting values from multiple documents into Excel Spreadsheet - excel

How can I gather the information for each person, store it, get the information for the next person, store it and then place all of the information on the spreadsheet?
Sub Initialize
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim lspTrainingDb As NotesDatabase
Dim view As NotesView
Dim uiView As NotesUIView
Dim childView As NotesView
Dim trainView As NotesView
Dim doc As NotesDocument
Dim uiDoc As NotesUIDocument
Dim childDoc As NotesDocument
Dim trainDoc As NotesDocument
Dim dc As NotesDocumentCollection
Dim dcTrain As NotesDocumentCollection
Dim TotalDocs As Long
Dim awards(24) As Variant
Dim commendations(74) As Variant
Dim xlArray() As String
Dim experience1 As Variant
Dim timeInGrade1 As Variant
Dim fullName As Variant
Dim allAwards As String
Dim allCommendations As String
Dim allTraining As String
Dim docKey As Variant
Dim vRecertify As Variant
Set db = s.CurrentDatabase
arrayDocs% = 0
Set uiView = ws.currentview
Set dc = uiView.documents
If(dc.Count = 0) Then
MessageBox "Please select an officer. (To select a document, place a check mark in the column preceding the document)",48,"Error:"
Exit Sub
End If
'Get field values from the LSP Training Records database
Set profileDoc = db.GetProfileDocument("ProfileDocument")
LSPTrainingServer$ = profileDoc.GetItemValue("LSPTrainingDbServer")(0)
LSPTrainingDbName$ = profileDoc.GetItemValue("LSPTrainingDbName")(0)
Set lspTrainingDb = New NotesDatabase(LSPTrainingServer$, LSPTrainingDbName$)
Set trainView = lspTrainingDb.GetView("(DataNoSpreadsheetView)")
' Set view = db.GetView("All Docs By Name")
Set doc = dc.GetFirstDocument
While Not(doc Is Nothing)
docKey = doc.GetItemValue("datanum")
experience1 = doc.GetItemValue("HireDate")
texperience1 = CStr(experience1(0))
timeInGrade1 = doc.GetItemValue("RankDate")
timeInGrade1 = CStr(timeInGrade1(0))
fullName = doc.GetItemValue("FullName")
tfullName = CStr(fullName(0))
physicalCity = doc.GetItemValue("PhysicalCity")
tPhysicalCity = CStr(physicalCity(0))
Set children = doc.Responses
Set childDoc = children.GetFirstDocument
Do Until childDoc Is Nothing
If childDoc.Form(0) = "Awards" Then
'Award Year fields
awardYear1 = childDoc.GetItemValue("AwardYear_1")
tawardYear1 = CStr(awardYear1(0))
awardYear2 = childDoc.GetItemValue("AwardYear_2")
tawardYear2 = CStr(awardYear2(0))
awardYear3 = childDoc.GetItemValue("AwardYear_3")
tawardYear3 = CStr(awardYear3(0))
awardYear4 = childDoc.GetItemValue("AwardYear_4")
tawardYear4 = CStr(awardYear4(0))
awardYear5 = childDoc.GetItemValue("AwardYear_5")
tawardYear5 = CStr(awardYear5(0))
awardYear6 = childDoc.GetItemValue("AwardYear_6")
tawardYear6 = CStr(awardYear6(0))
awardYear7 = childDoc.GetItemValue("AwardYear_7")
tawardYear7 = CStr(awardYear7(0))
awardYear8 = childDoc.GetItemValue("AwardYear_8")
tawardYear8 = CStr(awardYear8(0))
awardYear9 = childDoc.GetItemValue("AwardYear_9")
tawardYear9 = CStr(awardYear9(0))
awardYear10 = childDoc.GetItemValue("AwardYear_10")
tawardYear10 = CStr(awardYear10(0))
awardYear11 = childDoc.GetItemValue("AwardYear_11")
tawardYear11 = CStr(awardYear11(0))
awardYear12 = childDoc.GetItemValue("AwardYear_12")
tawardYear12 = CStr(awardYear12(0))
awardYear13 = childDoc.GetItemValue("AwardYear_13")
tawardYear13 = CStr(awardYear13(0))
awardYear14 = childDoc.GetItemValue("AwardYear_14")
tawardYear14 = CStr(awardYear14(0))
awardYear15 = childDoc.GetItemValue("AwardYear_15")
tawardYear15 = CStr(awardYear15(0))
awardYear16 = childDoc.GetItemValue("AwardYear_16")
tawardYear16 = CStr(awardYear16(0))
awardYear17 = childDoc.GetItemValue("AwardYear_17")
tawardYear17 = CStr(awardYear17(0))
awardYear18 = childDoc.GetItemValue("AwardYear_18")
tawardYear18 = CStr(awardYear18(0))
awardYear19 = childDoc.GetItemValue("AwardYear_19")
tawardYear19 = CStr(awardYear19(0))
awardYear20 = childDoc.GetItemValue("AwardYear_20")
tawardYear20 = CStr(awardYear20(0))
awardYear21 = childDoc.GetItemValue("AwardYear_21")
tawardYear21 = CStr(awardYear21(0))
awardYear22 = childDoc.GetItemValue("AwardYear_22")
tawardYear22 = CStr(awardYear22(0))
awardYear23 = childDoc.GetItemValue("AwardYear_23")
tawardYear23 = CStr(awardYear23(0))
awardYear24 = childDoc.GetItemValue("AwardYear_24")
tawardYear24 = CStr(awardYear24(0))
awardYear25 = childDoc.GetItemValue("AwardYear_25")
tawardYear25 = CStr(awardYear25(0))
'Award Type fields
awardType1 = childDoc.GetItemValue("AwardType_1")
tawardType1 = CStr(awardType1(0))
awardType2 = childDoc.GetItemValue("AwardType_2")
tawardType2 = CStr(awardType2(0))
awardType3 = childDoc.GetItemValue("AwardType_3")
tawardType3 = CStr(awardType3(0))
awardType4 = childDoc.GetItemValue("AwardType_4")
tawardType4 = CStr(awardType4(0))
awardType5 = childDoc.GetItemValue("AwardType_5")
tawardType5 = CStr(awardType5(0))
awardType6 = childDoc.GetItemValue("AwardType_6")
tawardType6 = CStr(awardType6(0))
awardType7 = childDoc.GetItemValue("AwardType_7")
tawardType7 = CStr(awardType7(0))
awardType8 = childDoc.GetItemValue("AwardType_8")
tawardType8 = CStr(awardType8(0))
awardType9 = childDoc.GetItemValue("AwardType_9")
tawardType9 = CStr(awardType9(0))
awardType10 = childDoc.GetItemValue("AwardType_10")
tawardType10 = CStr(awardType10(0))
awardType11 = childDoc.GetItemValue("AwardType_11")
tawardType11 = CStr(awardType11(0))
awardType12 = childDoc.GetItemValue("AwardType_12")
tawardType12 = CStr(awardType12(0))
awardType13 = childDoc.GetItemValue("AwardType_13")
tawardType13 = CStr(awardType13(0))
awardType14 = childDoc.GetItemValue("AwardType_14")
tawardType14 = CStr(awardType14(0))
awardType15 = childDoc.GetItemValue("AwardType_15")
tawardType15 = CStr(awardType15(0))
awardType16 = childDoc.GetItemValue("AwardType_16")
tawardType16 = CStr(awardType16(0))
awardType17 = childDoc.GetItemValue("AwardType_17")
tawardType17 = CStr(awardType17(0))
awardType18 = childDoc.GetItemValue("AwardType_18")
tawardType18 = CStr(awardType18(0))
awardType19 = childDoc.GetItemValue("AwardType_19")
tawardType19 = CStr(awardType19(0))
awardType20 = childDoc.GetItemValue("AwardType_20")
tawardType20 = CStr(awardType20(0))
awardType21 = childDoc.GetItemValue("AwardType_21")
tawardType21 = CStr(awardType21(0))
awardType22 = childDoc.GetItemValue("AwardType_22")
tawardType22 = CStr(awardType22(0))
awardType23 = childDoc.GetItemValue("AwardType_23")
tawardType23 = CStr(awardType23(0))
awardType24 = childDoc.GetItemValue("AwardType_24")
tawardType24 = CStr(awardType24(0))
awardType25 = childDoc.GetItemValue("AwardType_25")
tawardType25 = CStr(awardType25(0))
allAwards = tawardType1 + " " + tawardYear1 + " " + tawardType2 + " " + tawardYear2 + " " + tawardType3 + " " + tawardYear3 + " " + _
tawardType4 + " " + tawardYear4 + " " + tawardType5 + " " + tawardYear5 + " " + tawardType6 + " " + tawardYear6 + " " + _
tawardType7 + " " + tawardYear7 + " " + tawardType8 + " " + tawardYear8 + " " + tawardType9 + " " + tawardYear9 + " " + _
tawardType10 + " " + tawardYear10 + " " + tawardType11 + " " + tawardYear11 + " " + tawardType12 + " " + tawardYear12 + " " + _
tawardType13 + " " + tawardYear13 + " " + tawardType14 + " " + tawardYear14 + " " + tawardType15 + " " + tawardType16 + " " + _
tawardType17 + " " + tawardYear17 + " " + tawardType18 + " " + tawardYear18 + " " + tawardType19 + " " + tawardYear19 + " " + _
tawardType20 + " " + tawardYear20 + " " + tawardType21 + " " + tawardYear21 + " " + tawardType22 + " " + tawardYear22 + " " + _
tawardType23 + " " + tawardYear23 + " " + tawardType24 + " " + tawardYear24 + " " + tawardType25 + " " +tawardYear25
End If
If childDoc.Form(0) = "Disciplinary Actions" Then
'Disciplinary Date Fields
DiscDate1 = childDoc.GetItemValue("DiscDate_1")
tDiscDate1 = CStr(DiscDate1(0))
DiscDate2 = childDoc.GetItemValue("DiscDate_2")
tDiscDate2 = CStr(DiscDate2(0))
DiscDate3 = childDoc.GetItemValue("DiscDate_3")
tDiscDate3 = CStr(DiscDate3(0))
DiscDate4 = childDoc.GetItemValue("DiscDate_4")
tDiscDate4 = CStr(DiscDate4(0))
DiscDate5 = childDoc.GetItemValue("DiscDate_5")
tDiscDate5 = CStr(DiscDate5(0))
DiscDate6 = childDoc.GetItemValue("DiscDate_6")
tDiscDate6 = CStr(DiscDate6(0))
DiscDate7 = childDoc.GetItemValue("DiscDate_7")
tDiscDate7 = CStr(DiscDate7(0))
DiscDate8 = childDoc.GetItemValue("DiscDate_8")
tDiscDate8 = CStr(DiscDate8(0))
DiscDate9 = childDoc.GetItemValue("DiscDate_9")
tDiscDate9 = CStr(DiscDate9(0))
DiscDate10 = childDoc.GetItemValue("DiscDate_10")
tDiscDate10 = CStr(DiscDate10(0))
DiscDate11 = childDoc.GetItemValue("DiscDate_11")
tDiscDate11 = CStr(DiscDate11(0))
DiscDate12 = childDoc.GetItemValue("DiscDate_12")
tDiscDate12 = CStr(DiscDate12(0))
DiscDate13 = childDoc.GetItemValue("DiscDate_13")
tDiscDate13 = CStr(DiscDate13(0))
DiscDate14 = childDoc.GetItemValue("DiscDate_14")
tDiscDate14 = CStr(DiscDate14(0))
DiscDate15 = childDoc.GetItemValue("DiscDate_15")
tDiscDate15 = CStr(DiscDate15(0))
DiscDate16 = childDoc.GetItemValue("DiscDate_16")
tDiscDate16 = CStr(DiscDate16(0))
DiscDate17 = childDoc.GetItemValue("DiscDate_17")
tDiscDate17 = CStr(DiscDate17(0))
DiscDate18 = childDoc.GetItemValue("DiscDate_18")
tDiscDate18 = CStr(DiscDate18(0))
DiscDate19 = childDoc.GetItemValue("DiscDate_19")
tDiscDate19 = CStr(DiscDate19(0))
DiscDate20 = childDoc.GetItemValue("DiscDate_20")
tDiscDate20 = CStr(DiscDate20(0))
DiscDate21 = childDoc.GetItemValue("DiscDate_21")
tDiscDate21 = CStr(DiscDate21(0))
DiscDate22 = childDoc.GetItemValue("DiscDate_22")
tDiscDate22 = CStr(DiscDate22(0))
DiscDate23 = childDoc.GetItemValue("DiscDate_23")
tDiscDate23 = CStr(DiscDate23(0))
DiscDate24 = childDoc.GetItemValue("DiscDate_24")
tDiscDate24 = CStr(DiscDate24(0))
DiscDate25 = childDoc.GetItemValue("DiscDate_25")
tDiscDate25 = CStr(DiscDate25(0))
'Disciplinary Charge Fields
DiscCharge1 = childDoc.GetItemValue("DiscCharge_1")
tDiscCharge1 = CStr(DiscCharge1(0))
DiscCharge2 = childDoc.GetItemValue("DiscCharge_2")
tDiscCharge2 = CStr(DiscCharge2(0))
DiscCharge3 = childDoc.GetItemValue("DiscCharge_3")
tDiscCharge3 = CStr(DiscCharge3(0))
DiscCharge4 = childDoc.GetItemValue("DiscCharge_4")
tDiscCharge4 = CStr(DiscCharge4(0))
DiscCharge5 = childDoc.GetItemValue("DiscCharge_5")
tDiscCharge5 = CStr(DiscCharge5(0))
DiscCharge6 = childDoc.GetItemValue("DiscCharge_6")
tDiscCharge6 = CStr(DiscCharge6(0))
DiscCharge7 = childDoc.GetItemValue("DiscCharge_7")
tDiscCharge7 = CStr(DiscCharge7(0))
DiscCharge8 = childDoc.GetItemValue("DiscCharge_8")
tDiscCharge8 = CStr(DiscCharge8(0))
DiscCharge9 = childDoc.GetItemValue("DiscCharge_9")
tDiscCharge9 = CStr(DiscCharge9(0))
DiscCharge10 = childDoc.GetItemValue("DiscCharge_10")
tDiscCharge10 = CStr(DiscCharge10(0))
DiscCharge11 = childDoc.GetItemValue("DiscCharge_11")
tDiscCharge11 = CStr(DiscCharge11(0))
DiscCharge12 = childDoc.GetItemValue("DiscCharge_12")
tDiscCharge12 = CStr(DiscCharge12(0))
DiscCharge13 = childDoc.GetItemValue("DiscCharge_13")
tDiscCharge13 = CStr(DiscCharge13(0))
DiscCharge14 = childDoc.GetItemValue("DiscCharge_14")
tDiscCharge14 = CStr(DiscCharge14(0))
DiscCharge15 = childDoc.GetItemValue("DiscCharge_15")
tDiscCharge15 = CStr(DiscCharge15(0))
DiscCharge16 = childDoc.GetItemValue("DiscCharge_16")
tDiscCharge16 = CStr(DiscCharge16(0))
DiscCharge17 = childDoc.GetItemValue("DiscCharge_17")
tDiscCharge17 = CStr(DiscCharge17(0))
DiscCharge18 = childDoc.GetItemValue("DiscCharge_18")
tDiscCharge18 = CStr(DiscCharge18(0))
DiscCharge19 = childDoc.GetItemValue("DiscCharge_19")
tDiscCharge19 = CStr(DiscCharge19(0))
DiscCharge20 = childDoc.GetItemValue("DiscCharge_20")
tDiscCharge20 = CStr(DiscCharge20(0))
DiscCharge21 = childDoc.GetItemValue("DiscCharge_21")
tDiscCharge21 = CStr(DiscCharge21(0))
DiscCharge22 = childDoc.GetItemValue("DiscCharge_22")
tDiscCharge22 = CStr(DiscCharge22(0))
DiscCharge23 = childDoc.GetItemValue("DiscCharge_23")
tDiscCharge23 = CStr(DiscCharge23(0))
DiscCharge24 = childDoc.GetItemValue("DiscCharge_24")
tDiscCharge24 = CStr(DiscCharge24(0))
DiscCharge25 = childDoc.GetItemValue("DiscCharge_25")
tDiscCharge25 = CStr(DiscCharge25(0))
'Disciplinary Disposition Fields
DiscDispo1 = childDoc.GetItemValue("DiscDispo_1")
tDiscDispo1 = CStr(DiscDispo1(0))
DiscDispo2 = childDoc.GetItemValue("DiscDispo_2")
tDiscDispo2 = CStr(DiscDispo2(0))
DiscDispo3 = childDoc.GetItemValue("DiscDispo_3")
tDiscDispo3 = CStr(DiscDispo3(0))
DiscDispo4 = childDoc.GetItemValue("DiscDispo_4")
tDiscDispo4 = CStr(DiscDispo4(0))
DiscDispo5 = childDoc.GetItemValue("DiscDispo_5")
tDiscDispo5 = CStr(DiscDispo5(0))
DiscDispo6 = childDoc.GetItemValue("DiscDispo_6")
tDiscDispo6 = CStr(DiscDispo6(0))
DiscDispo7 = childDoc.GetItemValue("DiscDispo_7")
tDiscDispo7 = CStr(DiscDispo7(0))
DiscDispo8 = childDoc.GetItemValue("DiscDispo_8")
tDiscDispo8 = CStr(DiscDispo8(0))
DiscDispo9 = childDoc.GetItemValue("DiscDispo_9")
tDiscDispo9 = CStr(DiscDispo9(0))
DiscDispo10 = childDoc.GetItemValue("DiscDispo_10")
tDiscDispo10 = CStr(DiscDispo10(0))
DiscDispo11 = childDoc.GetItemValue("DiscDispo_11")
tDiscDispo11 = CStr(DiscDispo11(0))
DiscDispo12 = childDoc.GetItemValue("DiscDispo_12")
tDiscDispo12 = CStr(DiscDispo12(0))
DiscDispo13 = childDoc.GetItemValue("DiscDispo_13")
tDiscDispo13 = CStr(DiscDispo13(0))
DiscDispo14 = childDoc.GetItemValue("DiscDispo_14")
tDiscDispo14 = CStr(DiscDispo14(0))
DiscDispo15 = childDoc.GetItemValue("DiscDispo_15")
tDiscDispo15 = CStr(DiscDispo15(0))
DiscDispo16 = childDoc.GetItemValue("DiscDispo_16")
tDiscDispo16 = CStr(DiscDispo16(0))
DiscDispo17 = childDoc.GetItemValue("DiscDispo_17")
tDiscDispo17 = CStr(DiscDispo17(0))
DiscDispo18 = childDoc.GetItemValue("DiscDispo_18")
tDiscDispo18 = CStr(DiscDispo18(0))
DiscDispo19 = childDoc.GetItemValue("DiscDispo_19")
tDiscDispo19 = CStr(DiscDispo19(0))
DiscDispo20 = childDoc.GetItemValue("DiscDispo_20")
tDiscDispo20 = CStr(DiscDispo20(0))
DiscDispo21 = childDoc.GetItemValue("DiscDispo_21")
tDiscDispo21 = CStr(DiscDispo21(0))
DiscDispo22 = childDoc.GetItemValue("DiscDispo_22")
tDiscDispo22 = CStr(DiscDispo22(0))
DiscDispo23 = childDoc.GetItemValue("DiscDispo_23")
tDiscDispo23 = CStr(DiscDispo23(0))
DiscDispo24 = childDoc.GetItemValue("DiscDispo_24")
tDiscDispo24 = CStr(DiscDispo24(0))
DiscDispo25 = childDoc.GetItemValue("DiscDispo_25")
tDiscDispo25 = CStr(DiscDispo25(0))
allDisciplinary = tDiscDate1 + "-" + tDiscCharge1 + "-" + tDiscDispo1 + " " + tDiscDate2 + "-" + tDiscCharge2 + "-" + tDiscDispo2 + " " + _
tDiscDate3 + "-" + tDiscCharge3 + "-" + tDiscDispo3 + " " + tDiscDate4 + "-" + tDiscCharge4 + "-" + tDiscDispo4 + " " + _
tDiscDate5 + "-" + tDiscCharge5 + "-" + tDiscDispo5 + " " + tDiscDate6 + "-" + tDiscCharge6 + "-" + tDiscDispo6 + " " + _
tDiscDate7 + "-" + tDiscCharge7 + "-" + tDiscDispo7 + " " + tDiscDate8 + "-" + tDiscCharge8 + "-" + tDiscDispo8 + " " + _
tDiscDate9 + "-" + tDiscCharge9 + "-" + tDiscDispo9 + " " + _
tDiscDate10 + "-" + tDiscCharge10 + "-" + tDiscDispo10 + " " + tDiscDate11 + "-" + tDiscCharge11 + "-" + tDiscDispo11 + " " + _
tDiscDate12 + "-" + tDiscCharge12 + "-" + tDiscDispo12 + " " + tDiscDate13 + "-" + tDiscCharge13 + "-" + tDiscDispo13 + " " + _
tDiscDate14 + "-" + tDiscCharge14 + "-" + tDiscDispo14 + " " + tDiscDate15 + "-" + tDiscCharge15 + "-" + tDiscDispo15 + " " + _
tDiscDate16 + "-" + tDiscCharge16 + " " + tDiscDate17 + "-" + tDiscCharge17 + " " + tDiscDate18 + "-" + tDiscCharge18 + " " + _
tDiscDate19 + "-" + tDiscCharge19 + "-" + tDiscDispo19 + " " + tDiscDate20 + "-" + tDiscCharge20 + "-" + tDiscDispo20 + " " + _
tDiscDate21 + "-" + tDiscCharge21 + "-" + tDiscDispo21 + " " + tDiscDate22 + "-" + tDiscCharge22 + "-" + tDiscDispo22 + " " + _
tDiscDate23 + "-" + tDiscCharge23 + "-" + tDiscDispo23 + " " + tDiscDate24 + "-" + tDiscCharge24 + "-" + tDiscDispo24 + " " + _
tDiscDate25 + "-" + tDiscCharge25 + "-" + tDiscDispo25
End If
Set childDoc = children.GetNextDocument(childDoc)
Loop
'Goes and gets information from LSP Training
Set dcTrain = trainView.GetAllDocumentsByKey(docKey, True)
Set trainDoc = dcTrain.GetFirstDocument
' Set trainDoc = dc.GetFirstDocument
trainView.AutoUpdate = False
Do While Not (trainDoc Is Nothing)
If (trainDoc.Form(0) = "Training Record") Then
sInstTrnOfcr = trainDoc.GetItemValue("InstTrnOfcr")
If (sInstTrnOfcr(0) = "X") Then
tInstTrnOfcr = "Field Training Officer"
Else
End If
sInstDutyOfcr = trainDoc.GetItemValue("InstDutyOfcr")
If (sInstDutyOfcr(0) = "X") Then
tInstDutyOfcr = "Duty Officer"
Else
End If
sInstTechAccInvest = trainDoc.GetItemValue("InstTechAccInvest")
If (sInstTechAccInvest(0) = "X") Then
tInstTechAccInvest = "Crash Reconstructionist"
Else
End If
sInstAccInvest = trainDoc.GetItemValue("InstAccInvest")
If (sInstAccInvest(0) = "X") Then
tInstAccInvest = "Crash Investigation Instructor"
Else
End If
sInstDefTact = trainDoc.GetItemValue("InstDefTact")
If (sInstDefTact(0) = "X") Then
tInstDefTact = "Defensive Tactics Instructor"
Else
End If
sInstPR24 = trainDoc.GetItemValue("InstPR24")
If (sInstPR24(0) = "X") Then
tInstPR24 = "PR-24 Instructor"
Else
End If
sInstSWAT = trainDoc.GetItemValue("InstSWAT")
If (sInstSWAT(0) = "X") Then
tInstSWAT = "SWAT"
Else
End If
sInstGeneral = trainDoc.GetItemValue("InstGeneral")
If (sInstGeneral(0) = "X") Then
tInstGeneral = "General Instructor"
Else
End If
sInstRangeSafetyOfcr = trainDoc.GetItemValue("InstRangeSafetyOfcr")
If (sInstRangeSafetyOfcr(0) = "X") Then
tInstRangeSafetyOfcr = "Range Safety Officer"
Else
End If
sInstFireArms = trainDoc.GetItemValue("InstFireArms")
If (sInstFireArms(0) = "X") Then
tInstFireArms = "Firearms Instructor"
Else
End If
sInstTaser = trainDoc.GetItemValue("InstTaser")
If (sInstTaser(0) = "X") Then
tInstTaser = "Taser Instructor"
Else
End If
sInstRadar = trainDoc.GetItemValue("InstRadar")
If (sInstRadar(0) = "X") Then
tInstRadar = "RADAR/LIDAR Instructor"
Else
End If
sInstFirstAid = trainDoc.GetItemValue("InstFirstAid")
If (sInstFirstAid(0) = "X") Then
tInstFirstAid = "First Aid Instructor"
Else
End If
sInstCPR = trainDoc.GetItemValue("InstCPR")
If (sInstCPR(0) = "X") Then
tInstCPR = "CPR Instructor"
Else
End If
sInstDefDriv = trainDoc.GetItemValue("InstDefDriv")
If (sInstDefDriv(0) = "X") Then
tInstDefDriv = "EVO Instructor"
Else
End If
sInstMotorcycle = trainDoc.GetItemValue("InstMotorcycle")
If (sInstMotorcycle(0) = "X") Then
tInstMotorcycle = "Motorcycle Instructor"
Else
End If
sInstChildRestraint = trainDoc.GetItemValue("InstChildRestraint")
If (sInstChildRestraint(0) = "X") Then
tInstChildRestraint = "Child Restraint Instructor"
Else
End If
sInstFldSobr = trainDoc.GetItemValue("InstFldSobr")
If (sInstFldSobr(0) = "X") Then
tInstFldSobr = "SFST Instructor"
Else
End If
sInstDrugRecExpert = trainDoc.GetItemValue("InstDrugRecExpert")
If (sInstDrugRecExpert(0) = "X") Then
tInstDrugRecExpert = "Drug Recognition Expert"
Else
End If
sInstFbiInstDevlp = trainDoc.GetItemValue("InstFbiInstDevlp")
If (sInstFbiInstDevlp(0) = "X") Then
tInstFbiInstDevlp = "FBI Instructor Development"
Else
End If
sInstFBI = trainDoc.GetItemValue("InstFBI")
If (sInstFBI(0) = "X") Then
tInstFBI = "FBI National Academy"
Else
End If
sInstNorthwestern = trainDoc.GetItemValue("InstNorthwestern")
If (sInstNorthwestern(0) = "X") Then
tInstNorthwestern = "NU School Police Staff/Command"
Else
End If
allTraining = tInstTrnOfcr + ", " + tInstDutyOfcr + ", " + tInstTechAccInvest + ", " + tInstAccInvest + ", " + _
tInstDefTact + ", " + tInstPR24 + ", " + tInstSWAT + ", " + tInstGeneral + ", " + tInstRangeSafetyOfcr + ", " + _
tInstFireArms + ", " + tInstTaser + ", " + tInstRadar + ", " + tInstFirstAid + ", " + tInstCPR + ", " + _
tInstDefDriv + ", " + tInstMotorcycle + " , " + tInstChildRestraint + ", " + tInstFldSobr + ", " + tInstDrugRecExpert + " " +_
tInstFbiInstDevlp + ", " + tInstFBI + ", " + tInstNorthwestern
End If
If (trainDoc.Form(0) = "Recertify Record") Then
vRecertify = childDoc.GetItemValue("RecertifyRequalSelection")
tRecertify = CStr(vRecertify(0))
End If
Set trainDoc = dcTrain.GetNextDocument(trainDoc)
' Set trainDoc = dc.GetNextDocument(trainDoc)
Loop
Set doc = dc.GetNextDocument(doc)
Wend
'\\\Create the Report document
End Sub

It sounds like your code (which you should post!) is working. I would suggest to add a counter for each Notes document you process, that will help you address the correct row in the spreadsheet.
I would also recommend that you learn about arrays. They are a very fundamental concept in all programming, and you pretty much have to understand it in order to be a programmer. I would also suggest that you look at lists in Lotusscript, that is a very powerful data type.
You may also want to take at this class that I posted a while back:
http://blog.texasswede.com/export-notes-view-to-excel-with-multi-value-fields/
It creates a CSV file, but it should be trivial for you to modify it to write straight to a spreadsheet in Excel. You even have a counter in that code to count the rows...
Update after code was posted
You really need to learn about arrays. That code is many times longer and more convuluted than it has to be. You also use multiple steps when one step would be sufficient.
For example:
awardYear1 = childDoc.GetItemValue("AwardYear_1")
tawardYear1 = CStr(awardYear1(0))
awardYear2 = childDoc.GetItemValue("AwardYear_2")
tawardYear2 = CStr(awardYear2(0))
etc...
First of all, you could write it as follows, to avoid using temporary variables:
awardYear1 = Cstr(childDoc.GetItemValue("AwardYear_1")(0))
But when you have 25 identical fields (which you should not have, it seems like the design of the original form is really bad as well), use an array:
Dim awardYear(24) as String
For i = 0 to 24
awardYear(i) = Cstr( childDoc.GetItemValue("AwardYear_" & i+1)(0) )
Next
Those few lines would replace 50 lines of your code to start with...
You could do that through out your code, and make it much smaller.
You could also use an array of a custom data type.
Type OfficerData
awardYear As Integer
awardType As String
discDate As NotesDateTime
discCharge As String
discDispo As String
End Type
Dim officer(24) as OfficerData
Now you can use it like this:
officer(1).awardYear = 2010
officer(1).awardType = "Pistol Champion"
Easy, huh? :-)
You should always use Option Declare. This forces you to declare any variables but also helps you, in that it will be much easier to find typos in variable names. It is a long-established best practice.

Just to show, that i WANT to help: All things, that Karl-Henry mentioned are True. But the real problem in your code is: You reassign the values for e.g. allAwards within the loop. As you run through all documents, the variable will only contain the content of the LAST document.
And here again Karl-Henry is true: You should use an array to store the values...
Dim allAwards() as String
....
Set children = doc.Responses
Redim allAwards(children.Count-1)
i = 0
....
allAwards(i) = tawardType1 + " " + tawardYear1 + " " + tawardType2 + " " + tawardYear2 + " " + tawardType3 + " " + tawardYear3 + " " + _
tawardType4 + " " + tawardYear4 + " " + tawardType5 + " " + tawardYear5 + " " + tawardType6 + " " + tawardYear6 + " " + _
tawardType7 + " " + tawardYear7 + " " + tawardType8 + " " + tawardYear8 + " " + tawardType9 + " " + tawardYear9 + " " + _
tawardType10 + " " + tawardYear10 + " " + tawardType11 + " " + tawardYear11 + " " + tawardType12 + " " + tawardYear12 + " " + _
tawardType13 + " " + tawardYear13 + " " + tawardType14 + " " + tawardYear14 + " " + tawardType15 + " " + tawardType16 + " " + _
tawardType17 + " " + tawardYear17 + " " + tawardType18 + " " + tawardYear18 + " " + tawardType19 + " " + tawardYear19 + " " + _
tawardType20 + " " + tawardYear20 + " " + tawardType21 + " " + tawardYear21 + " " + tawardType22 + " " + tawardYear22 + " " + _
tawardType23 + " " + tawardYear23 + " " + tawardType24 + " " + tawardYear24 + " " + tawardType25 + " " +tawardYear25
i = i + 1
Like that you have ALL values of ALL documents in your Variable allAwards and can later cycle through this array to write each value into the excel- file.

Related

Make Two Results within Same Block Populate Together

Provided all the conditions in the code below is met, can anyone provide me with an idea as to why ResultG populates in the excel worksheet but ResultGi does not. I have tried re-arranging and linking various parts of both codes together but to no avail.
Result6 = (23)
Result6i = (24)
If Result1 = 19 And ((Result2ai >= 7) And (Result2ai <= 14)) Then
Result6 = (23)
Result6i = (24)
If Result1a = 15 And ((Result3a >= 6) And (Result3a <= 10)) Then
Result4 = 19
Result5i = Result6 - Result4
ResultG = Result5i - Range("G2").Value
Range("W2").Value = ("ResultG")
Range("X2").Value = (" Can Use: [ " & ResultG & " ]")
Range("Y2").Value = ("2 Nxt will not be " & ResultG)
Range("Z2").Value = (" 19|15|5i ")
Result5iii = Result6i - Result4
ResultGi = Result5iii - Range("G2").Value
Range("W3").Value = ("ResultGi")
Range("X3").Value = (" Can Use: [ " & ResultGi & " ]")
Range("Y3").Value = ("2 Nxt will not be " & ResultGi)
Range("Z3").Value = (" 19|15|5ii ")
End If
End If
End Sub

Making VBA script to map Excel fields to Project more efficient

So I have Microsoft Project file with around 600 rows of parent tasks. I need to import new data from Excel into this Project file using the Import Wizard and then run a script that creates four milestones below each parent task and then maps date and text fields from the Excel file into the correct cells in the Project file. If the parent task already has four milestones (and is not a new parent task) then the script updates the date and text fields for the task with the new data. I used the following script to accomplish this, and it works. However, it takes over 10 minutes to run. I know this is not the most efficient way to write this script. Can anyone help me modify the script so it takes less time to run?
Sub InsertSubTask()
Dim tsk As Task
For Each tsk In ActiveProject.Tasks
If tsk.Flag1 And tsk.OutlineChildren.Count = 0 Then
With ActiveProject
tsk.Name = tsk.Text5 + " " + "-" + tsk.Name
.Tasks.Add tsk.Name + " " + "-" + " " + "Milestone 1", tsk.ID + 1
.Tasks.Add tsk.Name + " " + "-" + " " + "Milestone 2", tsk.ID + 2
.Tasks.Add tsk.Name + " " + "-" + " " + "Milestone3", tsk.ID + 3
.Tasks.Add tsk.Name + " " + "-" + " " + "Milestone4", tsk.ID + 4
.Tasks(tsk.ID + 1).OutlineIndent
.Tasks(tsk.ID + 2).OutlineIndent
.Tasks(tsk.ID + 3).OutlineIndent
.Tasks(tsk.ID + 4).OutlineIndent
.Tasks(tsk.ID + 1).Start = DateAdd("d", -1, tsk.Date4)
.Tasks(tsk.ID + 2).Start = tsk.Date2
.Tasks(tsk.ID + 3).Start = tsk.Date4
.Tasks(tsk.ID + 4).Start = tsk.Date3
tsk.Text10 = "Example"
.Tasks(tsk.ID + 1).Text10 = "Example"
.Tasks(tsk.ID + 2).Text10 = "Example"
.Tasks(tsk.ID + 3).Text10 = "Example"
.Tasks(tsk.ID + 4).Text10 = "Example"
tsk.Text18 = "MILESTONE"
.Tasks(tsk.ID + 2).Text18 = "MILESTONE"
.Tasks(tsk.ID + 1).BaselineStart = tsk.Date5
.Tasks(tsk.ID + 2).BaselineStart = tsk.Date2
.Tasks(tsk.ID + 3).BaselineStart = tsk.Date4
.Tasks(tsk.ID + 4).BaselineFinish = tsk.Date3
.Tasks(tsk.ID + 2).ActualFinish = tsk.Date7
End With
End If
Next tsk
For Each tsk In ActiveProject.Tasks
If tsk.Flag1 And tsk.OutlineChildren.Count = 4 Then
With ActiveProject
.Tasks(tsk.ID + 1).Start = DateAdd("d", -1, tsk.Date4)
.Tasks(tsk.ID + 2).Start = tsk.Date2
.Tasks(tsk.ID + 3).Start = tsk.Date4
.Tasks(tsk.ID + 4).Start = tsk.Date3
.Tasks(tsk.ID + 1).BaselineStart = tsk.Date5
.Tasks(tsk.ID + 2).BaselineStart = tsk.Date2
.Tasks(tsk.ID + 3).BaselineStart = tsk.Date4
.Tasks(tsk.ID + 4).BaselineFinish = tsk.Date3
.Tasks(tsk.ID + 2).ActualFinish = tsk.Date7
End With
End If
Next tsk
End Sub

(LotusScript)How can update sql in notes document button?

I need to update some fields in the oracle database, like the following code.
I set the condition to write the value, but only one data can update.
How to update the data within the conditions?
Sub Click(Source As Button)
Dim con2 As New ODBCConnection
Dim qry2 As New ODBCQuery
Dim result2 As New ODBCResultSet
If con2.ConnectTo("***","***","***") Then
Set qry2.connection = con2
Set result2.query = qry2
mysql2 = "SELECT * FROM CB_A"
mysql2 = mysql2 + " WHERE PONUM = 'FC950102' OR PONUM = 'FT940141'"
qry2.SQL = mysql2
result2.Execute
If result2.IsResultSetAvailable Then
result2.FirstRow
sqlponum = result2.GetValue("PONUM")
sqlcomp = result2.GetValue("PUR_COMP_NAME")
End If
result2.LastRow
For i = 1 To result2.NumRows
result2.CurrentRow = i
sqlponum = result2.GetValue("PONUM")
Msgbox sqlponum + Chr(10) + sqlcomp
If j >= 0 And k >= 0 Then
mysql2 = "UPDATE CB_A SET ORDER_FLAG = '" + order_flag + "' , AUCTION_STATUS = '" + auction_status + "' , AUCTION_DATE = '" + tempaucdate + "' , AUCTION_PLACE = '" + AP(j) + "' , AUCTION_TIME = '" + AT(k) + "'"
mysql2 = mysql2 + " WHERE PONUM = '" + sqlponum + "'"
k = k + 1
If k = 4 Then
j = j + 1
k = 0
End If
qry2.SQL = mysql2
result2.Execute
End If
Next
End If
result2.Close(db_close)
con2.Disconnect
End Sub
I edited some coding to achieved what I want to do.
In the For...Next loop, has "result.Execute", it will that mysql1 to be reset.
So, I copied and pasted mysql1 in For...Next loop.
Then it's can be work.
The following is the final coding...
If con2.ConnectTo("***","***","***") Then
Set qry2.connection = con2
Set result2.query = qry2
mysql1 = "SELECT * FROM CB_A WHERE ORDER_FLAG = '1' AND AUCTION_STATUS = '0'"
qry2.SQL = mysql1
result2.Execute
result2.LastRow
For i = 1 To result2.NumRows
result2.CurrentRow = i
mysql1 = "SELECT * FROM CB_A WHERE ORDER_FLAG = '1' AND AUCTION_STATUS = '0'"
qry2.SQL = mysql1
result2.Execute
sqlponum = result2.GetValue("PONUM")
sqlcomp = result2.GetValue("PUR_COMP_NAME")
Msgbox sqlponum + Chr(10) + sqlcomp
If j >= 0 And k >= 0 Then
mysql2 = "UPDATE CB_A SET ORDER_FLAG = '" + order_flag + "' , AUCTION_STATUS = '" + auction_status + "' , AUCTION_DATE = '" + tempaucdate + "' , AUCTION_PLACE = '" + AP(j) + "' , AUCTION_TIME = '" + AT(k) + "'"
mysql2 = mysql2 + " WHERE PONUM = '" + sqlponum + "' AND PUR_COMP_NAME = '" + sqlcomp + "'"
qry2.SQL = mysql2
result2.Execute
k = k + 1
If k = 4 Then
j = j + 1
k = 0
End If
End If
Next
End If

How do I reference array items in a dictionary?

I am trying to determine if any one of the strings inside any one of the array items in a VBA dictionary equal a string of 4 spaces.
If _
Not CStr(info.Items(1, 4)) = " " Or _
Not CStr(info.Items(1, 5)) = " " Or _
Not CStr(info.Items(1, 6)) = " " Or _
Not CStr(info.Items(2, 4)) = " " Or _
Not CStr(info.Items(2, 5)) = " " Or _
Not CStr(info.Items(2, 6)) = " " Or _
Not CStr(info.Items(3, 4)) = " " Or _
Not CStr(info.Items(3, 5)) = " " Or _
Not CStr(info.Items(3, 6)) = " " Or _
Not CStr(info.Items(4, 4)) = " " Or _
Not CStr(info.Items(4, 5)) = " " Or _
Not CStr(info.Items(4, 6)) = " " Then
I keep getting a Subscript out of range error. I've tried
...info.Items(1)(4)... as well with the same error.
I know each array item has 6 elements in it, and I know there are 4 keys in the dictionary. How do I access elements of each key's item if the item is an array?
Dim RQItems As Dictionary
Dim RPItems As Dictionary
Dim IMPItems As Dictionary
Dim EMItems As Dictionary
Dim BOOTItems As Dictionary
Dim RQ1(6) As String
Dim RQ2(6) As String
Dim RQ3(6) As String
Dim RQ4(6) As String
Set RQItems = New Dictionary
RQ1(1) = "PSA "
RQ1(2) = "Prlm"
RQ1(3) = "Info"
RQ1(4) = " "
RQ1(5) = " "
RQ1(6) = " "
RQ2(1) = "Mary"
RQ2(2) = "Clnt"
RQ2(3) = "Escr"
RQ2(4) = "Bank"
RQ2(5) = " SS "
RQ2(6) = " "
RQ3(1) = "Inst"
RQ3(2) = "Wire"
RQ3(3) = " "
RQ3(4) = " "
RQ3(5) = " "
RQ3(6) = " "
RQ4(1) = "Acct"
RQ4(2) = "Fee "
RQ4(3) = " "
RQ4(4) = " "
RQ4(5) = " "
RQ4(6) = " "
RQItems("OPEN") = RQ1
RQItems("DOCS") = RQ2
RQItems("$$$$") = RQ3
RQItems("FILE") = RQ4
I pass these into a function like myFn(info As Dictionary)
You can access arrays stored in a dictionary like this:
Sub Test()
Dim dict As New Dictionary, arr(1 To 4), k, arr2, v
arr(1) = "One"
arr(2) = "Two"
arr(3) = "Three"
arr(4) = "four"
dict.Add "Test", arr
'access a single item
Debug.Print dict("Test")(1) '>> One
'loop over all contained arrays
For Each k In dict.Keys
arr2 = dict(k)
Debug.Print arr2(3) 'access a single element
'or loop through all elements in the array
For Each v In arr2
Debug.Print k, v
Next v
Next k
End Sub

How to write text file in python3.x?

I am unable to write to a text file. My function looks like this. The file is created but after running the code the file remains empty. I am unable to figure out what the problem is.
def compare(prjCode, prjName, stCode, stName, dCode, dName, sdCode, sdName):
with open('C:\\Users\\NCOG1\\Desktop\\test.txt', 'w') as f:
percentMatch = 0
sdLen = len(sdName)
prjLen = len(prjName)
if (sdLen > prjLen):
if ((sdName.find(prjName) != -1)):
res = sdName.index(prjName)
percentMatch = (prjLen/sdLen)*100
#print(prjCode,prjName,sdCode,sdName,str(round(percentMatch)),stCode, stName, dCode, dName)
#print(prjCode + "," + prjName + "," + sdCode + "," + sdName + str(round(percentMatch)) + "," + stCode + "," + dCode + "," + sdCode)
f.write(prjCode + "," + prjName + "," + sdCode + "," + sdName + "," + str(round(percentMatch)) + "," + stCode + "," + stName + "," + dCode + "," + dName + "%\n")
else:
res = 0
#print(res)
elif (prjLen >= sdLen):
if ((prjName.find(sdName) != -1)):
res = prjName.index(sdName)
percentMatch = (sdLen/prjLen)*100
#print(prjCode,prjName,sdCode,sdName,str(round(percentMatch)),stCode, stName, dCode, dName)
#print(prjCode + "," + prjCode + "," + sdCode + "," + sdName + str(round(percentMatch) + "," stCode + "," + dCode + "," + sdCode)
f.write(prjCode + "," + prjName + "," + sdCode + "," + sdName + "," + str(round(percentMatch)) + "," + stCode + "," + stName + "," + dCode + "," + dName + "%\n")
else:
res = 0
#print(res)
f.close()
1.For to write something in file you need to convert those text or int to String which you didn't do that that's the main problem
2.The path which you types its not rendered because its not identified as a string for that you need to convert your path into raw string for that you need to append "r" before starting of the path which I mentioned in corrected code.
3.For example i call function compare() for dummy data, now check below code and try to run and let me know if you have any doubt.
def compare(prjCode, prjName, stCode, stName, dCode, dName, sdCode, sdName):
with open(r'C:\\Users\\NCOG1\\Desktop\\test.txt', 'w') as f:
percentMatch = 0
sdLen = len(sdName)
prjLen = len(prjName)
if (sdLen > prjLen):
if ((sdName.find(prjName) != -1)):
res = sdName.index(prjName)
percentMatch = (prjLen/sdLen)*100
#print(prjCode,prjName,sdCode,sdName,str(round(percentMatch)),stCode, stName, dCode, dName)
#print(prjCode + "," + prjName + "," + sdCode + "," + sdName + str(round(percentMatch)) + "," + stCode + "," + dCode + "," + sdCode)
f.write(str(prjCode) + "," + prjName + "," + str(sdCode) + "," + sdName + "," + str(round(percentMatch)) + "," + str(stCode) + "," + stName + "," + str(dCode) + "," + str(dName) + "%\n")
else:
res = 0
#print(res)
elif (prjLen >= sdLen):
if ((prjName.find(sdName) != -1)):
res = prjName.index(sdName)
percentMatch = (sdLen/prjLen)*100
#print(prjCode,prjName,sdCode,sdName,str(round(percentMatch)),stCode, stName, dCode, dName)
#print(prjCode + "," + prjCode + "," + sdCode + "," + sdName + str(round(percentMatch) + "," stCode + "," + dCode + "," + sdCode)
f.write(str(prjCode) + "," + prjName + "," + str(sdCode) + "," + sdName + "," + str(round(percentMatch)) + "," + str(stCode) + "," + stName + "," + str(dCode) + "," + str(dName) + "%\n")
else:
res = 0
#print(res)
compare(1,"harsh",0,"fff",34,32,78,"hharshbhut")

Resources