次の行に移動して、VBAからExcelファイルを作成します


1

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

次の行にある同じExcelファイルに新しいゲストを追加し続けるにはどうすればよいですか?


質問を複製する代わりに、必要に応じて元の質問を編集してください。
Mehper C. Palavuzlar

@edmonさん、すみません、質問をマージしようとしましたが、新しいバージョンが保持されませんでした。トラブルのための私の謝罪
イヴォFlipse

回答:


2

または、あなたが(おそらく他の理由で)VBA経由で本当にこれをしたい場合、ここで正確な質問に簡単な答えを提供するだけです。(正直なところ、私の推奨事項は、アクセス時にレポートを作成し、Excelファイルをすべてダンプすることです)、次の非常に単純なVBAコードは、あなたが望むことをします...

Dim i as Integer 
i = ObjXLBook.ActiveSheet.UsedRange.Rows.Count 
ObjXLBook.ActiveSheet.Cells(i + 1, 2).Value = Me.GuestFirstName & " " & GuestLastName 
ObjXLBook.ActiveSheet.Cells(i + 1, 3).Value = Me.PhoneNumber 

ありがとうございました。それでも、新しいクエストは次の行に移動しません。最初にクエリを実行して、部屋が空いているか、空いているかをユーザーに知らせたかったのですが、そのクエリの書き方がわからないため、ゲスト情報を取得して色分けして保存するExcelファイルを作成しましたグラフを作成し、ユーザーに部屋が空いているかどうかを知らせます。クエリは簡単になりますか?
エドモン

@ロバート。私はそれが機能することをおizeび申し上げます。唯一のことは、行1ではなく行1000を開始することです。行1で開始するには何を追加する必要がありますか?ありがとうございました。
エドモン

行1で開始すると、他のすべての行が未使用であることを確認することになります。Excelで「使用」するのは難しい場合があります。新しいワークブックを作成し、行1〜1000を削除して(安全のため)、スクリプトを試してみます。それは動作するはずで、データのない最初の行から開始する必要があります(Excelのデータの定義は少し難しいです)...すでにデータが含まれている行に挿入しようとしている場合、私の推奨事項別のシートに挿入し、他のデータを含むシートの式を使用して、他のシートからプルします。
ロバート

0

http://office.microsoft.com/en-ca/access-help/import-export-and-link-data-between-access-and-excel-HP001095095.aspxを読む必要があります。 MS Excelスプレッドシートを使用したMS Accessデータ。この単純なケースではVBAは不要です。

抜粋:

エクスポート操作の開始

ShowStep 1:エクスポートするデータを特定する

エクスポートするデータを含むデータベースとデータベース内のオブジェクトを見つけることから始めます。テーブル、クエリ、フォーム、またはレポートをエクスポートできます。たとえば、Customersテーブルに保存されている顧客データ、または製品カタログレポート全体をエクスポートできます。

注データアクセスページ(データアクセスページ:インターネットまたはイントラネットからのデータを表示および操作するために設計されたWebページ。そのデータは通常Accessデータベースに格納されます)、マクロ、およびモジュールをエクスポートできません。

ShowStep 2:エクスポート操作を開始する場所を決定する

....

データベースウィンドウからオブジェクトをエクスポートできます(データベースウィンドウ:Access 2003以前では、データベースまたはプロジェクトを開いたときに表示されるウィンドウ。新しいデータベースオブジェクトを作成し、既存のオブジェクトを開くためのショートカットが表示されます。ナビゲーションペインに置き換えられます。)、またはビューで開いている場合。次の表は、ビューがエクスポート内容に与える影響を説明しています。

注デザインビューまたはSQLビューからデータをエクスポートすることはできません。オブジェクトビュー/ウィンドウエクスポートされるものテーブル、クエリ、フォームデータベースウィンドウすべてのフィールドとレコードテーブル、クエリ、フォームピボットテーブル、およびピボットグラフビューフィールドが実際にビューに含まれているかどうかに関係なく、基になるレコードソースのすべてのフィールドとレコード。テーブル、クエリ、フォームデータシートビュー一部のデータのみをエクスポートする場合は、それを選択してから、選択したデータのみをエクスポートすることを選択できます。データシート全体をエクスポートするオプションもあります。フォームフォームビューフィールドが実際にビューに含まれているかどうかに関係なく、基礎となるレコードソース内のすべてのフィールドとレコード。レポートデータベースウィンドウ、印刷プレビュー、レイアウトプレビュー[グループヘッダー]セクションと[詳細]セクションのテキストボックスに含まれるすべてのデータ、およびSum関数を含む式を含むグループフッターのテキストボックス。AccessはExcelのアウトライン機能を使用して、Excelでレポートをフォーマットします。レポートをExcelにエクスポートする方法の詳細については、Microsoft Excelへのレポートの出力方法を参照してください。Excelでレポートを操作する方法の詳細については、Excelヘルプのアウトラインの操作に関するトピックを参照してください。

ShowStep 3:エクスポート操作の宛先ファイルを特定する

エクスポート操作中に、宛先ファイルの名前を指定するよう求められます。指定した名前のファイルが存在しない場合、新しいファイルが作成されます。ファイルが存在する場合、次のいずれかが発生します。

* If you are exporting a table or query and you don't select the Save Formatted check box during the export operation, the file will not be overwritten. A new worksheet will be added to the file with the same name as the object that is being exported. If a worksheet already exists with that name, Access will prompt you to either replace the contents of the corresponding worksheet, or specify a different name for the new sheet.

[書式設定の保存]チェックボックスをオンにすると、ワークシートはデータシートと同様の書式設定を継承しますが、ワークシートの既存の内容は上書きされます。

