• 締切済み

accessのデータをexcelに

Office97使用のシステム管理初級者です。 accessのクエリーを利用して以下のようなシステムを作ろうと思っているのですが、行き詰っています。 (1) 特定のデータ(複数)を抽出 (2) 既に用意しているexcelの任意の位置にデータを移管 (3) excelのブックを別名にてフロッピーに保存 (1)は何とかできたのですが、(1)によって抽出できたデータを任意のexcelに移管する時、最初の1データしか移管できなくて困っています。(次のようなものです・・・。) Private Sub エクセル起動_Click() On Error GoTo Err_エクセル起動_Click Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True 'Only XL 97 supports UserControl Property On Error Resume Next oApp.UserControl = True oApp.Workbooks.Open FileName:="D:\****\123.xls" oApp.range("b4").Value = Me![1] oApp.range("c8").Value = Me![2] oApp.range("d8").Value = Me![3] oApp.range("e8").Value = Me![4] oApp.range("f8").Value = Me![5] oApp.range("g8").Value = Me![6] oApp.range("h8").Value = Me![7] oApp.range("i8").Value = Me![8] oApp.range("j8").Value = Me![9] Exit_エクセル起動_Click: Exit Sub Err_エクセル起動_Click: MsgBox Err.Description Resume Exit_エクセル起動_Click End Sub それぞれの行にズラーッとデータがきて、さらにそのexcelを別名にてフロッピーに保存したいのですが、どのようにすればいいのでしょうか? よろしくお願いします。

みんなの回答

  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.4

> セルb2に入ってるデータ「****」とかを、そのままブック名にして保存 a1 に pathとファイル名が入っていたとして、 (例えば D:\****\123456.xls とか) oApp.ActiveWorkbook.SaveAs ( oApp.cells(1,1) ) で、良いのじゃないかと思います。 試していませんが、多分OKだと思います。

tanaben
質問者

お礼

ryuu001さん、ありがとうございます! 早速試してみます。

  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.3

名前を付けて保存は次の通りです。 oApp.ActiveWorkbook.SaveAs Filename:="D:\****\123456.xls"

tanaben
質問者

お礼

ryuu001さん、ありがとうございます。 例えば、セルb2に入ってるデータ「****」とかを、そのままブック名にして保存できる方法はありますか? よろしければ、教えて下さい。

  • mayurin
  • ベストアンサー率25% (49/193)
回答No.2

こんにちは。Accessからであれば、TransferSpreadsheet関数を使う というのはどうでしょうか? 考慮済みならすいません。 参考URLでもいろいろ事例を検索できると思います。詳しくはヘルプなど 見てみて下さい。(きちんと書くのはちょっと自信ないので・・・)

参考URL:
http://www7.big.or.jp/~pinball/
tanaben
質問者

お礼

mayurinさん、ありがとうございます。 TransferSpreadsheet関数ですね。 むずかしそうだけど、頑張ってみます。

回答No.1

こんにちは、ats8181oyajiです ちょっと時間が無いので、ヒントにもならないですが 回答が無いので、出てまいりました。 たぶん、フォームのデータを以下の様に "oApp.range("b4").Value = Me![1]" エクセルに格納されてますがもこれだと 1行だけになると思います。 私なら 1.抽出データを画面表示前に、テーブル作成クエリにて、新規テーブルを作成 2.そのテーブルをPrivate Sub エクセル起動_Click() 内にて レコードセットを使いオープンしEOFまでループしながら読み込み。 3.そのループの中に、読み込んだデータを(エクセルの行を変更しながら) エクセルにセットする とします。 詳しいコーディングは、他の方におまかせします。 では

tanaben
質問者

お礼

ats8181oyajiさん、ありがとうございます。 参考にさせて頂きます。 ありがとうございました。

関連するQ&A