ACCESSで顧客の情報を複数の条件で抽出したいと考えています。
チェックボックスで在職or退職
コンボボックスで会社名の指定
トグルボタンで(あ~わ)
なのですが、この条件を満たすデータを実行ボタンをクリックした時に抽出したいのですが、こんな複雑な条件はマクロでは出来ないのでしょうか?

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

A 回答 (2件)

御疲れ様です



複数の条件での抽出は、マクロを使用するよりはVBAにて一括抽出した方が簡単だと思われます。
マクロで出来ないかと言われれば、「う~ん」と答えるしかありません...
出来ないことではありませんが、メンテナンスが面倒になります。
    • good
    • 0

マクロを利用して作成するのであれば、一つ一つの抽出実行マクロを作成し、そのマクロ群を実行させるマクロを組めばできるのではないでしょうか。

    • good
    • 0

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

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

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

Q抽出方法、抽出部位を英語で・・

こんにちは。質問です。
海外でエッセンシャルオイルを買おうかと考案中
なんですが、そのHPには抽出方法と抽出部位が
明記さていません。そこでメールで問い合わせようと
思うのですが、抽出方法と抽出部位を英語でなんと
表現すればよいのか迷っています。
どなたかアドバイスありましたらよろしくお願いいたします。

Aベストアンサー

ここで言われているエッセンシャルオイルがどういうものかいまいち理解していないのですが、

一般に動植物からある成分を抽出するのであれば、

方法:What's the method of extraction/ how do you extract the oil ?

部位:What is the organ or part of the plant(creature) the oil is extracted from ?/ Where exactly was the oil taken from ?

などが使えると思います。2番目はそれぞれの口語表現です。

QACCESS コンボボックス 抽出 テキストボックスに表示

初めての質問を投稿させていただきます。l
ACCESSのVBAにて分からないことがあるので、
質問を投稿させていただきました。

以下のようなテーブルがあります。
名称:番号:管理番号:価格
cake|NO.1|C1|200
cake|NO.2|C2|200
chocolate|NO.1|C3|300
chocolate|NO.2|C4|300
chocolate|NO.3|C5|300
cookie|(空白)|C6|100
フォーム上に、コンボボックスが二つ設置されており
最初のコンボボックスでは、cake、chocolate、cookieを選択することができます。
また、二つ目のコンボボックスでは最初のコンボボックスで選択した名称に対する番号を選ぶことが出来ます。
------------------以下が疑問点です-------------------------
このフォームにはそれ以外にテキストボックスが設定されています。
名称と番号を設定した後に管理番号(重複なし)をテキストボックスに表示。
その後、管理番号を元に価格もテキストボックスに表示したいと考えておりますが、どのようなプログラムを組めばよろしいでしょうか?

初めての質問を投稿させていただきます。l
ACCESSのVBAにて分からないことがあるので、
質問を投稿させていただきました。

以下のようなテーブルがあります。
名称:番号:管理番号:価格
cake|NO.1|C1|200
cake|NO.2|C2|200
chocolate|NO.1|C3|300
chocolate|NO.2|C4|300
chocolate|NO.3|C5|300
cookie|(空白)|C6|100
フォーム上に、コンボボックスが二つ設置されており
最初のコンボボックスでは、cake、chocolate、cookieを選択することができます。
また、二つ目のコンボボックスでは最初のコン...続きを読む

Aベストアンサー

> なぜ、連結列列を2としたか、考えてみてください。

大事なところは2度言いましたよ。。。 は冗談ですが


> (ご質問から想定される私の中での考える動きは確認したつもりでおりますが、意図と違っていましたらごめんなさい)

何か日本語になっていないですね


(ご質問から、・・・私の中で想定した動きは確認したつもりでおりますが、意図と違っていましたらごめんなさい)

まだ日本語化になってないですかね。

Qエクセル(英語リスト)で大文字で始まるものを抽出したい

関数のことあまりわかっていない初心者です。
英単語(1単語以上)のリストから、大文字で始まるものだけを抽出する関数を教えてください。6万行以上もあり、困っています。以下のようなリストです。
<A列>
Cesfalko
setting
set-point
sedation
cutting off sedation
Setous
Cedlips
Senapanman
Cepadipin

↑このうち、
Cesfalko, Setous, Cedlips, Senapanman, Cepadipin がわかるようにB列に1とか*とか入れたいです。

