MS Access窗体填充Excel文件中的某些字段

MS Access窗体填充Excel文件中的某些字段

问题描述:

我有下面的代码,它从我的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)。试试这个:

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