アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
Access2000で住所録を作成し、運用しております。
普段はデータをフリガナ、会社名、市町村で検索し、表示しているのですが
この時に使用した、検索条件をそのまま使って、得られたデータをExcelに
エクスポートしたいのです。
(検索は、サブフォームの一覧表示部に各検索条件でフィルタをかけるという方法で行っています。)
テーブル作成クエリなどいろいろ試してみたのですが、なかなかうまくいきません。
良い方法をご存知の方いらっしゃいましたら、よろしくお願いします。

A 回答 (3件)

テーブル作成クエリで抽出したものをテーブルに出来たらあとはコードで出来ます。


ただし、
1.エクスポート先のEXCELファイルは既にある前提です。ここでは仮にC:\Windows\デスクトップ\Expo.xlsというファイルのDataという名前のシートににエクスポートするとします。

2.VBAでDAOを使用しますが、2000の場合標準がADOになっていますので、ビジュアルベーシックエディターのツールメニューの参照設定からDAOの一番新しそうなヴァージョンのやつにチェックマークをつけておいてください。(ADOでやればいいのでしょうが私の知識が古いのでDAOしか使えないのです。)

3.抽出して作成したテーブルの名前はT_抽出Dataと仮にしておきます。
4.どれかのフォームにコマンドボタンを作成して、そのクリック時のイベントプロシージャに次のようなコードを書きます。

Private Sub ボタン_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim appExcel As Object
Dim Worksheets As Object
Dim I As Integer '行番号

Set db = CurrentDb
Set rs = CurrentDb.OpenRecordset("T_抽出Data")

'エクセルオブジェクト生成
Set appExcel = GetObject("C:\Windows\デスクトップ\Expo.xls")
Set Worksheets = appExcel.Worksheets("Data")

'作業中はエクセルシートを非表示
appExcel.Parent.Windows(appExcel.Name).Visible = False

With Worksheets

'データ追加ループ
Do Until rs.EOF = True
.Cells(I, 1) = rs.Fields("フィールド名")
.Cells(I, 2) = rs.Fields("フィールド名")
.Cells(I, 3) = rs.Fields("フィールド名")
.Cells(I, 4) = rs.Fields("フィールド名")
rs.MoveNext
I = I + 1
Loop

End With

appExcel.Parent.Windows(appExcel.Name).Visible = True

'エクセルブックを閉じる
appExcel.Close True

' オブジェクトの参照を解放
Set Worksheets = Nothing
Set appExcel = Nothing

MsgBox ("エクセルへの出力が終了しました")
End Sub

実は私も以前、教えてgooで同じような質問をして、別の人にこのコーディングを教えてもらいました。

この回答への補足

ありがとうございます。
もう2点教えていただきたいのですが、
・このテーブルはエクスポートが終了した時点で削除できますでしょうか?
毎回いろいろな内容でエクスポートしたいのです。
・Excelのファイル名を任意に付けて、保存するにはやはりコモンダイアログ
などの特殊なオブジェクトを用いなければできないのでしょうか?

お時間ありましたら、またご回答お願いします。

補足日時:2002/12/06 15:14
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
上記のコードを実際に書いて試してみます。

お礼日時:2002/12/06 15:06

>検索条件をそのまま使って、得られたデータをExcelにエクスポートしたいのです住所録テーブルのクエリを作り同様の検索条件を入れテーブル作成クエリにして


抽出条件を入れテーブルを作成し、そのテーブルをエクスポートすれば簡単に出来
ます。

もしくは抽出条件で抽出されたレコードのレポートを作り、そのレポートをExcel
に出力することもできます。
この場合は、ラベルなどがあると余計なセルが作られる場合がありますがExcel
なら簡単に修正できると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
一応回答いただいた内容は、以前にやってみたのですが
毎回違うテーブルを作成し、さらにそのテーブルについては
エクスポートが完了した時点で削除したいのですが、それがうまくいきませんでした。
レポートからもExcelに出力できるとの事ですので、試してみます。
ありがとうございました。

お礼日時:2002/12/06 15:13

ふりがな、会社名、市町村を問い合わせるクエリをウイザードで作成した後、クエリを選択した状態でファイルのエクスポートを選べば、クエリが実行されてからその結果がexcelにエクスポートされますが。


vbはさっぱりわからない私が常用する方法です。
    • good
    • 1
この回答へのお礼

回答ありがとうございました。
今回は住所録の使用者にクエリAccessの操作を特に気にさせずに
使用してもらいたいのです。
でも自分で操作する時には、大変便利な方法ですね。
初めて知りました。
ありがとうございました。

お礼日時:2002/12/06 15:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A