TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
PureBasic
Perl初心者スレ(マジレス回答)
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
多言語でforループを列挙していくスレ
ネットワークプログラミング雑談
構造化プログラミングはまだ必要ではないのか?
【Electron】ハイブリッドアプリ開発総合【Cordova】
OracleJDKからOpenJDKへ。OracleはJava世界に不要
おまいらのプログラムの勉強の仕方を教えろください
つまりRubyってPerlの後続じゃん?

Access VBA 質問スレ Part2


1 :2018/12/12 〜 最終レス :2020/06/13
Access の VBA に関する質問スレです

質問テンプレ(雛形)は用意しませんが、OSとAccessのバージョンぐらいは必ず書きましょう


前回のスレッド
Access VBA 質問スレ Part1
https://mevius.2ch.sc/test/read.cgi/tech/1328536426/

2 :
女性の体にアクセスするにはどうすればよいですか?

3 :
プロパティーシートから直接Functinをcallするときに=Function()と書きますね。
これをvbaで設定できますか?
モジュールプロパティーのCreateEvetnPorcからは当然ながらできません。
どのオブジェクトのメソッドならできますかね?それとも不可能でイベントプロシジャーでcall Functionと書くしか方法がないのでしょうか?

4 :
自己解決しました。

5 :
順位が1位から20位までのデータがあったとして、

SQLを使用して、下位3件のデータを上位から取得(18位、19位、20位の順)するにはどうすればよいですか?

6 :
select * from (select top 3 * from テーブル名 order by 順位 desc) order by 順位 asc

7 :
>>6
ありがとうございます。これです。これがやりたかったんです。本当にありがとうございます!

8 :
業務用mdbを眺めていたら,モジュールレベルでPublic宣言とGlobal宣言が混在している.
このPGはアホなのかな?

9 :
Excelからmdb更新するとかありなの?

10 :
テーブル定義いじるやつはマゾだがデータ更新なら普通だろ

11 :
そういえばGlobalって余り使わないけど
publicとどういう差が有るのかは知らないなぁ

12 :
会社のPCがようやく7から10に切り替わり、
ついでにofficeが2010から2016になった。

そしたら・・・・・・
Accessのシステムが壊滅状態(;_;)
一番シンプルなところで、DateTimePickerがない・・・。

Access2016で日付フィールドとリンクしてない状態で、カレンダー使うのどしたらいいの・・・
2010と互換性を維持したまま

13 :
もうAccessを卒業するんだ

14 :
参照設定弄ってもだめなの?

15 :
>>14
情シス「VBのランタイム入れません。よくわからないから。」

(;_;)

16 :
>>12
カレンダー用のOCXだかDLLだかを持ってきて入れれば動くはずけど
ライセンス的にどうだか知らない

>>14
そもそもそのコンポーネントが今のACCESSに無くなってるから
2016をクリーンインストールしてれば参照設定できない

2010とかランタイム版あったはずだから、2016入れた後からインストールできるなら
それ入れれば行ける気がする
試して報告してくれ

17 :
そもそもAccessって、サポートあるの?
あるとしたら、SA結んだら何回までオッケーただしおま環は知らんみたいな?

18 :
>>15
それじゃどうしようもないじゃん

19 :
Accessの謎の異常終了は、永久に治らないの??

20 :
microsoftはしかたなくaccessを続けているだけで
microsoftは多分本気でやる気はないよ
本気ならとっくに2G制限も越えているだろうしネットワーク処理機能搭載くらいしている
microsoftが本気ならファイルメーカーがやってる感じくらいの機能搭載や改良はしてる筈
office製品の一部だから止められないだけで
本格的な改修とかは無いと思っていた方が良い
絶対無いとは思わないけど
今ある範囲でやれる内容をこなす程度で期待とかはしないほうが良いと思う

21 :
そもそも元々MS製品じゃないしなあ。

22 :
そうなの?

23 :
元々別会社が作っていた物を会社ごと買収してaccessって名前にして出した?
みたいな経緯だったと思う
確かwikipediaとかに書いてあったと思う
だからなんつーか
microsoftも余り思い入れが無いというか本気で無いというか
そういう感じの所が有るのは仕方が無いのよ
寧ろここまで続いている方が驚き
近年他のアプリケーションの値段が上がっている中でaccessは値上げもたいしてしないし(はっきり確認したわけではないが)
vb6.0が終わったのに比べて
良くaccessはこんなに続くなぁとは思う
vb6.0とaccessvbaなんて殆ど同じなのになんでvb6.0止めたんだろうと思うくらい
64bit版は出すのに本格改修なんかはするつもりないみたいだし
いったい何処まで続くのかある意味解らなくなってきた
他のアプリケーションが大きく変わったり無くなっている中で
これだけ変わらず(細かい点を除けば)長く続くのはかなり珍しい気がする

