
No.4ベストアンサー
- 回答日時:
ご苦労様です。
Excelへのエクスポートは、DoCmdのTransferSpreadsheetメソッドで出来ます。
書式は、
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "T_検索結果", "Excelファイル名(フルパス)", True
第1引数は、エクスポートを表す定数です。インポートならacImportを指定します。
第2引数は、Excelのバージョンです。2000か2002なら8か9です。
第3引数は、エクスポートするテーブル名
第4引数は、エクスポートするExcelファイル名。フルパスで指定します。
第5引数は、TrueならExcelの1行目にフィールド名をつけます。Falseならなしです。
これをエクスポートしたい場所(少なくともT_検索結果を作成後)に置きます。
では。
いつもすばやくありがとうございます。
おかげさまで無事できました!
ありがとうございます。
また何かありましたら質問すると思いますので、
そのときはまたよろしくおねがいします。
本当にありがとうございました。
No.3
- 回答日時:
こんにちは。
maruru01です。テーブル作成のSQLにWHERE句をつければいいです。
DoCmd.RunSQL "SELECT ~(中略)~ FROM T_マスタ WHERE " & WhereCond
これを、DoCmd.OpenForm文の手前に置きます。
なお、この場合、先にT_検索結果というテーブルが作られるので、F_検索結果フォームのレコードソースをT_検索結果にして(元はT_マスタがレコードソースだったと思いますが)、
DoCmd.OpenForm "F_検索結果", acNormal
という風にしてもいいです(3番目以降の引数をなしにする)。
元のOpenFormでは、T_マスタを条件抽出した結果をフォームに表示していましたが、この場合は、T_検索結果をそのままフォームに表示します。(どちらも同じ)
では。
いつもいつもありがとうございます。
無事テーブル作成することができました。
贅沢ですが、できれば同じボタンひとつ押しただけで、
テーブル作成 > エクセルへエクスポート
なんていうことができればいいな、なんて思っていたりします。
エクスポートをボタンで制御することはできますか?
No.2
- 回答日時:
クエリ画面で抽出条件をパラメータで作成します。
その状態でテーブル作成クエリにすれば、
条件に合ったレコードだけでテーブルを作成できると思うのですが
この回答への補足
回答ありがとうございます。
実際の検索フォームを
----------------------------------------
検索方法は「OR」か「AND」で選べる。
・名前1・名前2・名前3・名前4・名前5(この1~5はすべてOR検索)
・データ年
・データ種類
・削除対象(全て/あり/なし のラジオボタン)
・挨拶状送付(全て/あり/なし のラジオボタン)
・喪中(全て/あり/なし のラジオボタン)
----------------------------------------
とします。
検索ボタンのコードは
----------------------------------------
Private Sub コマンド3_Click()
Dim SQL As String
Dim WhereCond As String
Dim condName As String
Dim condYear As String
Dim condSyubetsu As String
Dim congSakujo As String
Dim congAisatsujo As String
Dim congMotyuu As String
Dim tempOper As String '演算子
Dim strCount As Long '演算子の文字数
Dim tempCond As String
WhereCond = "" '変数の初期化。本当はいらないけど明示的に。
Select Case Me!fraOper.Value
Case 1 'AND検索
tempOper = " AND " '前後の半角スペースを忘れずに
strCount = 5
Case 2 'OR検索
tempOper = " OR " '前後の半角スペースを忘れずに
strCount = 4
End Select
tempCond = ""
'名前
If Me!名前.Value <> "" Then
condName = "(T_マスタ.氏名 like '*" & Me!名前.Value & "*')"
condName2 = "(T_マスタ.氏名 like '*" & Me!名前2.Value & "*')"
condName3 = "(T_マスタ.氏名 like '*" & Me!名前3.Value & "*')"
condName4 = "(T_マスタ.氏名 like '*" & Me!名前4.Value & "*')"
condname5 = "(T_マスタ.氏名 like '*" & Me!名前5.Value & "*')"
tempCond = tempCond & " OR (" & condName & " OR " & condName2 & " OR " & condName3 & " or " & condName4 & " or " & condname5 & ")"
End If
'名前2
If Me!名前2.Value <> "" Then
condName = "(T_マスタ.氏名 like '*" & Me!名前.Value & "*')"
condName2 = "(T_マスタ.氏名 like '*" & Me!名前2.Value & "*')"
condName3 = "(T_マスタ.氏名 like '*" & Me!名前3.Value & "*')"
condName4 = "(T_マスタ.氏名 like '*" & Me!名前4.Value & "*')"
condname5 = "(T_マスタ.氏名 like '*" & Me!名前5.Value & "*')"
tempCond = tempCond & " OR (" & condName & " OR " & condName2 & " OR " & condName3 & " or " & condName4 & " or " & condname5 & ")"
End If
'名前3
If Me!名前3.Value <> "" Then
condName = "(T_マスタ.氏名 like '*" & Me!名前.Value & "*')"
condName2 = "(T_マスタ.氏名 like '*" & Me!名前2.Value & "*')"
condName3 = "(T_マスタ.氏名 like '*" & Me!名前3.Value & "*')"
condName4 = "(T_マスタ.氏名 like '*" & Me!名前4.Value & "*')"
condname5 = "(T_マスタ.氏名 like '*" & Me!名前5.Value & "*')"
tempCond = tempCond & " OR (" & condName & " OR " & condName2 & " OR " & condName3 & " or " & condName4 & " or " & condname5 & ")"
End If
'名前4
If Me!名前4.Value <> "" Then
condName = "(T_マスタ.氏名 like '*" & Me!名前.Value & "*')"
condName2 = "(T_マスタ.氏名 like '*" & Me!名前2.Value & "*')"
condName3 = "(T_マスタ.氏名 like '*" & Me!名前3.Value & "*')"
condName4 = "(T_マスタ.氏名 like '*" & Me!名前4.Value & "*')"
condname5 = "(T_マスタ.氏名 like '*" & Me!名前5.Value & "*')"
tempCond = tempCond & " OR (" & condName & " OR " & condName2 & " OR " & condName3 & " or " & condName4 & " or " & condname5 & ")"
End If
'名前5
If Me!名前5.Value <> "" Then
condName = "(T_マスタ.氏名 like '*" & Me!名前.Value & "*')"
condName2 = "(T_マスタ.氏名 like '*" & Me!名前2.Value & "*')"
condName3 = "(T_マスタ.氏名 like '*" & Me!名前3.Value & "*')"
condName4 = "(T_マスタ.氏名 like '*" & Me!名前4.Value & "*')"
condname5 = "(T_マスタ.氏名 like '*" & Me!名前5.Value & "*')"
tempCond = tempCond & " OR (" & condName & " OR " & condName2 & " OR " & condName3 & " or " & condName4 & " or " & condname5 & ")"
End If
If tempCond <> "" Then
tempCond = Mid(tempCond, 5)
WhereCond = WhereCond & tempOper & "(" & tempCond & ")"
End If
'データ年
If Me!データ年.Value <> "" Then
condYear = "(T_マスタ.データ年 like '*" & Me!データ年.Value & "*')"
WhereCond = WhereCond & tempOper & condYear
End If
'データ種類
If Me!データ種類.Value <> "" Then
condSyubetsu = "(T_マスタ.データ種類 like '*" & Me!データ種類.Value & "*')"
WhereCond = WhereCond & tempOper & condSyubetsu
End If
'削除対象
Select Case Me!frame_削除対象.Value
Case 1 '全て
'何もしない
Case 2 'あり
condSakujo = "(T_マスタ.削除対象 = " & True & ")"
WhereCond = WhereCond & tempOper & condSakujo
Case 3 'なし
condSakujo = "(T_マスタ.削除対象 = " & False & ")"
WhereCond = WhereCond & tempOper & condSakujo
End Select
'挨拶状送付
Select Case Me!frame_挨拶状送付.Value
Case 1 '全て
'何もしない
Case 2 'あり
condAisatsujo = "(T_マスタ.挨拶状送付 = " & True & ")"
WhereCond = WhereCond & tempOper & condAisatsujo
Case 3 'なし
condAisatsujo = "(T_マスタ.挨拶状送付 = " & False & ")"
WhereCond = WhereCond & tempOper & condAisatsujo
End Select
'喪中
Select Case Me!frame_喪中.Value
Case 1 '全て
'何もしない
Case 2 'あり
condMotyuu = "(T_マスタ.喪中 = " & True & ")"
WhereCond = WhereCond & tempOper & condMotyuu
Case 3 'なし
condMotyuu = "(T_マスタ.喪中 = " & False & ")"
WhereCond = WhereCond & tempOper & condMotyuu
End Select
DoCmd.OpenForm "F_検索結果", acNormal, , WhereCond
End Sub
----------------------------------------
です。
そのままのテーブル作成(検索を行わない)のコードは
----------------------------------------
DoCmd.RunSQL "SELECT T_マスタ.氏名ID, T_マスタ.氏名,・・・・・ INTO T_検索結果" _
& " FROM T_マスタ"
----------------------------------------
とわかるのですが、検索フォームで検索をした結果でテーブルを作成したい場合はどのようにすればいいのでしょうか?
パラメータも考えたのですが、名前などが複数ある場合はきちんとした結果が
出なかったので。。。(これがなくなるのであれば、パラメータクエリで、
というのもできそうですが。)
宜しくお願いします。

