AccessからExcelのファイルを起動し、Accessのクエーリの
内容をExcelのきめられたセルへクエーリの内容を出力したいのですが?
とりあえずExcelを起動するところまではできるのですが、クエリーの
内容をセルを指定しながら出力が出来ません。宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

DDEが使えるんじゃないでしょうか?


詳細はヘルプでDDEを検索してみてください。
データだけならオブジェクト使うよりも簡単だと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速やってみます。

お礼日時:2001/03/10 15:22

データベースのクエリーってやつでしょうか?


エクセル2000ですと”データ”メニューの”外部データの取り込み”の
”新しいデーデベースクエリーの作成”でデータソースの種類を選択(アクセス)
します。アクセスデータの保存場所を選んで開きます。
ウィザードが開きますのでデータの列を選択して”>”ボタンを押して
追加していきます。途中抽出条件なども指定できます。
ウィザードを終了する時に”エクセルにデータを返す”のラジオボタンを
チェックして完了を押すと
”エクセルへの外部データ取り出し”ダイアログが出て挿入する
最初のセルを選べます。
 見当違いな回答だったらスミマセン。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
私がやりたいのは、アクセスから(GetObject関数を使い)
エクセルのファイルを読み込み、アクセスで作られたデータを落とし込み
たいのですが?他に良い方法があれば?

お礼日時:2001/03/09 13:50

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

このQ&Aと関連する良く見られている質問

QVBA ACCESS ファイル出力時に更新内容を保存しないで出力したい

VBA ACCESSの質問です
はじめまして
最近になりVBAをはじめたものです。
下記の点について調べてもわからないことがあり非常に困っております。

フォーム上にファイル出力をするコマンドボタンがあります。
これをクリックすると拡張子がdatのファイルで出力されるのですが、

【テーブルの値を一部変更した際に、
 更新内容を保存しないでファイル出力をする】

という処理のコードはどのようにすればよろしいでしょうか?

↓↓例えば↓↓
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT 列名 FROM テーブル名)", dbOpenDynaset
Do Until rs.EOF
rs.Edit
rs!列名 = Replace(rs!列名, "変換したい文字", "変換する文字")
rs.Update
Loop
rs.MoveNext
rs.Close
Set rs = Nothing

上記コードの6行目を
rs.update
にしてしまうと当然ながらテーブルが更新されてしまいます。
どのようにすれば、テーブルの更新内容を保存しないでファイル出力ができるのでしょうか

おわかりになる方がいらっしゃいましたら、ぜひ教えてください!
よろしくお願いいたします

VBA ACCESSの質問です
はじめまして
最近になりVBAをはじめたものです。
下記の点について調べてもわからないことがあり非常に困っております。

フォーム上にファイル出力をするコマンドボタンがあります。
これをクリックすると拡張子がdatのファイルで出力されるのですが、

【テーブルの値を一部変更した際に、
 更新内容を保存しないでファイル出力をする】

という処理のコードはどのようにすればよろしいでしょうか?

↓↓例えば↓↓
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecord...続きを読む

Aベストアンサー

方法は2つあると思います。
1.変更前の情報を保存しておいてdatファイル出力後に元に戻す
2.出力用のテーブルを別に作成し、それをdatファイルとして出力する

質問には書かれていませんが、datファイルに出力方法は、テーブルをエクスポートすると思ってよろしいのでしょうか?
もし、そうならばdatファイル出力用のクエリーを作成する方法もありかと。そうすれば元テーブルの内容を書き換える必要はなくなりますよ。 あっ、これで3パターン目ですね(^^)

QAccessで定型フォーマットのExcel出力エラーについて

こんにちは。誰か助けて下さい。
職場で、Accessを使用しシステムを作成しています。
昨日から、Excel出力時にエラーが出て、途中で止まってしまいます。
OS:XpPro、Office:XpProです。SQLServer2000を使用しています。
自分以外の端末では、通常通りに出力が出ます。
クエリーをそのままExcel出力することはできますが、特定のフォーマットに指示して出力することができなくなりました。
デバックでストップするところは、****の行です。
エラー内容は、【実行時エラー'430':クラスはオートメーションまたは予測したインターフェースをサポートしていません。】です。
長くなりますが、お願いいたします。

--抜粋--
'指定されたExcelシートに上書き
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(FileName:=テンプレートファイル名)
Set xlSheet = xlBook.Worksheets("Data_Area")

sql = "SELECT * FROM tmp_tableA"
Set rst = CurrentDb.OpenRecordset(sql, dbOpenSnapshot, dbReadOnly)
xlSheet.Range("A3").Clear
'*********下行で止まります。**********
xlSheet.Range("A3").CopyFromRecordset rst
'*************************************

