No.3ベストアンサー
- 回答日時:
■テーブルの作成
新たにテーブル「T_検索文字」を作ります。フィールドは「検索文字」の1フィールドのみで
内容は、アルファベット26文字について調べるならば、
検索文字
--------
a
b
:(中略)
y
z
の26レコードです。
■選択クエリの作成
次のSQL文をクエリのSQLビューでコピペして実行してみてください。
SELECT 検索文字,
Sum(Len([フィールド名])-Len(Replace([フィールド名],[検索文字],""))) AS 数
FROM テーブル名,
T_検索文字
GROUP BY 検索文字
HAVING Sum(Len([フィールド名])-Len(Replace([フィールド名],[検索文字],"")))>0;
いかがでしょうか。
お返事有難うございます。
さっそく試して見ました。
なんとか数字が出てきました。
式1という構文が勝手に出てきたのですが、これでよいのですね?
SELECT "a" AS 式1, Sum(Len([InfoData])-Len(Replace([InfoData],"a",""))) AS 数
FROM Plan_dt, T_検索文字
GROUP BY "a"
HAVING (((Sum(Len([InfoData])-Len(Replace([InfoData],"a",""))))>0));
ところで、複数の文字の数を一つのSQL文で出すことは出来るのですか?
「and」で繋いでSQL文を作ってみたのですが、
『SQLステートメントの後に文字が見つかりませんでした』というエラーになりました。
SELECT "a" AS 式1, Sum(Len([InfoData])-Len(Replace([InfoData],"a",""))) AS 数
FROM Plan_dt, T_検索文字
GROUP BY "a"
HAVING (((Sum(Len([InfoData])-Len(Replace([InfoData],"a",""))))>0));
and
SELECT "b" AS 式2, Sum(Len([InfoData])-Len(Replace([InfoData],"b",""))) AS 数
FROM Plan_dt, T_検索文字
GROUP BY "b"
HAVING (((Sum(Len([InfoData])-Len(Replace([InfoData],"b",""))))>0));
基本的なことが分からなくて申し訳ございません。
ご教授よろしくお願いします。
No.4
- 回答日時:
No.3の続きです。
SELECT "a"
ではなく、
SELECT 検索文字
としてください。ここの
検索文字
というのは、テーブル「T_検索文字」に存在するフィールド名です。
No.2
- 回答日時:
> 今処理したい一つのフィールドには月単位分の文字列が入っており、
> (例えで出した「a~c」が7月だと31日分(31桁)あります)
> 月によって日数(桁数)が変わるわけですから、
> 毎月クエリを修正しなければいけないということになりますね?
> かなり辛いところです。
もう少し、詳細な仕様を提示していただければ、具体的なコード(VBA)を
回答することができるかもしれません。
テーブル構成
データ例
など。
お返事有難うございました。
VBAも勉強したいのですが、今回はなんとかSQL文で
出来ないものかと検討しております。
何かヒントがありましたらまたご教授ください。
No.1
- 回答日時:
ベタで処理が遅くてもいいなら、1文字ずつバラしてunionで結合してcount()
多分、こんな感じでよかったと思いますが、未テスト!!!
Unionクエリ…全文字をバラして羅列するクエリ…を作る
select mid(フィールド,1,1) from テーブル
union all
select mid(フィールド,2,1) from テーブル
union all
select mid(フィールド,3,1) …桁数分繰り返す
で、このクエリ結果を集計クエリでGroup化してCountをとると、とりあえずクエリだけで出せます。
でも、できるなら、VBAで組んだほうが処理はいいような気がします。
さっそくのお返事有難うございました。
ご回答して頂いた内容でいきますと、
今処理したい一つのフィールドには月単位分の文字列が入っており、
(例えで出した「a~c」が7月だと31日分(31桁)あります)
月によって日数(桁数)が変わるわけですから、
毎月クエリを修正しなければいけないということになりますね?
かなり辛いところです。
レコードは8000レコードほどのテーブルですので、
処理時間もかなりかかりそうですね。
残念ながらVBAを組むほどのスキルもありませんので、途方に暮れております。
何かいい方法はないものでしょうか…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Access(アクセス) お世話になります ACCESSを使用しています 下記のクエリデータ(1)があります 商品名 行数 A 1 2022/09/05 08:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスで追加した項目に全て...
-
Accessを開きなおすとテキスト...
-
Accessで、1つの項目に複数の...
-
テーブルでメモ型になっている...
-
テキストボックスにクエリ結果...
-
access フォームを開くと「パ...
-
Accessのテーブルのフィールド...
-
Access2013 レポートで一定行数...
-
Accessで、テーブルに入力した...
-
Access で 特定の文字の個数を...
-
SQLステートメントのFROM句・・・
-
accessvba 複数条件でFilterを...
-
ACCESSで2つフィールドの日付...
-
アクセスのクエリ 1文字以上を...
-
ACCESSからEXCELへのエクスポート
-
フォームで入力された文字をク...
-
Access:値が求めたい値の2倍...
-
クエリの一つのフィールドのIIF...
-
Accessのクエリでハイパーリン...
-
追加クエリでテーブル全体を指...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで、1つの項目に複数の...
-
アクセスで追加した項目に全て...
-
Accessのテーブルのフィールド...
-
テキストボックスにクエリ結果...
-
Accessを開きなおすとテキスト...
-
テーブルでメモ型になっている...
-
Access:値が求めたい値の2倍...
-
Accessで、テーブルに入力した...
-
Access で 特定の文字の個数を...
-
Accessのクエリでハイパーリン...
-
ACCESSで2つフィールドの日付...
-
アクセスのクエリ 1文字以上を...
-
追加クエリで特定フィールドの...
-
accessでの文字列の混ざった連...
-
途中で改行されたCSVをAccessに...
-
更新クエリをリンクデータベー...
-
Access2002の重複クエリで大文...
-
Accessの電話番号フィールド
-
accessvba 複数条件でFilterを...
-
access フォームを開くと「パ...
おすすめ情報