24 :
止めたら影響大きいだろうな。電子カルテもあるし。

25 :
言語仕様がほとんど変わらないおかげで20年前のシステムが今も使えている
開発コストと保守コスト考えたらAccessは素晴らしいよ

26 :
ローカルでランダムアクセスできるAccessは気楽でいい

27 :
excel vbaとaccess vba
どっちの方が実用的ですか?

28 :
>>27
必要に合わせてどっちも実用的

29 :
T_商品というテーブルを用意し、そこには次の内容が入っており、
商品      材料1 材料2 材料3
卵かけご飯    卵   米
お好み焼き    小麦  卵   豚肉
ショートケーキ  卵   小麦  苺
アップルパイ   りんご 小麦  牛乳

フォームに、材料A、材料Bのテキストボックスを置き、
検索ボタンを押すと、材料AかつBを含む商品が検索されるというVBAの記述に苦慮しています。
単独の材料であれば、VBAにSQLを組み込み、
SELECT * FROM 商品テーブル WHERE 材料1 = ' & 材料A & ' OR 材料2 = ' & 材料A & ' OR 材料3 = ' & 材料A & ' ;
こんな感じでできるのですが、材料が2つ以上になるとどうすればよいか見当がつかなくなりました。
アドバイスいただけませんでしょうか?

30 :
>>29
1がAかB
かつ
2がAかB
かつ
3がAかB
じゃないかな…眠くて間違ってる気もする…
あと、候補がおおすぎないなら、テキストボックスはコンボかな…(フォーム起動遅くなるなど副作用もあったりするのでこの案は無視して可)
おやすみなさい…

31 :
>>30
間違ってます。zzz

32 :
>>29
悪いことは言わんから、まずテーブル設計見直せ

33 :
馬鹿の次の質問

材料4を追加した時にはどうすれぱよいでしょうか?

34 :
>>27
そもそもExcelでは応用効かない

35 :
>>15
Visual Studio ExpressでDLL作れ

36 :
>>29
そのテ―ブルはちょっと…
商品のテーブルと材料のテーブルで結合じゃね?

37 :
accessは大昔にやってて今は持ってすらいないけど

該当行をdynasetで取り出した後
該当fieldから値を取り出して
if分で有るか調べれば出来たりしないか?

38 :
いくらでも増やしていいぞ

SELECT * FROM 商品テーブル
WHERE (材料1 = ' & 材料A & ' OR 材料2 = ' & 材料A & ' OR 材料3 = ' & 材料A & ')
AND ("" = ' & 材料B & ' OR 材料1 = ' & 材料B & ' OR 材料2 = ' & 材料B & ' OR 材料3 = ' & 材料B & ')
AND ("" = ' & 材料C & ' OR 材料1 = ' & 材料C & ' OR 材料2 = ' & 材料C & ' OR 材料3 = ' & 材料C & ');

39 :
いやぁぁぁぁぁぁぁ

40 :
だから、材料フィールドを横に並べるのは作りが悪いだろ。
フィールド1個にして縦に並べるべきじゃね?

41 :
unionで繋げばいいんじゃね

42 :
設計の問題だろ。
できるできないの問題じゃない。

なんで使い勝手の悪いもんをわざわざ作らなきゃならんのよ。

43 :
取り敢えず動かすなら、
材料1〜4をカンマで連結した文字列の中に、AとB両方ある
と書けば人間にはわかりやすい

44 :
まぁリレーショナルデータベースだから設計を変えるべきだけど
access使うような所なんて零細なんだから
そんなリファクタリングだのテストファーストだのモダンだのオブジェクト指向だのも関係無いような人材しか居ないんだから
vbaベタベタというのでやるしかない
みたいな感じなんだろう
その人がそれしか出来ないならvbaベタベタしか方法が無かったりする
この人がそうなのかは知らないけど

45 :
普通の設計にしたとして
countが3以上の〜、とかやるのが正しいの?
なんか不安なんだが

46 :
なんでcountなんて話になってるの?
商品テ―ブルと材料テーブルで結合するなら、商品テーブルには材料IDのフィールドが1つしかないんだから、材料IDのフィールドに材料AのIDと材料BのIDを持つ商品を検索するだけだよ。

47 :
一つの材料IDフィールドに2つの材料IDをカンマ区切りで入れるのが正解なの?
リレーショナル全否定?

48 :
リレーショナルデータベースを前提にするならどんな設計が一番使い勝手がよいんだろうかね