#ご存じの方からすれば、こんなことぐらいわからないの?と思われるくらい、恥ずかしいレベルですみません。
#FIND、IFなどを使う?程度ぐらいしかわかっていません。

よろしくお願いします。

Aベストアンサー

別解です。
=IF(EXACT(A1,LOWER(A1)),0,1)

Qコンボボックスの抽出条件のLikeについて

フォーム内のコンボボックス処理について

現在ACCESS2002でDBを構築しております。
初心者です。

フォーム内でテキストボックスから値【a】をもらい、その【a】を抽出条件として抽出結果を
コンボボックスに表示したいと考えております。
※like関数を使用

Private Sub テキスト1_AfterUpdate()

DoCmd.Requery "コンボ1"

Me!テキスト1.Requery

End Sub

コンボボックスの値集合ソースの抽出条件で
((テーブル.カラム) like "'*" & Forms!フォーム!テキスト1 & "*'")
上記で指定したのですが、何も抽出されません。

イコールで下記を実行すると値は抽出されます。
((テーブル.カラム) = Forms!フォーム!テキスト1 )

LIKE関数の使い方が悪いのでしょうか。

お手数ですが、ご教授願います。

Aベストアンサー

【要旨】
値集合ソースやクエリのSQL文では、

 ((テーブル.カラム) like "'*" & Forms!フォーム!テキスト1 & "*'")

と、「'」は入れずに、

 ((テーブル.カラム) like "*" & Forms!フォーム!テキスト1 & "*")

としてください。


【詳細】

VBA上でSQL文を扱う場合や、DMaxなどの定義域集計関数の引数にする
場合は、確かに「*」と同時に「'」を使用しますが、クエリ(又は値集合ソースへの
直接入力)に使用する場合は「'」は使用せず「*」だけを指定します。


ちょっとわかりにくいかもしれませんが(汗)、完全一致の場合も、

 ((テーブル.カラム) = "'" & Forms!フォーム!テキスト1 & "'" )

ではなく

 ((テーブル.カラム) = Forms!フォーム!テキスト1 )

と、「'」を使用せずに指定しないと正しい結果が得られないのと同様と
考えて戴ければいいかと思います。


くどくなるのを承知で(汗)、さらに説明すると・・・

VBAでは、例えば「Me.氏名」に「鈴木」という値が入っていたとして、

 strSQL = "Select * From テーブル1 Where 氏名 Like *" & Me.氏名 & "*;"

という変数への記録を行った場合、実際のWhere句は

 氏名 Like *鈴木*

となって

 氏名 Like "*鈴木*"

とはなってくれません。 
(「*」がワイルドカード文字ではなく乗算の演算子として扱われてしまう、と)
これを防ぐため、VBA上でSQL文を扱う場合は、「'」を(又は「"」を重ねて)
使用する必要があります。

一方、クエリやSQL文を直接編集する場合は、

 氏名 Like "*鈴木*"

とか

 氏名 Like "*" & Forms!フォーム!テキスト1 & "*"

といったように、予め「*」を「"」で括って文字列(ワイルドカード文字)として
明示していることになります。

なので、逆にここに「'」を追加すると、その「'」まで「検索文字列」として
指定したことになってしまうので、意図した抽出結果が得られなくなる、
ということです。


・・・以上、長くなりましたが、参考まで。

なお、余談になりますが、この「Like」は「関数」ではなく「演算子」になります。

【要旨】
値集合ソースやクエリのSQL文では、

 ((テーブル.カラム) like "'*" & Forms!フォーム!テキスト1 & "*'")

と、「'」は入れずに、

 ((テーブル.カラム) like "*" & Forms!フォーム!テキスト1 & "*")

としてください。


【詳細】

VBA上でSQL文を扱う場合や、DMaxなどの定義域集計関数の引数にする
場合は、確かに「*」と同時に「'」を使用しますが、クエリ(又は値集合ソースへの
直接入力)に使用する場合は「'」は使用せず「*」だけを指定します。


ちょっとわかりにくいかもしれませんが(汗)、...続きを読む

Q英語音声・字幕あり にする方法

 最近PSPで洋画DVD鑑賞にはまっており
DVDshrinkというフリーソフトで抽出し、携帯動画変換君でMP4に変換して楽しんでます。
 いつもは「日本語音声・字幕なし」なので特別な設定はいらずに簡単に抽出できるのですが次からは「英語音声・字幕あり」にしたいです。
 ですが何度やっても英語音声だけしか抽出できません。
