2011-01-12 116 views
0

我有下面的代碼,它從我的MS Access(一個小型​​酒店預訂數據庫)窗體中獲取某些字段,並填充所述Excel文件中定義的單元格。MS Access窗體填充Excel文件中的某些字段

Dim objXLApp As Object 
Dim objXLBook As Object 
Set objXLApp = CreateObject("Excel.Application") 
Set objXLBook = objXLApp.Workbooks.Open("Y:\123files\File\Hotel Reservation.xls") 
objXLApp.Application.Visible = True 

objXLBook.ActiveSheet.Range("B2") = Me.GuestFirstName & " " & GuestLastName 
objXLBook.ActiveSheet.Range("C2") = Me.PhoneNumber 
objXLBook.ActiveSheet.Range("E2") = Me.cboCheckInDate 
objXLBook.ActiveSheet.Range("F2") = Me.cboCheckOutDate 
objXLBook.ActiveSheet.Range("H2") = Me.RoomType 
objXLBook.ActiveSheet.Range("I2") = Me.RoomNumber 
End Sub 

Me.RoomType是一個組合框,行源是一個3列查詢。當我運行代碼時,excel文件列出了查詢中的第一列,而不是第二列,這是我需要的列,我怎樣才能直接添加查詢的第二列而不是第一列?另外,當我切換到Access文件中的新客戶表單時,如何移至Excel文件中的下一行?

謝謝

回答

1

使用組合框的列屬性來提取所需的值。列編號從零開始,因此第二列將是列(1)。試試這個:

objXLBook.ActiveSheet.Range("H2") = Me.RoomType.Column(1) 

欲瞭解更多信息,請參閱方法2在How to Use the Column Property of a Combo Box to Update a Text Box

我不確定該怎麼迴應你的第二個問題說。我想你應該在運行時通過連接列字母和行號變量來指定你的範圍。

Dim lngExcelRow as Long 
lngExcelRow = 2 
objXLBook.ActiveSheet.Range("B" & lngExcelRow) = [something ...] 

然後寫入不同的工作表行,更改lngExcelRow的值。

+0

感謝HansUp,但列(1)返回錯誤「找不到方法或數據成員」,它突出顯示。列 – Edmond 2011-01-12 21:10:39