49 :
>>46
商品テーブル、材料テーブル、商品の材料テーブルを作って、こんな感じで

SELECT [商品] FROM 商品の材料
WHERE 材料 IN (Form!材料A, Form!材料B, Form!材料C)
GROUP BY [商品]
HAVING Count([商品]) >= Form!条件数;

材料A,B,CそれぞれのサブクエリをJIONするよりは速い気がする

50 :
>>49
うん、基本的に同じ考えだ。
以下の書き込みをしようとしてたが、放置してた。

>>47
何を言ってるんだ?
俺はカンマ区切りなんて言ってないぞ。

リレーショナルが分かってるなら>>29みたいにゃならんだろうよ。
卵かけご飯の材料1の卵と材料2の米は、材料1を米、材料2を卵と取り替えちゃいかんのか?
そんなこと無いだろ。
こういう同じ種別の物を別フィールドにすると管理出来なくなるだろ。

商品         材料
卵かけご飯のID    卵のID
卵かけご飯のID    米のID
お好み焼きのID    小麦のID
お好み焼きのID    卵のID
お好み焼きのID    豚肉のID
ショートケーキのID  卵のID
ショ−トケーキのID  小麦のID
ショートケーキのID  苺のID
アップルパイのID   りんごのID
アップルパイのID   小麦のID
アップルパイのID   牛乳のID

こういう風にして商品マスタ、材料マスタ、商品作成の3テーブルにする。
しかし、商品、材料どっちのテーブルの場合もそうだが他に管理したい情報がないならそれぞれマスタテーブルやめてIDの所を商品名や材料名にしてテーブル減らしても良い。
その場合は最小1テ―ブルになる。
なお、>>46は商品マスタをやめて2テーブルにした場合だ。

51 :
仕様が解らないからアレだけど
そのhaving countだと同じ材料が複数行登録されていた場合に
フォームに設定した別々な材料で検索した時に検索しても且つ条件にならないんじゃないかな?
同じ材料を登録できないように作ってあれば問題無いと思うけど
その辺どうなんだろうか?
まぁ作りと要求次第だと思うけど
的外れだったらごめんよ
ちょっと気になったんで

複数列の場合に連結してから文字列検索で探すというのは
sqlが長く複雑になり難いかもしれないね

何にしても実現の仕方は色々有るね
その人の技量や置かれている状況次第だろうね

52 :
最初に不安だと書いているように私もCountは邪道だと思ってるんですよね
「なんでcountなんて話になってるんだ」と怒られる程度には

それで、いろいろな方法がある中で「王道」をご指導いただけないんでしょうか?

53 :
>>51
基本的に、テーブルには誤りのあるデータは登録しない
逆に言うと、読み出したデータに誤りがあるかもしれないなら、全ての読み出し処理の後に全項目の妥当性チェックが必要になる

54 :
製品テーブルと素材テーブルと連結用テーブルの三つつくる
あとIDいらんから消して

55 :
idいらないのではってこと時々あるよね。
性別項目なんて"男"、"女"って直接入れてエエやんて思う。

56 :
>>54
id使わないなら 1テーブルでええんとちゃう?

57 :
>>56
余りにも近視眼でした

58 :
>>55
性別はboolでいい

ただしオカマちゃんなどに対応するため
Bool 肉体の性別
Bool 精神の性別
Bool 改造後の性別
Bool 住民基本台帳の性別
Bool 一般公開する性別
Bool セキュリティで保護された性別
などのフィールドを用意するのがベスト

59 :
SLC、MLC、TLC、QLCだな

60 :
オカマでも、男専、バイ、女専と分けないとトイレで掘られるリスクが

61 :
Excel VBA質問スレが最後までいって終わったので、次スレ検索したらここが出てきた
Excel VBA質問スレの新スレはないのか?

62 :
Excel VBA質問スレでもAccessの話が話題に出るので、ここと統合してもいいんじゃね?
VBAメインの話だろ

63 :
>>29がダメな理由、データベースがわからない人にどう説明したら良いんだろ。
ウチの会社も、みんなこうやって作りたがるんだよな。

商品 1月売上 2月売上 3月売上 4月売上 ・・・

64 :
難しいだろうね
リレーショナルデータベースにおける正規化って
コンピューター的な都合でテーブルを分けてる
でも実際には依頼伝票と明細というものは
人間の感覚的には一体として扱う方が感覚的に自然だからそういう風になってしまう
何の為にリレーショナルで正規化をするのか?
というのをデータの不整合が起きないようにを集中化させる為である事を教えるしかないけど
コンピューターがどういう風に処理をすると
効率的だったり安全だったりするか
を理解しておかないと難しい
表計算の延長や通常の感覚のままだと無理だと思う
大げさに言うと
コンピューターサイエンスの知識が必要
って事になる思う
accessはリレーショナルな所を活用して効率化しているから結構難しい面が有る
どうしても無理なら