どなたか英語音声と字幕を同時に一つのデータに出力できる
フリーソフト又は方法をお知りの方教えてくださりませんか?

Aベストアンサー

DVDのリッピングは著作権法的にグレーであり、またリッピングの質問自体がここの禁止事項です。
削除依頼出しておきますね。

QACCESSでコンボボックスにSQLで抽出した値を表示したい

いつもお世話になっております。
ACCESS初心者です。
テキストボックスに入力したフリガナから、あいまい検索させ抽出した
ものをコンボボックスに表示させたいのですが、うまくいきません。。
(コンボボックスに何も表示されないです)
過去の質問やネット検索でも調べたのですがイマイチ分かりませんでした。
どなたか詳しい方、ご教示いただけると嬉しいです。
OS:windowXP
ACCESS:Ver2003

Private Sub テキストボックス名_Afterupdate()
Me.コンボボックス名.RowSource = "SELECT フィールド名 FROM テーブル名 WHERE フリガナ LIKE '" & Me!テキストボックス名 & "*';"
End Sub

どうぞよろしくお願いいたします。

Aベストアンサー

もしかして、txt検索値の内容を書き変えただけで、コンボボックスの表示内容の変化を期待していませんか?
(1)txt検索値の内容を変更しても、フォーカスを移動する等の行動を取るまで、AfterUpdateイベントは発生しません。
(2)Requeryしただけではコンボボックスのリストが変化するだけで、現在の表示内容は変化しません。

AfterUpdateイベントの発生はプログラムでどうにかなるモノではありません。
Changeイベントでは1文字ずつイベントが発生するので、現実的ではないでしょう。
Requery後にコンボボックスの内容を変更したい場合は以下のコードを試してみてください。

With Me.コンボボックス名
  .RowSource = "SELECT ~略
  .ReQuery
  If .ListCount > 0 Then
    .Value = .ItemData(0)
  Else
    .Value = Null
  End If
End With

Q超臨界抽出法

私は、海外で化粧品の買い付けと日本への輸出の仕事をしています。今回、日本の輸出先会社から、扱っている化粧品の成分の抽出法について問い合わせがありまして、「これは、超臨界抽出法か?」という旨の質問が来ました。こちらのメーカーに問い合わせしたいのですが、どのように英語に訳すかわかりません。また、「抽出」は、extractionでよろしいのでしょうか?あと、ついでにもうひとつ教えていただきたいのですが、「膿む」傷などが、膿む、と言いますよね?これは、普通英語ではなんといいますか?お教え下さい。宜しくお願いいたします。

Aベストアンサー

supercritical fluid extraction 超臨界抽出法

suppurate (傷が)膿む

ネット辞書・英辞郎に載っていました。英辞郎使ってみてください。

Qチェックボックスの条件抽出

こんにちわ
当方、ACCESS VBAを使っていてただいまとても困った状態に陥っています。

教科テーブルの中に1年というYes/No型のデータが入っているとします。

それにチェックが入っているものだけを抽出して開くというようにしたいのですが、うまくいきません。

以下の文のように記述してみましたが、うまくいきませんでした。

rs.Open "SELECT * FROM 教科テーブル WHERE 1年='" & True & "';", cn

エラーメッセージは
'1年='True" の構文エラー;演算子がありません
とでました。

どなたか助けてください。
お願いします。

Aベストアンサー

#1の方の回答では

>'1年='True" の構文エラー;演算子がありません

これの対処になっていません。本来なら「抽出条件でデータ型が一致しません」となるはずです。
ということでもう1ヶ所修正が必要な個所があります。


1年というフィールドですが、実はフィールド名の先頭を数字にするのはお勧めしません。SQL文中でフィールド名ではなく数値とみなされるからです。

このため、フィールド名であるということを明示的に示す必要がありますので、

rs.Open "SELECT * FROM 教科テーブル WHERE [1年] = True;", cn

とする必要があります。

Qあるフィールドの最大値を条件にデータを抽出する方法

Access97のVBAで開発を行っています。SQLでデータの抽出で、あるフィールドの最大値を条件に指定して抽出する方法を教えてください。最大値という曖昧な条件なため、悩んでいます。

(例)ある学校の成績テーブル(左から、学籍番号,組,氏名,性別,科目,点数)

0103,鈴木,男,国語,95
0103,鈴木,男,数学,40
0103,鈴木,男,英語,80
0104,高橋,男,国語,45
0104,高橋,男,数学,85
0104,高橋,男,英語,55

