Copying data from a MS Access form into Excel -
i have code takes fields ms access form , copies data saved excel file. first record in access in imported excel range of a2:i2. second record in access imported excel range of a3:i3, , on.... happens if close form in access , open up, , had 2 records imported same excel file, , want add third record, start on @ first row (a2:i2) , write on there. question how can i, if close , open access keep starting on over (a2:i2), , instead start @ next available row, follow example given (a4:i4)? code have
private sub command73_click() set objxlapp = createobject("excel.application") set objxlbook = objxlapp.workbooks.open("y:\123files\edmond\hotel reservation daily.xls") objxlapp.application.visible = true objxlbook.activesheet set r = .usedrange = r.rows.count + 1 .cells(i + 1, 1).value = me.guestfirstname & " " & guestlastname .cells(i + 1, 2).value = me.phonenumber .cells(i + 1, 3).value = me.cbocheckindate .cells(i + 1, 4).value = me.cbocheckoutdate .cells(i + 1, 5).value = me.guestno .cells(i + 1, 6).value = me.roomtype .cells(i + 1, 7).value = me.roomnumber .cells(i + 1, 8).value = date .cells(i + 1, 9).value = me.employee end set r = nothing set objxlbook = nothing set objxlapp = nothing end sub
you can last used row:
set r = objxlbook.activesheet.usedrange = r.rows.count + 1
some notes.
private sub command73_click() ''it idea put sensible names on command buttons. ''it may not seem of problem today, there dim objxlapp object dim objxlbook object dim r object dim integer ''it best check whether excel open before ''opening copy. set objxlapp = createobject("excel.application") set objxlbook = objxlapp.workbooks.open( _ "y:\123files\edmond\hotel reservation daily.xls") objxlapp.application.visible = true ''it best specify sheet ''with objxlbook.activesheet objxlbook.sheets("room reservation") ''if used range includes empty rows ''it may not suit ''set r = .usedrange ''i = r.rows.count + 1 ''from comments, appears data dense ''but number of empty rows @ end of sheet = .range("a1").end(xldown).row + 1 .cells(i, 1).value = me.guestfirstname & " " & guestlastname .cells(i, 2).value = me.phonenumber .cells(i, 3).value = me.cbocheckindate .cells(i, 4).value = me.cbocheckoutdate .cells(i, 5).value = me.guestno .cells(i, 6).value = me.roomtype .cells(i, 7).value = me.roomnumber .cells(i, 8).value = date .cells(i, 9).value = me.employee end ''tidy set objxlbook = nothing set objxlapp = nothing end sub
you might @ transferspreadsheet.
another possibility use recordsetclone, data form, or recordset, matter. not give quite same control, fast:
dim objxlapp object dim objxlbook object dim r object dim integer dim rs dao.recordset set objxlapp = createobject("excel.application") objxlapp.visible = true set objxlbook = objxlapp.workbooks.open( _ "y:\123files\edmond\hotel reservation daily.xls") set rs = me.recordsetclone objxlbook.sheets("sheet1") set r = .usedrange = r.rows.count + 1 .cells(i, 1).copyfromrecordset rs end
Comments
Post a Comment