こんにちは。誰か助けて下さい。
職場で、Accessを使用しシステムを作成しています。
昨日から、Excel出力時にエラーが出て、途中で止まってしまいます。
OS:XpPro、Office:XpProです。SQLServer2000を使用しています。
自分以外の端末では、通常通りに出力が出ます。
クエリーをそのままExcel出力することはできますが、特定のフォーマットに指示して出力することができなくなりました。
デバックでストップするところは、****の行です。
エラー内容は、【実行時エラー'430':クラスはオートメーションま...続きを読む

Aベストアンサー

>実行時エラー'430':クラス・・
WindowsXPでデバッグしているコンポーネントが適正にインストールされていない場合でるエラーですよね。
MDACが損傷している。バージョンがあっていない。
WindowsScriptが損傷しているためVBScript.dllが動いていない。
なにかのソフトがVBScriptの動きを止めてしまっている・・等
確認してみてください。

MDACのダウンロード(要バージョン確認)
http://www.microsoft.com/japan/msdn/data/download.asp
WindowsScriptのダウンロード
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp

QACCESSでExcelにデータ出力、高速化

ACCESSのVBAを使ってテーブルのデータを
既存ブックに出力し、別名で保存をしたいのですが、
どうも、処理が遅くて困っています。
改善点がありましたら教えてくださいお願いいたします。

Dim objExcel As Excel.Application
Dim xlWrkbk As Excel.Workbook
Dim xlWrksh As Excel.Worksheet
Dim rs As DAO.Recordset
Dim strFilename As String

strFilename = CurrentProject.Path & "既存ブック名.XLS"

Set objExcel = New Excel.Application
Set xlWrkbk = objExcel.Workbooks.Open(Filename:=strFilename, ReadOnly:=True)
Set xlWrksh = xlWrkbk.Worksheets("シート名")

Set rs = CurrentDb.OpenRecordset("テーブル名", dbOpenSnapshot)

With objExcel
xlWrksh.Range("A:N").Clear
xlWrksh.Range("A2").CopyFromRecordset rs
xlWrkbk.SaveAs Filename:=CurrentProject.Path & "新しいブック名.xls"
xlWrkbk.Close
.Quit
rs.Close
End With

Set rs = Nothing
Set objExcel = Nothing
Set xlWrkbk = Nothing
Set xlWrksh = Nothing

ACCESSのVBAを使ってテーブルのデータを
既存ブックに出力し、別名で保存をしたいのですが、
どうも、処理が遅くて困っています。
改善点がありましたら教えてくださいお願いいたします。

Dim objExcel As Excel.Application
Dim xlWrkbk As Excel.Workbook
Dim xlWrksh As Excel.Worksheet
Dim rs As DAO.Recordset
Dim strFilename As String

strFilename = CurrentProject.Path & "既存ブック名.XLS"

