Access VBA 質問スレ Part2 (788レス)
上下前次1-新
65(2): 2019/03/16(土)17:31 ID:3KVWdS7r(1) AAS
>>54
横槍ど素人でごめん。
連結用テーブルってのは>>50みたいなのでおkってことですか?
最近ACCESS初めて同じようなことしようと思ってます。
66(1): 2019/03/16(土)19:49 ID:3keflQuI(1) AAS
>>65
そそ。
あそこに並んでる表を入れておくのが連結テーブル
あれがなぜ必要かはわかると思うので略
商品、材料テーブルの内容から、自ずと連結テーブルも必要になり、そういうテーブル構成になることは別に特殊なことではありません
67: 2019/03/17(日)08:42 ID:n1sOdbaQ(1) AAS
こんなスレがあるぞ
VBAに関する質問はこちらへどうぞ
Excel、Access、Outlook分ける必要ないだろ
VBAなんでも質問スレ Part2 [転載禁止](c)2ch.net
2chスレ:tech
68(1): 2019/03/17(日)10:57 ID:j70B1v+S(1) AAS
>>66
ありがとうございます。
実際は、製品のそれぞれの材料をどれくらい使ったかを管理する必要があるのですが、その場合、
製品テーブル
材料テーブル
製品と材料の連結テーブル
連結テーブルと使用量の入力用テーブルが必要になるイメージですかね?
省1
69: 2019/03/17(日)13:57 ID:2pkDyHvs(1) AAS
excelとaccessはアプリケーションとして随分違うから分けた方が良い
excelの方が進みが速いし
access相談系ってここ以外に案外質問スレが見当たらないし(自分が知らないだけで実際には有るかも知れないけど)
分量で分けるなら
excel
access,word,outlook,その他?
みたいに二つに分けた方が良い
省9
70: 2019/03/17(日)17:33 ID:5mJrF7aW(1) AAS
>>63
Excelに慣れて表を想像するから。
DBはリレーションを想像すべきで表を想像すべきじゃない。
>>64
リレーションに慣れてれば自然に正規化しようとするようになる。
71: 2019/03/17(日)23:33 ID:L17xYYyd(1/2) AAS
>>68
まず、製品、材料、連結テーブルの中で使用量を格納できる(格納するのがふさわしいか)のはどのテーブルかを考える。
ふさわしいテーブルがなければ新テーブルを追加するが、使用量は連結テーブルに格納すればいいのではと理論建てて考えられるようになりましょう。
書籍は近所に大きめの書店があれば、自分の好みで選びましょう。図が多いとかカラフルなのが見やすいとか。
初級本は2、3回見ればあまり出番なくなると思いますが、どんなことができるのかとか効率よく知るのに有効です。
他は、逆引きとか、テクニック本とかがいろいろな処理を書く上で有効で、長く役立ってくれるでしょう。
72: 2019/03/17(日)23:53 ID:L17xYYyd(2/2) AAS
>>63
データベースに限ったことではないが、最小限の入力(手間)で最大限の結果(伝票だけでなく売上集計や分析など)を得ることが目標。
平たく言えば、楽(効率アップ)しようと思わない人、そのために努力しようと思わない人には伝わらない。
オレは説得するのは諦めた。残業代増やしたい奴ばっかりだから
73: 2019/03/18(月)00:03 ID:01/djhoo(1) AAS
馬鹿には無理
これが真実
74: 2019/03/18(月)19:45 ID:WjETnlu5(1) AAS
構造ならSQLとかDBのアンチパターン解説本
>>65
他にも連結用テーブルはプライマリをフィールド二つの複合にして
それぞれに元テーブルとの外部キーつくること
75: 2019/03/19(火)06:30 ID:4N2t7FIS(1) AAS
みんなこっちにいるよ
2chスレ:tech
76: 2019/03/19(火)23:41 ID:PLWGdEFL(1) AAS
馬鹿でも仕事をしなきゃならない
そういう人は材料1,材料2,...でやれるなら
それでやってもらうしかない
頭いい奴だけで後は生活保護で構わない
とかで良いなら話は別だけど?
その辺を理解出来ないアホが多くて困る
正規化を理解しないでaccess使っている人間と種類的には同じ
省1
77(1): 2019/04/25(木)10:33 ID:I6sE8Jku(1/3) AAS
32bitのAccess2016を使っています。
いままではinteger型で済むものはlong型にしてはいけない。メモリーの無駄遣いと思ってきました。
しかし、ベンチマークをとるとlong型の方が速いという主張を頻繁に見るようになりました。
数字は全部long型にした方がいいのでしょうかね?
78(1): 2019/04/25(木)11:52 ID:vKKospK1(1) AAS
>>77
昔々はそうだった
しかし、今はあり余るメモリをたらふく使って、高速にとか、プログラム書きやすくとかになってる。
(もちろん限度ってものはある)
昔は8bitや 16bit CPUだから、長い桁は時間かかった。今は 64bitなので、それ以下に収まれば充分高速。
(数億回ループするのは稀なので、あるなら都度ベンチ取ってロジックなど決めるといい)
SIMDにより多く詰め込めるとかもあるけど、VBAでは多分使われてないから気にしなくていい
省1
79: 2019/04/25(木)15:22 ID:I6sE8Jku(2/3) AAS
>>78
でも、longに直したくなりますよねw
標準モジュールは一括置換→保存で問題ありませんでしたが、
フォームでやってみたら、すぐにメモリー不足やら、フォーム破損が生じてしまいましたw
80: 2019/04/25(木)17:43 ID:ImBWEqP9(1) AAS
馬鹿に教えるとロクなことをしない例
81(2): 2019/04/25(木)18:18 ID:I6sE8Jku(3/3) AAS
実験用のコピーだよ。
楽しく実験するのがプログラミング上達の近道だと思うんだよね。
82: 2019/04/25(木)20:40 ID:JpEf0ZAX(1) AAS
>>81
実験は大切。失敗もベンチ取るのも身になる。
実験ソースや結果も Accessのテーブルに分類して残しとくんだぞ
(オレは、ソースはモジュールに置いて、コメントに結果を書いてたりもする。もちろん他言語などはテーブルやプロジェクトにしてなど)
カンペ作ったときみたいに忘れないもんだが、将来の追試や数値が役に立つ(まれに)
83(1): 2019/04/25(木)22:25 ID:CJM7ooRn(1) AAS
>>81
後付けの言い訳乙
実験するよう連中はこんなところで質問なんかせんわ
84: 2019/04/26(金)05:09 ID:ebeJOjHo(1) AAS
>>83
Access界隈っこういう人が多い気がするなあ。
実験用コピーじゃなかったら真っ青になってるだろうなw
85(1): 2019/04/26(金)13:04 ID:azgsbPV3(1) AAS
新人の頃は良く失敗した
数値フィールドをテキスト型で定義したり
データ、システム分離しなくてmdb破損させたり
手元の最新版壊して顧客PCまで最新版取りに戻ったり
:
86: 2019/04/26(金)14:38 ID:xEyS3kHo(1) AAS
>>85
オレも最初の頃壊れ(し)まくって、Accessなんて使いもんにならんやんと思った
dbだから、排他とかできるんだし、別々のフォーム触るなら、皆で開発できるやろと 1つの共有mdbで開発やってたw
規模によるけどシステム分離はわざわざしないな
分離するのは、sqlserverとかにするときだけだ
87(2): 2019/04/28(日)22:30 ID:h9q8OTE0(1) AAS
システム分離ってなんですか?
私もファイルが壊れてばかりで困ってます。
88(1): 2019/04/29(月)11:11 ID:3KqibFAl(1) AAS
>>87
データベースでデ−タをどうこうする部分と、デ−タそのものを分離するということでしょ。
テーブルとクエリやフォーム、レポートを別ファイルにするという意味だと思う。
89(4): 2019/04/29(月)11:33 ID:lr8PSWgy(1/4) AAS
>>87
>>88
テーブルとそれ以外に分けることです。
それ以外の方にはリンクテーブルを置いておけば、同じように処理できます。
複数人で同時にテーブル読み書きするときは定番のやり方です。
(一人でしか使わないなら、わざわざ分ける必要はありません)
テーブルの方はファイルサーバに、その他は各ローカルに置いて使います。
省1
90(1): 2019/04/29(月)11:38 ID:d82tlvl6(1/2) AAS
>>89
横からすんみません。
一人でしか使わない場合もフォームのコントロールを弄くるのが好きな人は分離した方が良いと思います。
コマンドボタンの位置を変更しただけでフォームが消えてしまったことが何度もありますから、
一人で使用する場合もカスタマイズ好きならデーターは分離した方がいいと思います。
91: 89 2019/04/29(月)11:43 ID:lr8PSWgy(2/4) AAS
>>89
ネットワークが遅い場合は、定数テーブルもローカルにとか、その辺は臨機応変に。
92(1): 89 2019/04/29(月)12:16 ID:lr8PSWgy(3/4) AAS
>>90
最近は個人的な作成しかしなくなったので教えて下さい。
そのファイルはmdb、accdbどちらですか?
(拡張子が変わって壊れにくくなったかとか、何が変わってどう影響するか細かくは調べてないです)
そのdbファイルはローカル/ファイルサーバどちらに置いてましたか?
ここ数年はツール的な小さなものを、accdbをローカルで作成してますが、壊れた経験はないです。
1つのフォーム内で、各処理をフレームで分けてあり、フレーム内にはテキストボックスやボタンなどがあります。
省2
93(1): 2019/04/29(月)12:36 ID:d82tlvl6(2/2) AAS
>>92
mdbです。dbファイルもmdbでローカルです。
フロントエンド?(と言っていいのかしら?)が巨大で、100MBくらいあります。
業務用ソフトで中身は使用されていないゴミ変数やゴミプロシジャーが大量にあります。空のプロシジャーもある上に、それをcallしている謎のプロシジャーもあります。
str型の変数なのに、タイプするのが面倒くさかったのか、var型で宣言されている変数がこれまた大量にあります。
94: 89 2019/04/29(月)13:14 ID:lr8PSWgy(4/4) AAS
>>93
ありがとうございます。
今でもmdbで作り込みが大きいのは壊れやすいんですね。
以前は、新mdbに全部インポートして、リフレッシュ(ゴミ除去)とかやってました。
(最適化より小さくなるから、何か効果はあるんじゃないかと思って。)
accdbに全部インポートして、参照設定修正という方法もあるけど、業務用だと完全に同じ動きするかと問われると保証できないので、難しいだろうし。
時間やお金出るなら(これからも使い続けるなら)、機能(部署)ごとに分割とか、accdbに徐々に移行(プロシージャ修正整理)とかやっていきたいところですね。
95: 2019/04/29(月)13:47 ID:QxflDRVF(1) AAS
SQLserver使おうぜ
96(1): 2019/05/04(土)18:38 ID:ZGbBU4Ge(1) AAS
Accessはフロントエンドに使う
DBはMySQLでも良い
97: 2019/05/05(日)01:45 ID:PgstIp0W(1) AAS
一度に大量で複雑な更新をすると落ちやすかった印象は有るかなぁ
98: 2019/05/07(火)11:01 ID:S4maxKz5(1) AAS
>>96
帳票とかからむと、手軽だもんな
99: 2019/05/08(水)19:00 ID:PD4Nn61H(1) AAS
Accessは何たって帳票の作成が超簡単!
これがあるから離れなれない。
LibreOfficeやOpenOfficeにも帳票作成ツールはあるけど、
Accessほど使い易くはないのが、移行できずにいる大きな要因の一つなのは間違いない。
100: 2019/05/11(土)13:23 ID:J8lUk67b(1) AAS
Office365でアプリアイコンが刷新されたがAccessは変わらない悲しみ
101: 2019/06/03(月)01:57 ID:vn/O8vit(1) AAS
access2016使ってて2013のランタイム入れたらaccessが使えなくなってびびったわ
あわててシステムの復元して直ったけど
102(1): 2019/07/17(水)21:40 ID:/Hg4fKFx(1) AAS
サブフォームのソースオブジェクトに、SQLを直接記入することはできないのでしょうか?
SQL文というものがそもそもオブジェクトでないから記入できないのでしょうか?
103: 2019/07/17(水)22:16 ID:5Qt+TnNF(1) AAS
Formのオープン時にそのサブフォームのおソースを放り込めばできる
あとはメインフォーム上でサブフォームをいぢるイベント時に書くとか 例えばボタン押した時など
サブフォームはソース無し にしてるけど、自分は そこへ放り込むやり方だと出来てる
104: 2019/07/17(水)22:25 ID:eXUk1Aqq(1) AAS
>>102
ビュー定義してソースに設定したら?
105(1): 2019/09/28(土)01:30 ID:XSiAgIby(1/2) AAS
id 部門 販売品目
1 A りんご
2 A バナナ
3 A りんご
4 B バナナ
5 B ぶどう
6 B ぶどう
省9
106(2): 2019/09/28(土)02:03 ID:hdiBTyMe(1/4) AAS
SELECT 部門, 販売品目, Count(ID) AS IDカウント
FROM テーブル1
GROUP BY 部門, 販売品目
HAVING (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう")) ;
107: 2019/09/28(土)02:08 ID:hdiBTyMe(2/4) AAS
もしくは
SELECT 部門, 販売品目, Count(ID) AS IDのカウント
FROM (
SELECT * FROM テーブル1 WHERE (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう"))
省1
108: 2019/09/28(土)02:22 ID:hdiBTyMe(3/4) AAS
//シンプルにこれでもできたけどwhereの位置とか括弧とか間違えてない?
select 部門, 販売品目, count(ID) as カウント
from テーブル1
where (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう"))
省1
109: 2019/09/28(土)06:33 ID:XSiAgIby(2/2) AAS
>>106
ありごとうごぞいます。
説明が不十分でした。
たしかにそのとうり記述すればできるのですが、部門や販売品目が増えていった場合に、全組合せを書き出さないでやる方法はないものかと考えております。
110: 2019/09/28(土)09:36 ID:hdiBTyMe(4/4) AAS
まだ説明不足かと
組み合わせを指定しないと絞り込みはできないし
クエリビルダーでちゃちゃっと作った最小形が>>106
絞り込み条件のテーブルを他に作ってリレーションとる方法もあるけど
111(1): 2019/09/28(土)21:47 ID:w31BDneZ(1) AAS
>>105
要件定義すらまともに書けない馬鹿だからSQLの基本もわかっていないのかね?
どこにも部署なんてないのだが
112: 2019/09/28(土)23:50 ID:Bvcc+55+(1) AAS
Ruby なら、
require 'csv'
str = <<"EOT"
id 部門 販売品目
1 A りんご
2 A バナナ
3 A りんご
省18
113: 2019/09/29(日)07:32 ID:V4rAOO4u(1) AAS
>>111
いきってないで答えてやれよヴァカw
114: 2019/09/29(日)09:35 ID:l54OkWQk(1) AAS
AccessならGurupByしたクエリを名前を付けて保存しておくのが正解
サブクエ遅いから
115: 2019/09/29(日)19:47 ID:mdCYdpYZ(1) AAS
普通に部門販売品目でソートしてから
dynasetからvbaでカウントしたら駄目なの?
sql文を捏ね繰り回すよりその方が簡単な気がするけど?
116: 2019/09/30(月)00:02 ID:ELYMfL9+(1) AAS
質問者が一番馬鹿だが答える方も馬鹿ばっか
117: 2019/09/30(月)00:24 ID:K8zar7Eh(1) AAS
なのでこのカウントの質問、ここで終了!
118: 2019/09/30(月)10:47 ID:6yDcPDBq(1) AAS
どうしてもsql文でやりたいなら
他のsql系統のスレで聞いたほうが良いと思う
accessはsqlとvbaを組み合わせて使えるので
込み入り難いからやり易い面が有る
自分は割りとそういうやり方をしてしまう
けど他のリレーショナルデータベースはsqlを駆使しないといけない場面が多いだろうから
その手の方面の人の方がsql文に詳しい人が多いと思う
省1
119: 2019/09/30(月)23:29 ID:GbU6Rrgw(1) AAS
他のリレーショナルデータベースはもっとましな言語で使うんだよ
120: 2019/10/05(土)14:25 ID:pEFp3YWl(1/2) AAS
""とclearcontentsの違いが明らかになったな
121: 2019/10/05(土)14:25 ID:pEFp3YWl(2/2) AAS
誤爆です
122: 2019/10/22(火)14:54 ID:Si05vw2X(1) AAS
俺なら
SELECT [部門] & [果実] AS 式1, Count("HOGE") AS DUMMY
FROM テーブル1
GROUP BY [部門] & [果実];
123(1): 2019/10/30(水)06:50 ID:q0119UkA(1) AAS
普通の関数を使ったSQLがコンパイルエラーで通らなくなるのは、ずっとあるバグなの?
文字列中に含まれるスペースをなくした列同士を比較したいだけなのに
124: 2019/10/30(水)08:05 ID:QrHO4Al6(1) AAS
DBに上げる前のデータ加工はExcelとPowerBIについてくるPowerQueryで完結させる
DB自体は何でも良い
Accessはフロントエンド
こういう感じの運用が一番融通が利いて楽
125: 2019/10/31(木)14:53 ID:3aW6/Vt0(1) AAS
>>123
通ってたのが通らなくなったなら参照設定確認が最初の一歩
126: 2019/10/31(木)16:05 ID:IlVblaPX(1/2) AAS
optionala argumentについて教えてください。
外部リンク[htm]:tsware.jp では 引数を Optional かつ バリアント型で宣言する と書いてありますが、
総本山の 外部リンク:docs.microsoft.com では
あっさりと string型 で宣言しています。どっちが正しいのでしょうか?
それと、プロパティーシートから 関数を呼び出すときに引数を省略できますか?エラーばっかり出てしまうので,不可能という気がしてきますが、実際はどうでしょうか?
127(1): 2019/10/31(木)16:14 ID:IlVblaPX(2/2) AAS
ひとつ解決しました。
ここ 外部リンク[htm]:bettersolutions.com に Remember that IsMissing will only work with the Variant datatype. と書いてあるので、
IsMissingを使いたい場合にvariant型である必要があるだと思います。
プロパティーシートからcallするときに省略可能かどうかはまだわかりませんね。
128: 2019/10/31(木)23:30 ID:IK0T1jez(1) AAS
>>127
プロパティシートからでも省略できると思うよ
標準で使える関数でも省略できるから
129: 2019/11/06(水)06:37 ID:jiZZUv+M(1/2) AAS
IsNumeric 関数 VBA 外部リンク:vba-auto.com
9CF
130: 2019/11/06(水)06:37 ID:jiZZUv+M(2/2) AAS
IsNumeric 関数 VBA 外部リンク:vba-auto.com
9CF
131(2): 2019/11/12(火)08:08 ID:n8VUgOjj(1/2) AAS
スレチですまん。
俺はVBAをやってるが上司から言われました。(うちの部署、10名のうち、VBAを作れる人は二人だけ、、、)
AIが集計をしてくれるからEXCELは必要ない時代が来るねと言ってた。
反論出来る?
132: 2019/11/12(火)09:07 ID:umlGYBnb(1) AAS
高度なAIにVBAとか集計なんかやらせちゃ駄目だ。他に何もできない俺たちがやらなきゃな
133: 2019/11/12(火)10:13 ID:n8VUgOjj(2/2) AAS
>>131の者です。
EXCELとACCESSを間違えた、、、。
すみません。
134: 2019/11/12(火)18:47 ID:ZiPBwNA/(1) AAS
ここって禿げのおっさん来てるの?
135: 2019/11/12(火)21:13 ID:hnHZ9bm+(1) AAS
>>131
〉AIが集計をしてくれるからACCESSは必要ない時代が来るねと言ってた。
来ませんけど、未来のことなので証明はできません
なので、その理由を何かをしないことに最大限反論に活用するのが最も有効です
私がプログラムを始めた数十年前から、「コンピュータが発達したらプログラマーはいらなくなる」と言われていましたが、今でも慢性的に不足してますし、更には小学校(?)からプログラムを教えると
ちなみに自社でai使うことになっても、おそらく数百万円かかって、大して使い物にならないでしょう
ITに詳しくない人は、知識もないのに夢見過ぎです
省1
136: 2019/11/17(日)21:57 ID:qBLyum9y(1) AAS
エクセルに比べて、アクセスは過疎ってるなあ
137: 2019/11/18(月)09:09 ID:8BxAA3e8(1) AAS
あなたの禿にacc(ry
138: 2019/12/19(木)22:11 ID:lRu+t2VS(1) AAS
Access2010
印刷プレビューのリボンで「PDFまたはXPS」を押した際に出てくる
「PDFまたはXPS形式で発行」のダイアログを出すVBAコード教えてください。
139: 2019/12/20(金)21:12 ID:NX/gzbot(1) AAS
とりあえず自分でマクロの記録でそれらの操作をなぞって
それでできたブツを思う存分手直しして
そこで発生した問題を質問した方がいいかもな
Access遣いはおばーちゃんやおじーちゃん多いから
「イチからかよ」って思われると、誰も面倒がって答えたがらない
140(1): 2020/01/25(土)09:08 ID:Ib3xGLkp(1) AAS
Windows10、Office365のAccess16なんだけど、レポートプレビュー画面にボタンでもおいて、そこにイベントプロシジャーを設定したいんだけど、どうするのかな?
Access2003では簡単にできたんだけど、リボンがでてきたAccess2007以降出来なくなった気がするんだけど、どうなんだろう?
141: 2020/01/25(土)10:20 ID:lx4KYteI(1) AAS
あなたのハゲにサクセスしたい
142(1): 2020/01/25(土)23:41 ID:Tl89GTzc(1) AAS
>>140
ちょっと2003でそれをやるコード上げてみ
143: 2020/01/26(日)13:49 ID:63OckB6o(1) AAS
>>142
確か、カスタムメニューだったか、カスタムボタンを設定して、それにイベントプロシジャーを設定していた気がする。
アクセスキーを設定してプレビューを印刷して、プレビュー画面を閉じて、特定のフォームを起動して、特定のボタンやらテキストボックスにフォーカスを与えるとかやっていた気がする。
あれは実に便利だった。
Windows7が動いているPCが物置にあった気がするから確かめてみる。
144(3): 2020/02/06(木)19:57 ID:djhx8w46(1) AAS
会社で役割柄ツールを作ることになりまして、アクセスに入門しました
xlsxをインポート、それと同時にテーブルを作成するVBAは組めたのですが、同時にレコードが勝手にソートされてしまい、元データとレコードの順番が異なってしまうという問題に直面しています。
この場合、テーブル作成と同時にオートナンバーを設定するようにしたいのですが、docmd〜acimportdelimでは定義付けができません。
何か方法はありますでしょうか
インポートするxlsxは毎回ファイル名が異なる想定なので、保存したインポートを使うのは極力避けたいです
145(1): 2020/02/06(木)22:52 ID:BV2yIT+0(1) AAS
>>144
元データに順序列付けとき
上下前次1-新書関写板覧索設栞歴
あと 643 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.021s