Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2816 / 9994 ←次へ | 前へ→

【10445】エクセルファイルにデータを出力
質問  あおぎん  - 08/6/26(木) 16:18 -

引用なし
パスワード
    いつもお世話になっています。

 社会保険資格届出用のデータを作成するのに、コマンドボタンに下のようなコードを記述しました。
 やりたいことは、フォーム上で条件をつけて作成したクエリのデータを、指定のエクセルファイルの指定シートの指定場所に貼り付けるということです。

 いろいろな過去ログを参考に、なんとかコードを記述し、実行したところ、エクセルファイルに貼り付けるところまではできましたが、最後に、そのファイルを開く操作がうまくいきません。
 また、指定エクセルファイルを開いてないのに、開いているときの処理(ファイルを保存ダイアログ)が出てくるなど、ときどき微妙に変な動きをします。

 今回初めてエクスポートでなくCopyFromRecordsetを使ったので、記述内容に自信がありません。
 無駄や不備があるせいではないかと思うのですが・・。

 エクセルの開き方及び微妙な動きの解消について、ご教示をよろしくお願いします。


コードは以下のとおりです。(長くてすみません)

Dim DB As Database
 Dim qdf As QueryDef
 Dim rst As DAO.Recordset
 Dim xlsApp As Object
 Dim xlsWkb As Object
 Dim MyFile As String

 Dim str As String, constr As String
 Dim strmsg As String
 
  省略(ここで選択クエリの作成処理)
 
  Set DB = CurrentDb()
  Set qdf = DB.QueryDefs("Q_社保エクスポート用")
  qdf.SQL = str
  qdf.Close
  
  'レコードセットを開く
  Set rst = DB.OpenRecordset("Q_社保エクスポート用")
  If rst.RecordCount = 0 Then
    MsgBox "対象者がいません。", vbOKOnly, "データなし"
    rst.Close
    DB.Close
  Else
    rst.Close
    DB.Close
    
    'オブジェクトの作成
    Set xlsApp = CreateObject("Excel.Application")
    
    'ファイルを開く
    MyFile = "D:\My Documents\2008\社会保険届出関連\WT_社保資格喪失.xls"
    Set xlsWkb = xlsApp.Workbooks.Open(MyFile)
    Set rst = CurrentDb.OpenRecordset("Q_社保エクスポート用", dbOpenDynaset)
    xlsWkb.Worksheets("T_社保資格喪失").Range("A11.M100").ClearContents
    xlsWkb.Worksheets("T_社保資格喪失").Range("A11").CopyFromRecordset rst
  
   Set rst = Nothing
   xlsWkb.Close True: Set xlsWkb = Nothing
   xlsApp.Quit: Set xlsApp = Nothing

  End If
  
  MsgBox "処理が終了しました。" & vbCr & "D:\My Documents\2008\社会保険届出関連\WT_社保資格喪失.xlsを開いて届出帳票を印刷してください。"

<ここまではうまくいきますが、下の記述では開きませんでした。(オブジェクトがないというエラーメッセージが出ます。>
 
  MyFile = "D:\My Documents\2008\社会保険届出関連\WT_社保資格喪失.xls"
  xlsApp.Workbooks.Open (MyFile)
  xlsApp.Worksheets("T_社保資格喪失").Activate
  xlsApp.Visible = True
  xlsApp.UserControl = True
Exit Sub
(アクセス、winともに2000)


ためしに別の記述を試してみたのですが(↓)開きませんでした。(該当のファイルがないというエラーです。)
 stAppName = "Excel.exe D:\MyDocuments\2008\社会保険届出関連\WT_社保資格喪失.xls"
   Call Shell(stAppName, 1)

892 hits

【10445】エクセルファイルにデータを出力 あおぎん 08/6/26(木) 16:18 質問[未読]
【10446】Re:エクセルファイルにデータを出力 kohji 08/6/26(木) 17:26 回答[未読]
【10447】Re:エクセルファイルにデータを出力 あおぎん 08/6/27(金) 11:38 質問[未読]
【10448】Re:エクセルファイルにデータを出力 小僧 08/6/30(月) 11:55 回答[未読]
【10449】Re:エクセルファイルにデータを出力 あおぎん 08/7/1(火) 17:18 質問[未読]
【10450】Re:エクセルファイルにデータを出力 小僧 08/7/3(木) 11:02 回答[未読]
【10460】Re:エクセルファイルにデータを出力 あおぎん 08/7/8(火) 15:04 質問[未読]
【10468】Re:エクセルファイルにデータを出力 小僧 08/7/17(木) 10:42 回答[未読]
【10451】Re:エクセルファイルにデータを出力 neptune 08/7/3(木) 14:31 発言[未読]
【10461】Re:エクセルファイルにデータを出力 あおぎん 08/7/8(火) 15:23 お礼[未読]
【10462】Re:エクセルファイルにデータを出力 neptune 08/7/9(水) 15:18 発言[未読]

2816 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free