Howdy to anyone who reads this. I have a pivot table pulling information out of MS Access that is created using VBA. There is a form the user will use to select the first week then the pivot table will be populated with that week plus the 3 previous weeks. My problem is it only works up to week 17 for some reason. So, when I select 17 I get 17,16,15,14. When I select Week 18 I get 17,16,15. When I select 20 I get 20 and 17. I'm just wondering what in the heck is going on here with my code. Sorry for the long post and thanks in advance.
Sub FourWeekData(strweeknum, intweek, stryear)
Dim wk1
Dim wk2
Dim wk3
Dim wk4
Dim struser As String
Unload frmdefects
Sheets("Data").Select
Cells.Clear
intweek = CInt(strweeknum)
wk4 = intweek
wk3 = intweek - 1
wk2 = intweek - 2
wk1 = intweek - 3
wk4 = CStr(wk4)
wk3 = CStr(wk3)
wk2 = CStr(wk2)
wk1 = CStr(wk1)
On Error GoTo ErrExit
struser = Environ("USERNAME")
Sheets("Data").Activate
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = Array(Array( _
"ODBC;DBQ=C:\Documents and Settings\" & struser & "\Desktop\MSSQLmachining.mdb;DefaultDir=C:\Documents and Settings\mtaylor\Desktop;Driver={D" _
), Array( _
"river do Microsoft Access (*.mdb)};DriverId=25;FIL=MS Access;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" _
), Array("Threads=3;UserCommitSync=Yes;"))
.CommandType = xlCmdSql
.CommandText = Array( _
"SELECT QRYmainscreenscrap.Area, QRYmainscreenscrap.Shift, QRYmainscreenscrap.Category, QRYmainscreenscrap.Reason, QRYmainscreenscrap.Qty, QRYmainscreenscrap.`Week Number`, QRYmainscreenscrap.Year" & Chr(13) & "" & Chr(10) & "FRO" _
, _
"M `C:\Documents and Settings\mtaylor\Desktop\MSSQLmachining`.QRYmainscreenscrap QRYmainscreenscrap" & Chr(13) & "" & Chr(10) & "WHERE (QRYmainscreenscrap.`Week Number`='" & wk1 & "') AND (QRYmainscreenscrap.Year='" & stryear & "') OR (QRYmainscreensc" _
, _
"rap.`Week Number`='" & wk2 & "') AND (QRYmainscreenscrap.Year='" & stryear & "') OR (QRYmainscreenscrap.`Week Number`='" & wk3 & "') AND (QRYmainscreenscrap.Year='" & stryear & "') OR (QRYmainscreenscrap.`Week Number`='" & wk4 & "') AND (QRYmainscreensc" _
, "rap.Year='" & stryear & "')")
.CreatePivotTable TableDestination:="[4RobBergmann.xls]Data!R3C1", _
TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10
End With
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Area")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Shift")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Week Number")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Category")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Reason")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("Qty"), "Sum of Qty", xlSum
ActiveWorkbook.ShowPivotTableFieldList = False
Call MakeChart
Exit Sub
ErrExit:
MsgBox "There was a problem communicating with the database!", vbCritical + vbOKOnly, "Communication Error"
MsgBox Err.Number & vbCrLf & Err.Description
End Sub
Sub FourWeekData(strweeknum, intweek, stryear)
Dim wk1
Dim wk2
Dim wk3
Dim wk4
Dim struser As String
Unload frmdefects
Sheets("Data").Select
Cells.Clear
intweek = CInt(strweeknum)
wk4 = intweek
wk3 = intweek - 1
wk2 = intweek - 2
wk1 = intweek - 3
wk4 = CStr(wk4)
wk3 = CStr(wk3)
wk2 = CStr(wk2)
wk1 = CStr(wk1)
On Error GoTo ErrExit
struser = Environ("USERNAME")
Sheets("Data").Activate
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = Array(Array( _
"ODBC;DBQ=C:\Documents and Settings\" & struser & "\Desktop\MSSQLmachining.mdb;DefaultDir=C:\Documents and Settings\mtaylor\Desktop;Driver={D" _
), Array( _
"river do Microsoft Access (*.mdb)};DriverId=25;FIL=MS Access;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" _
), Array("Threads=3;UserCommitSync=Yes;"))
.CommandType = xlCmdSql
.CommandText = Array( _
"SELECT QRYmainscreenscrap.Area, QRYmainscreenscrap.Shift, QRYmainscreenscrap.Category, QRYmainscreenscrap.Reason, QRYmainscreenscrap.Qty, QRYmainscreenscrap.`Week Number`, QRYmainscreenscrap.Year" & Chr(13) & "" & Chr(10) & "FRO" _
, _
"M `C:\Documents and Settings\mtaylor\Desktop\MSSQLmachining`.QRYmainscreenscrap QRYmainscreenscrap" & Chr(13) & "" & Chr(10) & "WHERE (QRYmainscreenscrap.`Week Number`='" & wk1 & "') AND (QRYmainscreenscrap.Year='" & stryear & "') OR (QRYmainscreensc" _
, _
"rap.`Week Number`='" & wk2 & "') AND (QRYmainscreenscrap.Year='" & stryear & "') OR (QRYmainscreenscrap.`Week Number`='" & wk3 & "') AND (QRYmainscreenscrap.Year='" & stryear & "') OR (QRYmainscreenscrap.`Week Number`='" & wk4 & "') AND (QRYmainscreensc" _
, "rap.Year='" & stryear & "')")
.CreatePivotTable TableDestination:="[4RobBergmann.xls]Data!R3C1", _
TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10
End With
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Area")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Shift")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Week Number")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Category")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Reason")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("Qty"), "Sum of Qty", xlSum
ActiveWorkbook.ShowPivotTableFieldList = False
Call MakeChart
Exit Sub
ErrExit:
MsgBox "There was a problem communicating with the database!", vbCritical + vbOKOnly, "Communication Error"
MsgBox Err.Number & vbCrLf & Err.Description
End Sub