Access VBA質問箱 IV

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

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


5175 / 9994 ←次へ | 前へ→

【8048】Re:エクスポート処理時の条件範囲
発言  あくせーす  - 06/6/26(月) 2:20 -

引用なし
パスワード
   ▼クロ さん:

ご回答を頂きまして、ありがとうございます。

ボタンクリックイベントに、SQL文でパラメータ用のクエリを一時的に作成し、エクスポートした後、
削除する形で対応してみましたが、パラメータが少なすぎる。1を指定してください。と
エラーが表示されてしまいます。

  Dim MyDb2 As DAO.Database
  Dim MyQd2 As DAO.QueryDef
  Dim MyTb2 As DAO.Recordset

  Dim strSQL2 As String
  Dim strQryName2 As String
  Dim varQryName2 As Variant

  '既存のクエリ名を指定する。
  strQryName2 = "Q_Name"
  '新規作成のクエリ名を指定する。
  varQryName2 = "Q_エクスポート用Name"

  Set MyDb2 = CurrentDb

  '同名のクエリは削除
  MyDb2.QueryDefs.Refresh
  For Each MyQd2 In MyDb2.QueryDefs
    If MyQd2.Name = varQryName2 Then
      MyDb2.QueryDefs.Delete MyQd2.Name
    End If
  Next MyQd2

  '新規クエリ作成
  strSQL2 = "SELECT 連休番号, 連休, User FROM Q_Name WHERE (((Q_Name.No_連休)=[]));"
  Set MyQd2 = MyDb2.CreateQueryDef(varQryName2, strSQL2)
  Set MyTb2 = MyQd2.OpenRecordset()

  If Not MyTb2.EOF Then
    strSQL2 = strQryName2 & " をExcelファイルへ出力します。" & Chr(13) & _
         "よろしければ、OKをクリックして下さい。"
  Else
    strSQL2 = "出力データがありません。処理を中止します。"
    MsgBox strSQL2, vbOKOnly, "通知"
    GoTo exit_qryToExcel
  End If

  If MsgBox(strSQL2, vbOKCancel, "確認") = vbCancel Then
    GoTo exit_qryToExcel
  End If

  '保存ダイアログ表示後出力
  'OutputTo での出力は Excel 5.0 の仕様の為、行数の上限が 16,384 行となる。
  DoCmd.OutputTo acQuery, varQryName2, acFormatXLS, , True
  'MsgBox "出力終了しました。", vbOKOnly

exit_qryToExcel:
<略>

err_qryToExcel:
<略>


>PARAMETERS [連休番号を指定してください] Long;
>SELECT 連休番号, 連休, User
>FROM テーブル名
>WHERE 連休番号=[連休番号を指定してください];

単純にQ_Nameをパラメータクエリとして作成し、連休番号20を入力すれば
番号が20のレコードかつ、不要なフィールドを除くフィールドを表示することは、
できるんですが、今回はフォームのボタンでエクスポートさせたいことです。

ただ、やりたい内容は下記です。

連休番号  連休  User  Password  ・・・(略)
20     秋休み A    ***
20     秋休み B    ***
20     秋休み C    ***
30     春休み A    ***
30     春休み B    ***
30     春休み C    ***
30     春休み D    ***
40     夏休み A    ***
40     夏休み B    ***
40     夏休み C    ***
40     夏休み D    ***
40     夏休み E    ***
40     夏休み F    ***
40     夏休み G    ***

とする。

エクスポートすると、
連休番号  連休  User ・・・エクスポートしたいフィールド名
40     夏休み A
40     夏休み B
40     夏休み C
40     夏休み D
40     夏休み E
40     夏休み F
40     夏休み G

となるんですが、

テーブルに連休番号50を追加するという場合も考慮したい。
その場合は連休番号が常に最大値の数値のみを抽出するクエリ用のSQL文を
記述(不要なフィールドも)するSQL文はどのように表現すればよいでしょうか?
上記のstrSQL = "" の中に記述すればよいですが・・・

サーバにテーブルを持たせて、各PCは配布ファイルを起動するので
プログラムで指定するのではなく、テーブルを参照するようにしたい。

分かる方、教えて下さい。
536 hits

【8030】エクスポート処理時の条件範囲 あくせーす 06/6/23(金) 0:00 質問
【8031】Re:エクスポート処理時の条件範囲 クロ 06/6/23(金) 9:22 回答
【8048】Re:エクスポート処理時の条件範囲 あくせーす 06/6/26(月) 2:20 発言
【8050】Re:エクスポート処理時の条件範囲 クロ 06/6/26(月) 10:20 回答
【8072】Re:エクスポート処理時の条件範囲 あくせーす 06/6/27(火) 23:35 お礼
【8032】Re:エクスポート処理時の条件範囲 たん 06/6/23(金) 9:23 回答

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