* If you are exporting a form or a report, the file will always be overwritten. All of its existing worksheets will be removed, and a new worksheet with the same name as the exported object will be created.

ShowStep 4:特定のデータ型とコントロールをエクスポートする前に知っておくべきこと

* Pictures and objects    All graphical elements, such as a logo, background picture, and contents of OLE object fields that are part of the exported data will not be exported.
* Graph    When you export a form or a report that contains a Microsoft Graph object, the graph object does not get exported. To resolve this situation, see How to export a graph from Access to Excel.
* Null values    Sometimes, Null values get replaced with the data that should be in the adjacent column in the resulting worksheet. For more information on when and why this problem occurs, and how to resolve it, see Nulls replaced with next field's data when you export to Excel.
* Calculated values    The expression that is used to calculate the values is not exported to Excel. Only the results of the expressions get exported.
* Date values    Date values earlier than Jan 1, 1900 do not get exported — the corresponding cell in the worksheet will contain a Null value, instead. For more information about how to resolve this, see Exporting dates may result in nulls or cause "Numeric Field Overflow" errorExporting dates may result in nulls or cause "Numeric Field Overflow" error.
* Check boxes    If you start the export operation from the Database window (Database window: In Access 2003 and earlier, the window that appears when a database or project is opened. It displays shortcuts for creating new database objects and opening existing objects. In later versions, it is replaced by the Navigation Pane.) or in Form view, check boxes on forms will not get exported. The corresponding column in the worksheet will display "#". To solve this situation, open the form in Datasheet view before exporting it. The corresponding column in the worksheet will contain TRUE or FALSE, depending on the selected status of the check box in the form.
* Subreports and subforms    Subreports are exported, but subforms will be ignored.

ShowStep 5:エクスポート操作を開始します

  1. エクスポートするオブジェクトが開いていない場合、データベースウィンドウ(データベースウィンドウ:Access 2003以前では、データベースまたはプロジェクトを開いたときに表示されるウィンドウ。新しいデータベースオブジェクトを作成し、既存のオブジェクトを開くためのショートカットが表示されます。それ以降のバージョンでは、ナビゲーションペインに置き換えられます。)、オブジェクトの名前をクリックします。データシートの一部のみを保存するには、続行する前にデータシートを開き、データシートのその部分を選択します。
  2. [ファイル]メニューの[エクスポート]をクリックします。
  3. [ファイルの種類]ボックスで、[Microsoft Excel 5-7]または[Microsoft Excel 97-2003]をクリックします。

    注[ファイルの種類]ボックスにMicrosoft Excelが表示されない場合は、レジストリ内の必要なドライバーへのパスが無効であるためです。この問題を修正する方法の詳細については、インストール可能なISAMエラーメッセージが見つかりませんでしたを参照してください。

  4. [保存する場所]ボックスの右側にある矢印をクリックし、保存するドライブまたはフォルダーを選択します。

  5. [ファイル名]ボックスに、ファイルの名前を入力します(または提案された名前を使用します)。
  6. [書式設定を保存]チェックボックスをオンにします。
  7. 次のいずれかを実行します。*データシートを保存する場合は、[すべてエクスポート]をクリックしてデータシート全体を保存するか、手順1でデータシートの一部を選択した場合は[選択を保存]をクリックします。

ShowStep 6:Excelワークシートを確認する

ワークシートを開き、データが完全にエクスポートされたことを確認します。セル(緑色の三角形)またはエラー値(データではなく「#」で始まる文字列)のエラーインジケーターを探します。エラーインジケータとエラー値のトラブルシューティングの詳細については、Excelヘルプを参照してください。

ワークシートのエラーを確認しながら、空白または欠落した列、空のセルも探します。大きな問題が見つかった場合は、ソースデータベースでそれらを修正し、エクスポート操作を繰り返します。

詳細なトラブルシューティング情報については、「Accessでのエクスポートのトラブルシューティング」を参照してください。AccessデータをExcelに取り込む他の方法

エクスポートに加えて、次の手法を使用して、AccessからExcelにデータを取り込むことができます。

* Cut or copy data from Access and paste it into an Excel worksheet. For more information about how to do this, see the section "Copy or move records or data from multiple fields in Microsoft Access to another application" in the topic Copy or move data.
* Export data by using code. You can write a macro or a Visual Basic for Applications (VBA) procedure to export data programmatically. For more information about how to do this, see Export data programmatically.
* Load Access data in an instance of Excel.

ShowHow?

  1. データベースウィンドウ(データベースウィンドウ:Access 2003以前では、データベースまたはプロジェクトを開くと表示されるウィンドウ。新しいデータベースオブジェクトを作成し、既存のオブジェクトを開くためのショートカットが表示されます。後のバージョンでは、ナビゲーションウィンドウに置き換えられます。 。)、保存してExcelに読み込むデータシート、フォーム、またはレポートの名前をクリックします。データシートの一部のみを読み込むには、データシートを開き、データシートのその部分を選択してから続行します。
  2. [ツール]メニューの[Officeリンク]をポイントし、[Microsoft Excelで分析]をクリックします。

    • Microsoft AccessデータをExtensible Markup Language(Extensible Markup Language(XML))にエクスポートします:情報の整理と表示に柔軟性を提供するカスタマイズされたタグを開発者が作成できるようにするStandard Generalized Markup Language(SGML)の圧縮形式。その後、Excelにインポートできます。アクセスデータをXMLとしてエクスポートする方法の詳細については、「アクセスデータをXMLとしてエクスポートする」を参照してください。

....

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.