excel - SQL + VBA Populating Data in Cell Range -
i have code connecting sql database in vba. data populating correctly however, wondering if there way condense code below. have 4 different columns , 26 rows , feel if go route, wasting lot of time. want range go c20:c45 , results show cells h20:h45. can 1 help? thanks!
' open connection , execute data wftes. set rs = conn.execute("select sum(hours)/80 payroll2015_rif departmentcode = '" & range("$e$6") & "' , payperiod = '" & range("c20") & "' , paycode in ('reg1', 'reg2');") ' transfer result. sheets(2).range("$h20").copyfromrecordset rs ' close recordset rs.close ' open connection , execute data wftes. set rs = conn.execute("select sum(hours)/80 payroll2015_rif departmentcode = '" & range("$e$6") & "' , payperiod = '" & range("c21") & "' , paycode in ('reg1', 'reg2');") ' transfer result. sheets(2).range("$h21").copyfromrecordset rs ' close recordset rs.close
something trick? take relevant values excel ranges , put them arrays in vba, create array of results looping through variables, , throw array excel range.
note didn't include adodb connection , recordset declarations assume have somewhere in code.
sub myloop() dim dept string dim payperiod variant dim result variant dim integer dept = range("e6") payperiod = range("c20:c45") redim result(1 ubound(payperiod), 1 1) 'don't forget set adodb stuff somewhere = 1 ubound(payperiod) set rs = conn.execute("select sum(hours)/80 payroll2015_rif departmentcode = '" & dept & "' , payperiod = '" & payperiod(i,1) & "' , paycode in ('reg1', 'reg2');") result(i, 1) = rs(0) rs.close next range("h20:h45") = result end sub
Comments
Post a Comment