|(SQLで各人の最高点のデータのみ抽出したい)

(抽出結果)
0103,鈴木,男,国語,95
0104,高橋,男,数学,85

知っている方、是非教えてください。
お願いします。

Aベストアンサー

クエリーを使えば比較的楽に出来るでしょうがひとつのSQLでやるのは少々難しいように思います。 そこで、SQLを二回に分けて結果を出してはどうでしょうか。

最初に学籍番号と点数だけで「SELECT 学籍番号, Max(点数) AS 最高点 FROM 成績テーブル GROUP BY 学籍;」とし、個人別の最高点を抽出します。 そして、それをもとに「SELECT * FROM 成績テーブル WHERE 学籍番号 = 最高点のSQLの学籍番号 AND 点数 = 最高点のSQLの最高点;」とし、必要なほかの情報(氏名、性別、科目)を持ってきます。

【例】
Dim db As database
Dim rs1 As recordset
Dim rs2 As recordset

Set db=CurrentDb
Set rs1=db.OpenRecordset("SELECT 学籍番号, Max(点数) AS 最高点 FROM 成績テーブル GROUP BY 学籍;",dbOpenDynaset)

rs1.MoveFirst

Set rs2=db.OpenRecordset("SELECT * FROM 成績テーブル WHERE 学籍番号 = '" & rs1("学籍番号") & "' AND 点数 = " & rs1("最高点") & ";",dbOpenDynaset)

rs2.MoveFirst

後はrs2("学籍番号")、rs2("氏名")等の必要な情報を必要に応じて操作すれば
よろしいのではないでしょうか。

クエリーを使えば比較的楽に出来るでしょうがひとつのSQLでやるのは少々難しいように思います。 そこで、SQLを二回に分けて結果を出してはどうでしょうか。

最初に学籍番号と点数だけで「SELECT 学籍番号, Max(点数) AS 最高点 FROM 成績テーブル GROUP BY 学籍;」とし、個人別の最高点を抽出します。 そして、それをもとに「SELECT * FROM 成績テーブル WHERE 学籍番号 = 最高点のSQLの学籍番号 AND 点数 = 最高点のSQLの最高点;」とし、必要なほかの情報(氏名、性別、科目)を持ってきます。

【例】
D...続きを読む

Qテキストボックスとコンボボックス

こんにちは、Accessのフォームにテキストボックスとコンボボックスを設置して、以下のような事ができないかと悩んでおります。

フォーム内には、テキストボックスとコンボボックスが設置してありまして、コンボボックス内にDB(会社名テーブル)から取得した全ての会社名が入っています。
しかし、そのレコード数が300件近くあるため、コンボボックス内から探し出すのに手間が掛かります。

そこで、コンボボックスの隣にテキストボックスを設置し、テキストボックス更新後に会社名テーブルの検索を行い、条件に合った会社名だけをコンボボックス内に入れることを考えているのですが、上手く行きません。

動作のイメージとしては下記のようになります。
(1)初期表示時はテキストボックス内に何も入力されていないので、全レコードがコンボボックス内に表示される。
(2)テキストボックスに「有限」と入力して、テキストボックスからフォーカスを移動させると、コンボボックス内に「有限」が会社名に含まれているレコードのみが入っている。
(3)テキストボックスを空白に戻すと、コンボボックス内には全レコードが表示

以上、どなたかご教授よろしくお願いします。

こんにちは、Accessのフォームにテキストボックスとコンボボックスを設置して、以下のような事ができないかと悩んでおります。

フォーム内には、テキストボックスとコンボボックスが設置してありまして、コンボボックス内にDB(会社名テーブル)から取得した全ての会社名が入っています。
しかし、そのレコード数が300件近くあるため、コンボボックス内から探し出すのに手間が掛かります。

そこで、コンボボックスの隣にテキストボックスを設置し、テキストボックス更新後に会社名テーブルの検索を行い...続きを読む

Aベストアンサー

コンボボックスの「値集合ソース」の会社名の抽出条件に
Like "*" & [Forms]![フォーム名]![テキストボックス名] & "*"
コンボボックスの「フォーカス取得時」イベントのイベントプロシージャに
Me.コンボボックス名.Requery
マクロなら
 アクション:再クエリ
 コントロール名:コンボボックス名


人気Q&Aランキング

おすすめ情報