でも使うという手も有るw

65 :
>>54
横槍ど素人でごめん。
連結用テーブルってのは>>50みたいなのでおkってことですか?
最近ACCESS初めて同じようなことしようと思ってます。

66 :
>>65
そそ。
あそこに並んでる表を入れておくのが連結テーブル
あれがなぜ必要かはわかると思うので略
商品、材料テーブルの内容から、自ずと連結テーブルも必要になり、そういうテーブル構成になることは別に特殊なことではありません

67 :
こんなスレがあるぞ

VBAに関する質問はこちらへどうぞ
Excel、Access、Outlook分ける必要ないだろ

VBAなんでも質問スレ Part2 [転載禁止](c)2ch.sc
https://mevius.2ch.sc/test/read.cgi/tech/1432173164/

68 :
>>66
ありがとうございます。
実際は、製品のそれぞれの材料をどれくらい使ったかを管理する必要があるのですが、その場合、
製品テーブル
材料テーブル
製品と材料の連結テーブル
連結テーブルと使用量の入力用テーブルが必要になるイメージですかね?
VBAスレでしたね。テーブルの作り方はここではないのはわかってるのですが、何かこのあたりのテーブルやフォームの作成のヒントになる書籍とかあれば教えていただけませんか?

69 :
excelとaccessはアプリケーションとして随分違うから分けた方が良い
excelの方が進みが速いし
access相談系ってここ以外に案外質問スレが見当たらないし(自分が知らないだけで実際には有るかも知れないけど)

分量で分けるなら
excel
access,word,outlook,その他?
みたいに二つに分けた方が良い

excelは利用している人の数が段違いだろうし
上の質問みたいに
材料1,材料2,...
みたいにするのはaccessでは合い難いけど
excelでは割とそういう風に使うから
違いは大きい
それにexcelvbaの方は見てないけど
accessとexcel勢で何か悶着有ったみたいだし

基本は分けた方が良い

70 :
>>63
Excelに慣れて表を想像するから。
DBはリレーションを想像すべきで表を想像すべきじゃない。

>>64
リレーションに慣れてれば自然に正規化しようとするようになる。

71 :
>>68
まず、製品、材料、連結テーブルの中で使用量を格納できる(格納するのがふさわしいか)のはどのテーブルかを考える。
ふさわしいテーブルがなければ新テーブルを追加するが、使用量は連結テーブルに格納すればいいのではと理論建てて考えられるようになりましょう。

書籍は近所に大きめの書店があれば、自分の好みで選びましょう。図が多いとかカラフルなのが見やすいとか。
初級本は2、3回見ればあまり出番なくなると思いますが、どんなことができるのかとか効率よく知るのに有効です。
他は、逆引きとか、テクニック本とかがいろいろな処理を書く上で有効で、長く役立ってくれるでしょう。

72 :
>>63
データベースに限ったことではないが、最小限の入力(手間)で最大限の結果(伝票だけでなく売上集計や分析など)を得ることが目標。
平たく言えば、楽(効率アップ)しようと思わない人、そのために努力しようと思わない人には伝わらない。

オレは説得するのは諦めた。残業代増やしたい奴ばっかりだから

73 :
馬鹿には無理

これが真実

74 :
構造ならSQLとかDBのアンチパターン解説本
>>65
他にも連結用テーブルはプライマリをフィールド二つの複合にして
それぞれに元テーブルとの外部キーつくること

75 :
みんなこっちにいるよ
https://mevius.2ch.sc/test/read.cgi/tech/1432173164/

76 :
馬鹿でも仕事をしなきゃならない
そういう人は材料1,材料2,...でやれるなら
それでやってもらうしかない
頭いい奴だけで後は生活保護で構わない
とかで良いなら話は別だけど?
その辺を理解出来ないアホが多くて困る
正規化を理解しないでaccess使っている人間と種類的には同じ
自分がやれる事が一番と思って他を考えていない

77 :
32bitのAccess2016を使っています。
いままではinteger型で済むものはlong型にしてはいけない。メモリーの無駄遣いと思ってきました。
しかし、ベンチマークをとるとlong型の方が速いという主張を頻繁に見るようになりました。
数字は全部long型にした方がいいのでしょうかね?

78 :
>>77
昔々はそうだった
しかし、今はあり余るメモリをたらふく使って、高速にとか、プログラム書きやすくとかになってる。
(もちろん限度ってものはある)

