Access VBA質問箱 IV

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

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


471 / 500 ページ ←次へ | 前へ→

【3732】Re:あいまい条件を含んだレコード数のカウ...
回答  クロ  - 04/10/20(水) 7:47 -

引用なし
パスワード
   >ただ…リストボックスのほうは「空っぽ」になってしまうのです。???
これについてはどういう事なのでしょうか?SQLで抽出したものが
リストボックスの値集合ソースに反映されないということでしょうか?
その辺の事は書かれていないようなのですが....
※午前中は所用で離席してますので午後にのレスになります
・ツリー全体表示

【3731】Re:あいまい条件を含んだレコード数のカウ...
回答  Gin_II  - 04/10/20(水) 2:14 -

引用なし
パスワード
   >全てを「%」に変更しましたらカウントされました。
>ただ…リストボックスのほうは「空っぽ」になってしまうのです。???

ADO で、SQL文を使うときには、% を使います。
リストボックスの値集合ソースに SQL文を使う場合は、 * のままで
いいです。

使い分けが必要ですね。
・ツリー全体表示

【3730】Re:あいまい条件を含んだレコード数のカウ...
発言  こもれび  - 04/10/20(水) 1:08 -

引用なし
パスワード
   こもれびです、こんばんは

▼クロ さん:
>Like演算子の使い方が...変でないですか?
>Likeの前になして「=」があるのでしょうか?

ごめんなさい、タイプミスです。
アプリケーションのコード中に「=」はありません

>ADOの制限ではぬぅさんの言われるようにワイルドカードが「*」でなく
>「%」でないとLike演算子での抽出は行われません。

ご指摘ありがとうございます、ぬぅさん(見ていらっしゃるかな…)
失礼しました。

実は曖昧の条件が複数ありまして、一部のみを「*」から「%」に変更
しただけでは成り立たなかったようです。
全てを「%」に変更しましたらカウントされました。
ただ…リストボックスのほうは「空っぽ」になってしまうのです。???
・ツリー全体表示

【3729】Re:ACCESS97から2003へ移行する場合
回答  Gin_II  - 04/10/19(火) 21:10 -

引用なし
パスワード
   > そこで、移行したらどんなことがエラーになった、
> 何がダメだったなどの情報をお持ちの方がいらっしゃいましたら、
> 教えていただけないでしょうか?

最終的には、やってみないと分からない。です。
実際、千差万別のシステムで、変換してエラーになるパターンもすごいものが
あると思いますので。


> 「全角文字のプロシージャ名などを使用していると、エラーにならなくても
> 正しい結果が得られない可能性がある」と言う情報を見つけたのですが、
> これって本当なんでしょうか?

はじめて聞きました。
エラーになることもあり、ならないこともあるってのは知っていますが。

> いたる所に漢字を使っているので、この情報が本当だとかなり大幅な修正が
> 必要になってしまいます。。。
頑張って修正してください。
式ビルダとかを使った後、全角文字のプロシージャ名をクエリとかから使うと
確実にエラーになりますので。
・ツリー全体表示

【3728】Re:あいまい条件を含んだレコード数のカウ...
回答  クロ  - 04/10/19(火) 17:51 -

引用なし
パスワード
   Like演算子の使い方が...変でないですか?
Likeの前になして「=」があるのでしょうか?

ADOの制限ではぬぅさんの言われるようにワイルドカードが「*」でなく
「%」でないとLike演算子での抽出は行われません。

SQL = "SELECT * FROM テーブル1 WHERE [フィールド名] Like 'KOMOREBI%';"

の状態でちゃんとカウントされるはずですけど...
・ツリー全体表示

【3727】Re:あいまい条件を含んだレコード数のカウ...
お礼  こもれび  - 04/10/19(火) 17:12 -

引用なし
パスワード
   こもれびです

Gin_IIさんに教えていただきました、「DCount」を使用する方法
でアプリケーションのほうは解決できそうです。
お手数おかけしました。<m(__)m>

どうも問題は「ADOの制限」にあるのではないか?と考えておりますので
時間のあるときに追ってみます。
どうにも解せないので…
違いがわかりましたら目安箱に投稿することもかんがえております。
(このままで終わらせたら皆さんも気になると思いますので…)
・ツリー全体表示

【3726】Re:あいまい条件を含んだレコード数のカウ...
お礼  こもれび  - 04/10/19(火) 17:05 -

引用なし
パスワード
   こもれびです

回答ありがとうございます。<m(__)m>

>レコード数を出すだけなら、DCount 関数を使ってもいいと思います。
>
>Debug.Print DCount("[フィールド名]","[tbl名]","[フィールド名] Like 'KOMOREBI*'")

なるほど…
いぜんより関数の名前は見聞きしていましたが、使用したことは一度もありませんでした。
結果はOKです。得たい数字を得ることができました。
ありがとうございました。

ただ、なぜ0になるかという問題が残りました。
アプリケーションとしてはバージョンアップできることになりましたが
SQLとVBAの関係ということでは?が…
ADOの制限ということも考えられますので、追えるときに追ってみます。