No.1
- 回答日時:
そのコードがどんなものかはわからないのですが、テーブル作成クエリを使えばできるはずだと思います。
(クエリの画面でクエリの種類をテーブル作成に変えます)テーブル作成などの「選択クエリ」以外のクエリ(アクションクエリ)はACCESSのインストールの状態が完全ではないと使えないかもしれませんので、そこには注意をしてください。
テーブルができれば、エクスポートは簡単なはず。
回答ありがとうございます。
テーブル作成クエリを使うと、元のテーブルがそのまま
作成されてしまうのです。
検索した結果だけでテーブルを作成したい場合はどうしたらいいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブルやクエリのリ...
-
教えてください! アクセスのac...
-
ACCESSでアンケート調査→回答ごとの...
-
テーブルへのデータ追加の元と...
-
Access テーブルを検索し関連性...
-
アクセス 項目毎にデータを横...
-
アクセスのクエリ 抽出について
-
access インポート時、既にある...
-
デザインビューにてテーブルが...
-
Accessのクロス集計→テーブル作...
-
アクセスのクエリでSplit関数は...
-
差込印刷での全角表示について...
-
ファイルメーカーのCase関数で
-
2つのテーブルに共通するレコ...
-
アクセスで月単位の抽出
-
年度ごとの最大値
-
Excleピボットでデータのない部...
-
アクセスのクエリー作成
-
ACCESSでの文字数カウント
-
Accessの日付時刻型から日付、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのクエリでSplit関数は...
-
クロス集計クエリの結果をテー...
-
access テーブル作成クエリでテ...
-
accessでクエリの結果だけをリ...
-
アクセス 項目毎にデータを横...
-
Access「レコードが削除されま...
-
クエリのデータをテーブルに入...
-
更新不可能なクエリに対して更...
-
Access2010「クエリが複雑すぎ...
-
access インポート時、既にある...
-
アクセスで新しいレコードの追...
-
デザインビューにてテーブルが...
-
教えてください! アクセスのac...
-
ACCESSで行数指定(5万行目~8...
-
アクセス クロス集計クエリ→テ...
-
アクセス:クエリの結合とリレ...
-
Access テーブルを検索し関連性...
-
Access 各カラムの中に半角カ...
-
Accessでテーブルやクエリのリ...
-
ACCESSでテーブルの一部だけを...
おすすめ情報