昔は8bitや 16bit CPUだから、長い桁は時間かかった。今は 64bitなので、それ以下に収まれば充分高速。
(数億回ループするのは稀なので、あるなら都度ベンチ取ってロジックなど決めるといい)
SIMDにより多く詰め込めるとかもあるけど、VBAでは多分使われてないから気にしなくていい

わざわざ longに直す必要はない。これからは気にせず long使っていい

79 :
>>78
でも、longに直したくなりますよねw
標準モジュールは一括置換→保存で問題ありませんでしたが、
フォームでやってみたら、すぐにメモリー不足やら、フォーム破損が生じてしまいましたw

80 :
馬鹿に教えるとロクなことをしない例

81 :
実験用のコピーだよ。
楽しく実験するのがプログラミング上達の近道だと思うんだよね。

82 :
>>81
実験は大切。失敗もベンチ取るのも身になる。
実験ソースや結果も Accessのテーブルに分類して残しとくんだぞ
(オレは、ソースはモジュールに置いて、コメントに結果を書いてたりもする。もちろん他言語などはテーブルやプロジェクトにしてなど)
カンペ作ったときみたいに忘れないもんだが、将来の追試や数値が役に立つ(まれに)

83 :
>>81
後付けの言い訳乙
実験するよう連中はこんなところで質問なんかせんわ

84 :
>>83
Access界隈っこういう人が多い気がするなあ。
実験用コピーじゃなかったら真っ青になってるだろうなw

85 :
新人の頃は良く失敗した
数値フィールドをテキスト型で定義したり
データ、システム分離しなくてmdb破損させたり
手元の最新版壊して顧客PCまで最新版取りに戻ったり


86 :
>>85
オレも最初の頃壊れ(し)まくって、Accessなんて使いもんにならんやんと思った
dbだから、排他とかできるんだし、別々のフォーム触るなら、皆で開発できるやろと 1つの共有mdbで開発やってたw

規模によるけどシステム分離はわざわざしないな
分離するのは、sqlserverとかにするときだけだ

87 :
システム分離ってなんですか?
私もファイルが壊れてばかりで困ってます。

88 :
>>87
データベースでデ−タをどうこうする部分と、デ−タそのものを分離するということでしょ。

テーブルとクエリやフォーム、レポートを別ファイルにするという意味だと思う。

89 :
>>87
>>88
テーブルとそれ以外に分けることです。
それ以外の方にはリンクテーブルを置いておけば、同じように処理できます。
複数人で同時にテーブル読み書きするときは定番のやり方です。
(一人でしか使わないなら、わざわざ分ける必要はありません)
テーブルの方はファイルサーバに、その他は各ローカルに置いて使います。

もう少し細かく言うと、ワークテーブルはそれ以外の方に含みます。

90 :
>>89
横からすんみません。
一人でしか使わない場合もフォームのコントロールを弄くるのが好きな人は分離した方が良いと思います。
コマンドボタンの位置を変更しただけでフォームが消えてしまったことが何度もありますから、
一人で使用する場合もカスタマイズ好きならデーターは分離した方がいいと思います。

91 :
>>89
ネットワークが遅い場合は、定数テーブルもローカルにとか、その辺は臨機応変に。

92 :
>>90
最近は個人的な作成しかしなくなったので教えて下さい。
そのファイルはmdb、accdbどちらですか?
(拡張子が変わって壊れにくくなったかとか、何が変わってどう影響するか細かくは調べてないです)
そのdbファイルはローカル/ファイルサーバどちらに置いてましたか?

ここ数年はツール的な小さなものを、accdbをローカルで作成してますが、壊れた経験はないです。
1つのフォーム内で、各処理をフレームで分けてあり、フレーム内にはテキストボックスやボタンなどがあります。
フレーム単位で、あっちやこっちに頻繁に移動はしてます。
(それでも、過去の壊れてた経験から、数日に一回最適化とバックアップはとってます)

93 :
>>92
mdbです。dbファイルもmdbでローカルです。
フロントエンド?(と言っていいのかしら?)が巨大で、100MBくらいあります。
業務用ソフトで中身は使用されていないゴミ変数やゴミプロシジャーが大量にあります。空のプロシジャーもある上に、それをcallしている謎のプロシジャーもあります。
str型の変数なのに、タイプするのが面倒くさかったのか、var型で宣言されている変数がこれまた大量にあります。

94 :
>>93
ありがとうございます。
今でもmdbで作り込みが大きいのは壊れやすいんですね。
以前は、新mdbに全部インポートして、リフレッシュ(ゴミ除去)とかやってました。
(最適化より小さくなるから、何か効果はあるんじゃないかと思って。)