Set objExcel = New Excel.Application
Set xlWrkbk = objExcel.Workbooks.Open(Filename:=strFilename, R...続きを読む

Aベストアンサー

内容吟味しないで申し訳ないですけど、既成のマクロでスプレッドシートにエクスポートするマクロが
あるので、それをつかったらどうでしょうか。
多分、レコードを1つづつ呼び出して書き込むよりかは早いかと。

ヘルプを見たところVBAでは、
docmd.TransferSpreadsheet(TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)
を使うようです。
使い方の詳細は、ヘルプから参照して速さを比較してください。

QACCESSからEXCELに出力する際、時間がかかる。

よろしくお願いします。

ACCESS VBA を使用して、既存のEXCELファイルにデータを出力しているのですが、すごく時間がかかってしまいます。件数が少ない時はそれほど気にならないのですが。時間短縮する方法を教えてください。


Sub S_ExportExcel_ADO()
Dim CN As ADODB.Connection
Dim rst As ADODB.Recordset
Dim objExcel As Excel.Application
Dim i As Integer
Dim W_SQL As String
On Error GoTo Err_S_ExportExcel_ADO

Set objExcel = New Excel.Application
objExcel.Workbooks.Open ("test.xls")
objExcel.Worksheets("sheet1").Select

Set CN = CurrentProject.Connection
Set rst = New ADODB.Recordset

W_SQL = "SELECT * FROM データ"
rst.Open W_SQL, CN, adOpenKeyset, adLockReadOnly

i = 1
Do Until rst.EOF
objExcel.Cells(i, 4) = Trim("" & rst![データ1])
objExcel.Cells(i, 5) = Trim("" & rst![データ2])
objExcel.Cells(i, 6) = Trim("" & rst![データ3])
objExcel.Cells(i, 7) = Trim("" & rst![データ4])
objExcel.Cells(i, 9) = Trim("" & rst![データ5])
'***省略***
objExcel.Cells(i, 35) = Trim("" & rst![データ15])
objExcel.Cells(i, 36) = Trim("" & rst![データ16])
i = i + 1

rst.MoveNext
Loop


'EXCEL保存
objExcel.ActiveWorkbook.Close
objExcel.Quit
rst.Close
CN.Close

Set rst = Nothing
Set CN = Nothing
Set objExcel = Nothing


End Sub

よろしくお願いします。

ACCESS VBA を使用して、既存のEXCELファイルにデータを出力しているのですが、すごく時間がかかってしまいます。件数が少ない時はそれほど気にならないのですが。時間短縮する方法を教えてください。


Sub S_ExportExcel_ADO()
Dim CN As ADODB.Connection
Dim rst As ADODB.Recordset
Dim objExcel As Excel.Application
Dim i As Integer
Dim W_SQL As String
On Error GoTo Err_S_ExportExcel_ADO

S...続きを読む

Aベストアンサー

履歴です。
#1のtodo36さんの発言
http://okweb.jp/kotaeru.php3?q=475151

QAccess→Excelへの出力とVBA

エクセルのシート1のB列に2種類の数値どちららかを選択させ、
A列の行数にそって入力させたいと考えています。

数値の判断は、
AccessのフォームABCにあるコンボボックスAで
○×を選んだときは「1」、
AccessのフォームABCにあるコンボボックスAで
☆★を選んだときは「2」
をA列に入力されている値の行数だけB列に値を入力させるには、
どの様にしたら良いのでしょうか?

Access単品の操作では出来ないと聞きました。

よろしくお願いします。

Aベストアンサー

既に起動しているアクセスの画面情報を監視しエクセルのシートに反映したいということでしょうか?
これは、エクセル側で仕組めば出来ないことはないでしょう。
しかし、必死こいて、そういう仕組みを開発する必要性は・・・・???
そういうことで、簡易的な仕組みを提案。

テキストファイルにAccessの更新情報を吐き出すというやり方。

更新情報01.txt

1

まあ、これだけの情報の受け渡しを担当するファイル。
エクセル側では0.1秒程度の間隔で更新の有無をチェック。
ファイルが存在すれば読み込んで削除して更新。
0.1秒以下の間隔で更新された場合の事を考えて、更新情報01.txt、更新情報02.txt・・・更新情報10.txtと命名。

auto_run でこの仕組みを起動しておけば事実上Access の更新が Excel に反映されると思います。

ただ、0.1秒待機する関数は、簡単ですが落とし穴もありますので紹介しておきます。

Public Sub Pause(ByVal PauseTime As Single)
  Dim Finish As Single
  
  Finish = Timer + PauseTime
  Do
    DoEvents
  Loop Until Timer > Finish
End Sub

なお、ファイル出力等では次のような関数を利用すれば簡単です。

Public Function FileWrite(ByVal FileName As String, _
             ByVal Text As String) As Boolean
On Error GoTo Err_FileWrite
  Dim fso As FileSystemObject
  Dim txs As TextStream
  
  Set fso = New FileSystemObject
  Set txs = fso.CreateTextFile(FileName, True)
  txs.Write Text
  FileWrite = True
Exit_FileWrite:
  Exit Function
Err_FileWrite:
  MsgBox Err.Description & "(FileWrite)", vbExclamation, " 関数エラーメッセージ"
  Resume Exit_FileWrite
End Function

Public Function FolderExists(ByVal FolderName As String) As Boolean
  Dim fso As FileSystemObject
  
  Set fso = New FileSystemObject
  FolderExists = fso.FolderExists(FolderName)
End Function

Public Function DeleteFile(ByVal FileName As String) As Boolean
On Error GoTo Err_DeleteFile
  Dim isOK  As Boolean
  Dim fso   As FileSystemObject
  
  Set fso = New FileSystemObject
  fso.DeleteFile FileName
  isOK = True
Exit_DeleteFile:
  DeleteFile = isOK
  Exit Function
Err_DeleteFile:
  Resume Exit_DeleteFile
End Function

Public Function FileReadArray(ByVal FileName As String) As String()
On Error GoTo Err_FileReadArray
   Dim fso    As FileSystemObject
   Dim strTexts() As String
  
   Set fso = New FileSystemObject
   strTexts() = Split(fso.OpenTextFile(FileName).ReadAll, vbCrLf)
Exit_FileReadArray:
   FileReadArray = strTexts()
   Exit Function
Err_FileReadArray:
   MsgBox Err.Description & "(FileReadArray)", vbExclamation, " 関数エラーメッセージ"
   strTexts() = Split("")
   Resume Exit_FileReadArray
End Function

既に起動しているアクセスの画面情報を監視しエクセルのシートに反映したいということでしょうか?
これは、エクセル側で仕組めば出来ないことはないでしょう。
しかし、必死こいて、そういう仕組みを開発する必要性は・・・・???
そういうことで、簡易的な仕組みを提案。

テキストファイルにAccessの更新情報を吐き出すというやり方。

更新情報01.txt

1

まあ、これだけの情報の受け渡しを担当するファイル。
エクセル側では0.1秒程度の間隔で更新の有無をチェック。
ファイルが存在すれば読...続きを読む


人気Q&Aランキング

おすすめ情報