Access VBA質問箱 IV

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

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


1461 / 2272 ツリー ←次へ | 前へ→

【7054】エクセルへのエクスポート 06/1/11(水) 11:04 質問[未読]
【7064】Re:エクセルへのエクスポート たん 06/1/11(水) 12:13 回答[未読]
【7065】Re:エクセルへのエクスポート たぬき 06/1/11(水) 12:21 発言[未読]
【7066】Re:エクセルへのエクスポート 06/1/11(水) 12:29 質問[未読]
【7070】Re:エクセルへのエクスポート たん 06/1/11(水) 13:29 回答[未読]
【7089】Re:エクセルへのエクスポート たぬき 06/1/11(水) 19:43 発言[未読]
【7091】Re:エクセルへのエクスポート 06/1/12(木) 8:56 お礼[未読]

【7054】エクセルへのエクスポート
質問   E-MAIL  - 06/1/11(水) 11:04 -

引用なし
パスワード
   下記の様なコードでエクセルへのエクスポートを実施しようとしていますが、
パラメータが少ないというエラーがでて困っています。

エラー番号:3061
エラー内容:パラメータが少ない。1を指定して下さい。

出力するデータは、クエリの結果で抽出条件は、フォーム[F_帳票]のテキストBox
としています。
抽出条件をどの様にコードしたらよいのか分かりません。
ヘルプを見ても検討がつかないので宜しくお願いします。

下記のコードは、他のホームページのサンプルファイルを参考に作成しました。

Private Sub コマンド192_Click()

  Dim Sdate As Date
  Dim Edate As Date
  Dim name As String
  Dim myfile As String
  Dim db As DAO.Database
  Dim rs As DAO.Recordset
  Dim objEXE As Object
  
  Set db = CurrentDb
  
'抽出条件チェック(条件が未入力の場合ERR_94へ)
On Error GoTo ERR_94
'抽出条件SET
  Sdate = Me.txt4
  Edate = Me.txt5
  name = Me.cmb1

If Not Me.cmb1 = "全員" Then
'抽出条件確認メッセージ
  If vbOK = MsgBox("抽出条件は" & Chr(13) _
    & "【個人課題実施期間】" & Sdate & "〜" & Edate & Chr(13) _
    & "【抽出対象者】" & name & " 氏でいいですか?", vbInformation + vbOKCancel, "確認") Then

    MsgBox "出力先はC:\負荷進捗管理\エクセル になります。" & Chr(13) _
    & "ファイル名: 実績データ一覧+抽出者氏名 です。", vbinfomation + vbOKOnly, "確認"
    '出力元クエリ名
    Set rs = db.OpenRecordset("test")
    'Excel利用可能
    Set objEXE = Excel.Application
    'エクセルファイルのパス指定
    objEXE.Workbooks.Open ("C:\負荷進捗管理\エクセル\実績データ一覧.xls")
    'Sheet名指定
    objEXE.Worksheets("Sheet1").Select
    '出力先の基点セル
    objEXE.Cells(2, 2).CopyFromRecordset rs
    objEXE.Quit
    
    Set rs = Nothing
    Set db = Nothing
    
  Else
  End If
Else
    Else
  End If
End If
'********************************************
'ERR_94エラー処理
ERR_94:
  If Err.Number = 94 Then
      MsgBox "抽出条件を設定してください。" & Chr(13) _
      & "【個人課題実施期間】【抽出対象者】が抽出条件となります。", vbOKOnly
  End If
End Sub

【7064】Re:エクセルへのエクスポート
回答  たん  - 06/1/11(水) 12:13 -

引用なし
パスワード
   >下記の様なコードでエクセルへのエクスポートを実施しようとしていますが、
>パラメータが少ないというエラーがでて困っています。
>
>エラー番号:3061
>エラー内容:パラメータが少ない。1を指定して下さい。

On Error Goto をRemにして、どの行でエラーになっているのかを明確にしてからの
話でしょう。