accdbに全部インポートして、参照設定修正という方法もあるけど、業務用だと完全に同じ動きするかと問われると保証できないので、難しいだろうし。
時間やお金出るなら(これからも使い続けるなら)、機能(部署)ごとに分割とか、accdbに徐々に移行(プロシージャ修正整理)とかやっていきたいところですね。

95 :
SQLserver使おうぜ

96 :
Accessはフロントエンドに使う
DBはMySQLでも良い

97 :
一度に大量で複雑な更新をすると落ちやすかった印象は有るかなぁ

98 :
>>96
帳票とかからむと、手軽だもんな

99 :
Accessは何たって帳票の作成が超簡単!
これがあるから離れなれない。
LibreOfficeやOpenOfficeにも帳票作成ツールはあるけど、
Accessほど使い易くはないのが、移行できずにいる大きな要因の一つなのは間違いない。

100 :
Office365でアプリアイコンが刷新されたがAccessは変わらない悲しみ

101 :
access2016使ってて2013のランタイム入れたらaccessが使えなくなってびびったわ
あわててシステムの復元して直ったけど

102 :
サブフォームのソースオブジェクトに、SQLを直接記入することはできないのでしょうか?
SQL文というものがそもそもオブジェクトでないから記入できないのでしょうか?

103 :
Formのオープン時にそのサブフォームのおソースを放り込めばできる
あとはメインフォーム上でサブフォームをいぢるイベント時に書くとか 例えばボタン押した時など
サブフォームはソース無し にしてるけど、自分は  そこへ放り込むやり方だと出来てる

104 :
>>102
ビュー定義してソースに設定したら?

105 :
id  部門 販売品目
1  A  りんご
2  A  バナナ
3  A  りんご
4  B  バナナ
5  B  ぶどう
6  B  ぶどう
というテーブルから、
部署と販売品目が同じレコード数
(Aかつりんご、Aかつバナナ、Bかつバナナ、Bかつぶどう の数)をカウントしたいのですがうまくいきません。

販売品目単独では
SELECT 販売品目,Count(id)
FROM テーブル名
GROUP BY 販売品目
のようにすれば思うようにいくのですが、複数条件になると思うようにいきません。
お知恵を貸していただけないでしょうか。