ところで…
GinIIさん忘年会にはおいでになれますか?
石鹸箱のほうで谷さんが回答をお待ちになっています。(^^;
・ツリー全体表示

【3725】Re:あいまい条件を含んだレコード数のカウ...
発言  こもれび  - 04/10/19(火) 16:47 -

引用なし
パスワード
   こもれびです

回答ありがとうございます。

>SQL="SELECT * FROM [tbl名] WHERE [フィールド名] Like 'KOMOREBI%' ;"

「*」(アステリスク)を「%」(パーセント)に変更することですね。
試してみましたが結果は同じく0でした。
アステリスクでリストボックスに1レコード表示されていたのですが、
パーセントではリストボックスに表示されなくなりました。(T_T)

確かにVB Scriptでは「%」にしないと受け付けてくれないんですよね。
・ツリー全体表示

【3724】Re:あいまい条件を含んだレコード数のカウ...
回答  Gin_II  - 04/10/19(火) 16:37 -

引用なし
パスワード
   直接の回答ではありませんが (^^ゞ

>SQL="SELECT Count([フィールド名]) as CNT FROM [tbl名] HAVING [フィールド名]= Like 'KOMOREBI*';"

レコード数を出すだけなら、DCount 関数を使ってもいいと思います。

Debug.Print DCount("[フィールド名]","[tbl名]","[フィールド名] Like 'KOMOREBI*'")
・ツリー全体表示

【3723】Re:あいまい条件を含んだレコード数のカウ...
発言  ぬぅ  - 04/10/19(火) 15:52 -

引用なし
パスワード
   こもれび さん、こんにちは!

SQL="SELECT * FROM [tbl名] WHERE [フィールド名] Like 'KOMOREBI%' ;"

どういう結果になるか試していただけますか?
・ツリー全体表示

【3722】Re:クエリーでの並べ替え
発言  こもれび  - 04/10/19(火) 15:30 -

引用なし
パスワード
   こもれびです

もとのデータの一部と、結果として「どのような表示にしたいのか」
を教えていただけますか?
一度に38項目をソートする目的がどうしてもわかりませんので…
(このままですと なんとも回答しようがないです)
・ツリー全体表示

【3721】あいまい条件を含んだレコード数のカウン...
質問  こもれび  - 04/10/19(火) 15:23 -

引用なし
パスワード
   こもれびです

ご存知の方教えてください。


SQL文にて、WHERE句のなかで 「Like〜」を使用すると、このSQLを元に作製した
レコード数をVBAでカウント表示させようとすると0になってしまいます。

SQL文中にてCount関数を使用してもなぜか0となってしまいました。
同じSQL文をクエリーオブジェクトに貼り付けると得たいカウント数が表示されました。

1の時

SQL="SELECT 〜 FROM [tbl名] WHERE [フィールド名]= Like 'KOMOREBI*';"

Set cnn = currentproject.connection

rs.open SQL,cnn,adOpenKeyset,adLockOptimistic
Debug.print rs.Recordcount

結果は0 (ところが、このSQLを元にしたリストボックスはデータが表示されている)

2の時

SQL="SELECT Count([フィールド名]) as CNT FROM [tbl名] HAVING [フィールド名]= Like 'KOMOREBI*';"

Set cnn = currentproject.connection

rs.open SQL,cnn,adOpenKeyset,adLockOptimistic
Debug.print rs!CNT

結果はこちらも0

なぜにこのような結果になってしまうのでしょうか??

 
・ツリー全体表示

【3720】Re:数万件のコンボボックスにおいて・・・
回答  hatena  - 04/10/17(日) 16:40 -

引用なし
パスワード
   >勿論そうですね、実際私自身もコンボボックスをこのような使い方をしたことが
>ありません
>が
>一応仕様なので・・・こういう風にしてくれと・・・
>最悪どうしようもなければ
>全く違う方法をとるしかありませんが・・・

>追加は行いません
>結局これらのコンボの役目は
>間違いであろうとも
>IDを検索するためのものです
>ただ、IDを選択された際にも名前にはそのIDの名前が出るようにし、
>逆に名前を選択された際にはその名前のIDが出るようにしたいのです
>
>この状態が良いということですので…

クライアントの仕様をまるまる飲むのではなく、
希望を活かしつつもう少しましな仕様を提案するというのも
ひとつのやり方だとは思いますが、どうでしょうかね。

私が以前作ったことのある例ですと、コンボボックスの変更時イベントで、
価集合ソースを書き換えて、該当するデータを抽出する仕様というのにしたことが
あります。

Private Sub cb1_Change()
  Me.cb1.RowSource = "SELECT 顧客名 FROM A_顧客マスター WHERE 顧客名 Like '" _
    & Me.cb1.Text & "*';"
  Me.cb1.Dropdown
End Sub

これを応用して、65536件を越える時は、TOP句で先頭から適当な件数のみ表示
させるようにするなどすれば、なんとかなるかも。

実際、実用に耐える速度になるかどうか不明ですが。
・ツリー全体表示

【3719】Re:クエリーでの並べ替え
質問  miya  - 04/10/17(日) 16:34 -

引用なし
パスワード
   ▼こもれび さん:
>こもれびです
>
>>クエリーで並べ替えは いくつの項目(フィールド)まで
>>OKなのでしょうか?
>
>幾つの項目を並べ替えを行いたいのでしょうか?
>
>>左から順番に並べ替えが実行されずに悩んでおります。
>
>ということは、VBAではなくクエリーオブジェクトを
>QBEグリッドでデザインしたものの実行を試みたけれども
>うまくいかないということですか?
>
>並べ替えを行いたい項目数やSQL文をしめしてくださると
>何かわかるかもしれませんが、記述できますか?
並べ替えを行いた項目数は 38項目

グループ化にしたかったせいですかね?
 ↓
県名 合計 生年月日 18B・・・・1B 18K・・・・1K
・ツリー全体表示

【3718】Re:クエリーでの並べ替え
発言  こもれび  - 04/10/16(土) 12:46 -

引用なし
パスワード
   こもれびです

>クエリーで並べ替えは いくつの項目(フィールド)まで
>OKなのでしょうか?

幾つの項目を並べ替えを行いたいのでしょうか?

>左から順番に並べ替えが実行されずに悩んでおります。

ということは、VBAではなくクエリーオブジェクトを
QBEグリッドでデザインしたものの実行を試みたけれども
うまくいかないということですか?

並べ替えを行いたい項目数やSQL文をしめしてくださると
何かわかるかもしれませんが、記述できますか?
・ツリー全体表示

【3717】クエリーでの並べ替え
質問  miya  - 04/10/16(土) 12:21 -

引用なし
パスワード
   何度も質問ばかりで申し訳ありません。
ACCESS2002を使用しています。
クエリーで並べ替えは いくつの項目(フィールド)まで
OKなのでしょうか?
左から順番に並べ替えが実行されずに悩んでおります。
出来ましたら回答をお願いいたします。
・ツリー全体表示

【3716】条件付書式出来ました。
お礼  miya  - 04/10/15(金) 13:40 -

引用なし
パスワード
   ▼miya さん:
▼Gin_II さん:
回答ありがとうございました。
         
[フィールド1]>=1 AND [フィールド1]<=4
         ↑
出来てました。すみません。
自分の値の指定が悪かっただけでした。
本当に申し訳ありません。
ありがとうございました。
       
・ツリー全体表示

【3715】Re:条件付書式について
質問  miya  - 04/10/15(金) 13:28 -

引用なし
パスワード
   ▼Gin_II さん:
回答ありがとうございます。
[フィールド1]>=1 AND [フィールド1]<=4
       ↑
条件は式で宜しいのですよね?
フィールドの値なのでしょうか?
式で → [フィールド1]>=1 AND [フィールド1]<=4
入力してみたのですがダメでした。

>ひとつのコントロールに対して、3つまでの条件というのは仕様なので、
>増やすことはできません。
増やすことは出来ないのですか・・・

>>1.フィールドに 1・2・3・4のどれかの値が
>>入力されたら文字の色を”赤”
>>どれにも満たしていない時は規定の色のように
>>各フィールド、各値にによって変更したいのですが
>
>この内容ならば、大丈夫だと思いますけど。
>
>[フィールド1]>=1 AND [フィールド1]<=4
>のように条件を設定すれば。
・ツリー全体表示

【3714】Re:条件付書式について
回答  Gin_II  - 04/10/15(金) 11:30 -

引用なし
パスワード
   ひとつのコントロールに対して、3つまでの条件というのは仕様なので、
増やすことはできません。

>1.フィールドに 1・2・3・4のどれかの値が
>入力されたら文字の色を”赤”
>どれにも満たしていない時は規定の色のように
>各フィールド、各値にによって変更したいのですが

この内容ならば、大丈夫だと思いますけど。

[フィールド1]>=1 AND [フィールド1]<=4
のように条件を設定すれば。
・ツリー全体表示

【3713】条件付書式について
質問  miya  - 04/10/15(金) 11:01 -

引用なし
パスワード
   お世話になってます。
ACCESS2002使用です。
レポートで条件付書式を設定したいのですが
条件付書式設定では規定の書式を省いて
条件を4種類に増やしたいのですが
可能でしょうか?

例)
  1.  2.  3.  4.  5.  6.
  ↓  ↓  ↓  ↓  ↓  ↓
 1〜4 2〜5 3〜6 4〜7 5〜8 6〜9

1.フィールドに 1・2・3・4のどれかの値が
入力されたら文字の色を”赤”
どれにも満たしていない時は規定の色のように
各フィールド、各値にによって変更したいのですが

条件付書式設定の条件を増やす事は無理でしょうか?
回答、頂けたら宜しくお願いいたします。
・ツリー全体表示

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