2011-01-12 14 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ファイルには、必要なものである2列ではなく、クエリの最初の列がリストされます。最初の列の代わりに2行目の列を追加するにはどうすればよいですか?また、アクセスファイルで新しい顧客フォームに切り替えると、Excelファイルの次の行に移動するにはどうすればよいですか?

ありがとう

答えて

1

コンボボックスのColumnプロパティを使用して、必要な値を抽出します。列の番号は0から始まり、2番目の列は列(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

で方法2を参照してください。実行時に列の文字と行番号の変数を連結して範囲を指定する必要があると思います。

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

次に、別のワークシート行に書き込むには、lngExcelRowの値を変更します。

+0

HansUpありがとうございますが、Column(1)が "Method or Data member not found"というエラーを返し、.columnを強調表示しました – Edmond

+0

Thanks HansUp Me.RoomType – Edmond

関連する問題