# 余所からもってきたコードであっても、そのコードを動かすのは
# 当人なのですから、そのコードがどういう動きをしているのかを
# 当人が把握していなければダメです。
# (コピーしました、動いたのでOKでは、当人が作ったことにはなりません。)

【7065】Re:エクセルへのエクスポート
発言  たぬき  - 06/1/11(水) 12:21 -

引用なし
パスワード
   気になったのはオブジェクトをクリアしてないので
ゾンビが残る可能性があります。
特にエラーで止まるとまずいです。

【7066】Re:エクセルへのエクスポート
質問   E-MAIL  - 06/1/11(水) 12:29 -

引用なし
パスワード
   たぬき さん たんさん 返信ありがとうございます。

エラーで止まる箇所は、
Set rs = db.OpenRecordset("test")の所です。

testというクエリを実行する際に、抽出条件が設定されないためエラーと
なっていると思うのですが、抽出条件は、フォームのtxtBoxから設定してますが、
データは入力されているので、何故エラーとなるか私には分かりません。

>気になったのはオブジェクトをクリアしてないので
>ゾンビが残る可能性があります。
>特にエラーで止まるとまずいです。

ゾンビとは何ですか?エラーで止まると特にまずいのは何故でしょうか?
初心者の為検討がつきません。

【7070】Re:エクセルへのエクスポート
回答  たん  - 06/1/11(水) 13:29 -

引用なし
パスワード
   ▼爺 さん:
>たぬき さん たんさん 返信ありがとうございます。
>
>エラーで止まる箇所は、
>Set rs = db.OpenRecordset("test")の所です。
>
>testというクエリを実行する際に、抽出条件が設定されないためエラーと
>なっていると思うのですが、抽出条件は、フォームのtxtBoxから設定してますが、
>データは入力されているので、何故エラーとなるか私には分かりません。

データセット中でパラメータ付きのクエリ(フォームのコントロール指定等)を
実行しようとするとエラーになります。

http://www.accessclub.jp/sql/25.html

のように、パラメータ部分を渡して、クエリを動的に生成して動かす形に
しなければなりません。

過去ログでも同様の情報があった筈なので確認して下さい。

もしくはこういう方法もあるが、クエリをデザイン上から開けなくなるので、
あまりお勧めはしません。
http://penhagi.com/access/tips/03_param_query.htm

【7089】Re:エクセルへのエクスポート
発言  たぬき  - 06/1/11(水) 19:43 -

引用なし
パスワード
   ▼爺 さん:
>ゾンビとは何ですか?エラーで止まると特にまずいのは何故でしょうか?
>初心者の為検討がつきません。

説明不足ですみません。
アクセスからエクセルを操作するとき起きやすい問題です。

エクセルを操作するときメモリーにしまっているのですが
エクセルの処理が終わったときにSet objEXE = Nothingの
様に書いて確保したメモリーを解放してあげないといけま
せん。
ところがエラーが起きるとメモリー領域が開放されないの
でメモリーを消費することになります。
すると変なエラーが起こったり、メモリが圧迫されるので
システムが不安定になります。
その他に参考ですが、Worksheets("Sheet1").Selectのよう
な記述の時にobjEXE.の部分を書きわすれると、同じように
メモリーが消費されます。

画面にはエクセルが見えないのに、実は陰でこっそり実行
されているのでゾンビといいます。

[Alt]と[Ctrl]と[Delete]をキーを同時に押すとWindows
タスクマネージャーが起動します。[プロセスタブ]を選択
すると現在のプロセスの状況が分かります。
エクセルを起動していないのにEXCEL.EXEが一覧にあったら
ひっとしたらゾンビの可能性があります。

【7091】Re:エクセルへのエクスポート
お礼   E-MAIL  - 06/1/12(木) 8:56 -

引用なし
パスワード
   ありがとうございます。
これからは、ゾンビが出ないように気を付けます。

1461 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free