106 :
SELECT 部門, 販売品目, Count(ID) AS IDカウント
FROM テーブル1
GROUP BY 部門, 販売品目
HAVING (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう")) ;

107 :
もしくは
SELECT 部門, 販売品目, Count(ID) AS IDのカウント
FROM (
SELECT * FROM テーブル1 WHERE (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう"))
) GROUP BY 部門, 販売品目

108 :
//シンプルにこれでもできたけどwhereの位置とか括弧とか間違えてない?
select 部門, 販売品目, count(ID) as カウント
from テーブル1
where (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう"))
group by 部門, 販売品目

109 :
>>106
ありごとうごぞいます。
説明が不十分でした。
たしかにそのとうり記述すればできるのですが、部門や販売品目が増えていった場合に、全組合せを書き出さないでやる方法はないものかと考えております。

110 :
まだ説明不足かと
組み合わせを指定しないと絞り込みはできないし
クエリビルダーでちゃちゃっと作った最小形が>>106
絞り込み条件のテーブルを他に作ってリレーションとる方法もあるけど

111 :
>>105
要件定義すらまともに書けない馬鹿だからSQLの基本もわかっていないのかね?
どこにも部署なんてないのだが

112 :
Ruby なら、

require 'csv'

str = <<"EOT"
id 部門 販売品目
1 A りんご
2 A バナナ
3 A りんご
4 B バナナ
5 B ぶどう
6 B ぶどう
EOT

# 空白区切りで、ヘッダー有り
options = { :headers => true, :col_sep => " " }

# Hash.new で、初期値は、{ }
hash = CSV.parse( str, options ).each_with_object( Hash.new { |h,k| h[ k ] = { } } ) do | row, hash |
dep = row[ '部門' ] # department
item = row[ '販売品目' ]

if hash.dig( dep, item ) # Ruby 2.3 から
hash[ dep ][ item ] += 1
else
hash[ dep ][ item ] = 1
end
end

p hash
#=> {"A"=>{"りんご"=>2, "バナナ"=>1}, "B"=>{"バナナ"=>1, "ぶどう"=>2}}

113 :
>>111
いきってないで答えてやれよヴァカw

114 :
AccessならGurupByしたクエリを名前を付けて保存しておくのが正解
サブクエ遅いから

115 :
普通に部門販売品目でソートしてから
dynasetからvbaでカウントしたら駄目なの?
sql文を捏ね繰り回すよりその方が簡単な気がするけど?

116 :
質問者が一番馬鹿だが答える方も馬鹿ばっか

117 :
なのでこのカウントの質問、ここで終了!

118 :
どうしてもsql文でやりたいなら
他のsql系統のスレで聞いたほうが良いと思う
accessはsqlとvbaを組み合わせて使えるので
込み入り難いからやり易い面が有る
自分は割りとそういうやり方をしてしまう
けど他のリレーショナルデータベースはsqlを駆使しないといけない場面が多いだろうから
その手の方面の人の方がsql文に詳しい人が多いと思う
sql文の質問をしても構わないと自分は思うけど一応vbaスレなんで

119 :
難しく考え杉

選択クエリで
[部門]&[販売品目]のフィールド追加して
これをグループ化して集計すれば済むだろ?

120 :
他のリレーショナルデータベースはもっとましな言語で使うんだよ

121 :
""とclearcontentsの違いが明らかになったな

122 :
誤爆です

123 :
俺なら
SELECT [部門] & [果実] AS 式1, Count("HOGE") AS DUMMY
FROM テーブル1
GROUP BY [部門] & [果実];

124 :
普通の関数を使ったSQLがコンパイルエラーで通らなくなるのは、ずっとあるバグなの?
文字列中に含まれるスペースをなくした列同士を比較したいだけなのに

125 :
DBに上げる前のデータ加工はExcelとPowerBIについてくるPowerQueryで完結させる
DB自体は何でも良い
Accessはフロントエンド

こういう感じの運用が一番融通が利いて楽

126 :
>>124
通ってたのが通らなくなったなら参照設定確認が最初の一歩

127 :
optionala argumentについて教えてください。
https://tsware.jp/tips/tips_119.htm では 引数を Optional かつ バリアント型で宣言する と書いてありますが、
総本山の https://docs.microsoft.com/ja-jp/office/vba/language/concepts/getting-started/understanding-named-arguments-and-optional-arguments では
あっさりと string型 で宣言しています。どっちが正しいのでしょうか?

それと、プロパティーシートから 関数を呼び出すときに引数を省略できますか?エラーばっかり出てしまうので,不可能という気がしてきますが、実際はどうでしょうか?

128 :
ひとつ解決しました。
ここ https://bettersolutions.com/vba/macros/optional-arguments.htm に Remember that IsMissing will only work with the Variant datatype. と書いてあるので、
IsMissingを使いたい場合にvariant型である必要があるだと思います。

プロパティーシートからcallするときに省略可能かどうかはまだわかりませんね。

129 :
>>128
プロパティシートからでも省略できると思うよ
標準で使える関数でも省略できるから

130 :
IsNumeric 関数 VBA http://vba-auto.com/isnumeric_function_vba/
9CF

131 :
IsNumeric 関数 VBA http://vba-auto.com/isnumeric_function_vba/
9CF

132 :
スレチですまん。
俺はVBAをやってるが上司から言われました。(うちの部署、10名のうち、VBAを作れる人は二人だけ、、、)

AIが集計をしてくれるからEXCELは必要ない時代が来るねと言ってた。

反論出来る?

133 :
高度なAIにVBAとか集計なんかやらせちゃ駄目だ。他に何もできない俺たちがやらなきゃな

134 :
>>132の者です。
EXCELとACCESSを間違えた、、、。
すみません。

135 :
ここって禿げのおっさん来てるの?

136 :
>>132
〉AIが集計をしてくれるからACCESSは必要ない時代が来るねと言ってた。

来ませんけど、未来のことなので証明はできません
なので、その理由を何かをしないことに最大限反論に活用するのが最も有効です

私がプログラムを始めた数十年前から、「コンピュータが発達したらプログラマーはいらなくなる」と言われていましたが、今でも慢性的に不足してますし、更には小学校(?)からプログラムを教えると

ちなみに自社でai使うことになっても、おそらく数百万円かかって、大して使い物にならないでしょう
ITに詳しくない人は、知識もないのに夢見過ぎです

複数データを組み合わせてサクッと結果求めたり、そこそこのアプリ(特にレポート活用)作るなら、今でもACCESSは最良の選択の一つだと思ってます。2.0くらいから今までそこかしこで使いまくってます

137 :
エクセルに比べて、アクセスは過疎ってるなあ

138 :
あなたの禿にacc(ry

139 :
Access2010
印刷プレビューのリボンで「PDFまたはXPS」を押した際に出てくる
「PDFまたはXPS形式で発行」のダイアログを出すVBAコード教えてください。

140 :
とりあえず自分でマクロの記録でそれらの操作をなぞって
それでできたブツを思う存分手直しして
そこで発生した問題を質問した方がいいかもな

Access遣いはおばーちゃんやおじーちゃん多いから
「イチからかよ」って思われると、誰も面倒がって答えたがらない

141 :
Windows10、Office365のAccess16なんだけど、レポートプレビュー画面にボタンでもおいて、そこにイベントプロシジャーを設定したいんだけど、どうするのかな?
Access2003では簡単にできたんだけど、リボンがでてきたAccess2007以降出来なくなった気がするんだけど、どうなんだろう?

142 :
あなたのハゲにサクセスしたい

143 :
>>141
ちょっと2003でそれをやるコード上げてみ

144 :
>>143
確か、カスタムメニューだったか、カスタムボタンを設定して、それにイベントプロシジャーを設定していた気がする。
アクセスキーを設定してプレビューを印刷して、プレビュー画面を閉じて、特定のフォームを起動して、特定のボタンやらテキストボックスにフォーカスを与えるとかやっていた気がする。
あれは実に便利だった。
Windows7が動いているPCが物置にあった気がするから確かめてみる。

145 :
会社で役割柄ツールを作ることになりまして、アクセスに入門しました
xlsxをインポート、それと同時にテーブルを作成するVBAは組めたのですが、同時にレコードが勝手にソートされてしまい、元データとレコードの順番が異なってしまうという問題に直面しています。
この場合、テーブル作成と同時にオートナンバーを設定するようにしたいのですが、docmd〜acimportdelimでは定義付けができません。
何か方法はありますでしょうか
インポートするxlsxは毎回ファイル名が異なる想定なので、保存したインポートを使うのは極力避けたいです

146 :
>>145
元データに順序列付けとき

147 :
>>146
そうですよね…
最終手段としてはそれを考えています

148 :
ありがとうございます!

149 :
>>147
最終手段というか、RDBの行の順序に意味を持たしちゃ行けないと言う基本理念

150 :
あなたのハゲにサクセスしたい

151 :
おはようございました
新型コロナでACCESSどころでは無いですね

152 :
jetbeensのDataGripってアクセスでも使えるの?

153 :
>>152
jetbrainsでしょ

154 :
>>152
https://stackoverflow.com/questions/36820072/how-do-i-connect-a-ms-access-database-to-jetbrains-datagrip

155 :
全然ネットにもあがっていないけれど、Access2019の最新版で、DAOでレコードセットを作成して操作しようとすると
Accesが落ちるっていう現象を経験している人っていませんか?
32ビット版も64ビット版も同じ。

156 :
Excelが2013というオチではなくて?

157 :2020/06/13
そうでなくて、今まで動いていたのに最新のビルドになったら突然落ちるようになった。
前のビルと番号に戻したら動くのよ。
ADOでレコードセットを作成したときはどのビルド番号でも問題なし。

BrainFuck Part.3 <[+-.,]>
JavaScript情報交換所(プログラミング既習者専用)
Borland Developer Studio 2006 No.13
C++相談室 part136
【DI】Java Spring Frameworkを語るスレ 5.0
ふらっと C#,C♯,C#(初心者用) Part127
【上流社会】MSDNサブスクリプション総合【最先端】
Visual Studio 2008 Part 22
音声合成プログラムを作りる
C++使って何するの?
--------------------
【漫画】 このマンガがすごい!2018:オトコ編首位は「約束のネバーランド」 オンナ編は「マロニエ王国の七人の騎士」
■■GEO:ゲオの販売・買取の摩訶不思議217■■
デビルマンが本当に伝えたかったものはなんなのか [886034557]
ハイスコアガール日高小春ちゃんの魅力 なぜ僕達は負けヒロインに心惹かれるのか [326664406]
朝井リョウ
厚木周辺パート42
ケンタッキー・ウラータ・チッキーン
映画 「ターミネーター6」が製作開始。345はなかった事になり2の直接的な続編になる模様 [541495517]
ゾイダーとガノタが激しく馴れ合うスレ
【貧困】新生児が自宅で死亡 母親「金がなく病院にも連れて行けなかった」←これが日本
中野・劇団員女性殺害事件
ニュートンの林檎 〜初めてのベスト盤〜 Part.2
【PS5】SIE次世代機予想スレ 【携帯機&PSVR2】10代目退避スレ
安倍晋三「私が国家です」
2019夏の甲子園49代表校戦力ランク付け 17
最終幻想15ツイヲチスレ Part8
三菱商事元社長小金澤ひでのりR
東京の高校 Part43
イラン情勢 1
一血卍傑 119世代目
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