Access VBA 質問スレ Part2

1デフォルトの名無しさん
垢版 |
2018/12/12(水) 22:14:39.18ID:GF6Qf3Td
Access の VBA に関する質問スレです

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


前回のスレッド
Access VBA 質問スレ Part1
https://mevius.5ch.net/test/read.cgi/tech/1328536426/
2021/06/04(金) 06:58:24.85ID:pJrSJSTA
5年ほど前に作った製品ラベルのレポートを修整しようとしたら、老眼は進んでるわ液晶の解像度は上がってるわ、マウスカーソルの移動量を増やしてるわで大変だった。デザインビューの拡大出来るようになると良いですね。
2021/06/05(土) 16:40:26.94ID:RpMlRy13
ファイルメーカーの体験版使ったらACCESSに戻れなくなってしまった
ACCESSになんかメリットある?
376デフォルトの名無しさん
垢版 |
2021/06/05(土) 18:22:16.60ID:HEfJq5i5
馬鹿がファイルメーカー、ファイルメーカーとしつこく繰り返しているから絶対に使わない
2021/06/05(土) 18:58:27.51ID:vqCzfq5H
と馬鹿が申しております
2021/06/05(土) 18:59:13.81ID:ZYY2LhyT
>>375
コストかな。
田舎の工場で低価格な電子部品作ってる。30台くらいのパソコンで使うからファイルメーカーなんてコストは現実的ではないんです。
2021/06/05(土) 21:31:57.93ID:3DV79FRa
ファイルメーカーとAccessは得意分野が全然違うのでは?
380デフォルトの名無しさん
垢版 |
2021/06/05(土) 21:53:37.74ID:mImo/W/A
ファイルメーカーの宣伝でしょ
2021/06/05(土) 22:47:17.80ID:RpMlRy13
>>380
ACCESSでうまくいかずもやもやするたびに体験版つかってみて
ライセンス料なんかが不安でACCESSにもどるってのを繰り返してる
ACCESSが現代的なGUIになってくれて
ある程度はコード書かなくてもできるよえになればいいんだが
2021/06/06(日) 02:59:11.72ID:g1lC8rmM
え!?ひとりでも最低
じゅじゅじゅじゅじゅうまんえーん!?
https://i.imgur.com/OGGBfwi.png
ちなみにキントーンもこの商法みたいだな

ACCESSはUIがクソなのと共有がほぼできない、ちょっとしたことでもコード書かなきゃならない、その代わりに激安ってことなんだろうな
逆にそこらを改善するのはこんくらい金とらなきゃできないことなのかもしれん
383デフォルトの名無しさん
垢版 |
2021/06/06(日) 04:17:17.40ID:I3Drh9AD
馬鹿

ACCESSは共有がほぼできない
384デフォルトの名無しさん
垢版 |
2021/06/06(日) 10:18:31.22ID:9mmqAG88
FileMake使いのやつって
Access使いを見付けると必ず攻撃してくるよね
なんで不況に熱心なのかな
385デフォルトの名無しさん
垢版 |
2021/06/06(日) 10:21:05.17ID:9mmqAG88
馬鹿

FileMakerはコード書かなくていい(キリっ)
2021/06/06(日) 11:26:09.24ID:tDAG+yA0
と馬鹿が申しております
2021/06/06(日) 14:07:30.75ID:g1lC8rmM
いくらなんでも高すぎる
あれって全社員にipadもたせてリアルタイムでデータ共有するような大企業向けだろ
とはいえほかにACCESSしか選択肢がなくてACCESSは手間がかかり過ぎるが
2021/06/06(日) 16:01:30.88ID:/p4HIOC8
ACCESSは実質開発が停止してるからな
Web公開手段を再度実装したらFileMakerなんて駆逐出来るのに
2021/06/07(月) 23:05:55.18ID:7Tyglgss
>>373
それ元がボケてるんやな
ディスプレイ買い換えるしかないな
うちは拡大してもクッキリやで
2021/06/08(火) 00:47:30.58ID:Cnc+U0Kq
>>389
んなことないだろEIZOのFLEX Scanだし
ぼやけるって言葉の認識だと思うが
ベクターとラスターの拡大みたいなこと
https://i.imgur.com/oT7FRjb.jpg

拡大鏡だと単純拡大だからガタガタのぼやぼや
スマホの拡大縮小だとおかしくならないよね?
ソフトに標準で拡大縮小が実装されているならそれと同じできれいに拡大できる
ACCESSはないから拡大鏡つかうことにかるから汚いしつかいにくい
2021/06/10(木) 00:40:17.87ID:BRYBvkaF
>>390
〉拡大鏡だと単純拡大だからガタガタのぼやぼや

単純拡大だからガタガタになるので正しい
しかしぼやぼやにはならない

頭(目?)悪そうだなこいつ
2021/06/10(木) 01:23:12.45ID:/1oHskcz
文字が
https://i.imgur.com/oQ1lyeU.jpg
こうなるのをボヤボヤといってるんだと思う

MSゴシック使ってるやつはわからないかもしれないが
アンチエイリアス入ったフォントで拡大鏡使うとボヤボヤになるよ
https://i.imgur.com/B1re0t1.png
2021/06/14(月) 20:33:26.59ID:bsW07B0Y
getobjectでVBSからmdbへ接続してACCESSのモジュールを書き換えているんだけど、プロシジャーをチマチマ書き換えるのが面倒になってきたので、
既存モジュールの全行を削除してからModule.AddFromFile メソッドで新モジュールを一括して書き換えた。
mdbを保存する段になって「ファイルの共有ロック数が制限を超えています」と怒られた。

たしか、コミットトランスするんだよなあ、と資料を読んでみたが、それが出来るオブジェクトが存在しない。
一体どうしたらいいのかな?
2021/06/15(火) 10:02:33.87ID:Bs75sj8Q
ACCESSを買えば良いと思います。
2021/06/15(火) 11:17:25.55ID:KpoHzIzW
>>394
Microsoft 365 for businessを使用してます。
ACCESSはしょっちゅう壊れるからVBSで出来ることはVBSでやりたいですね。
2021/06/15(火) 13:21:19.21ID:HnTVFPij
>>395
そんな面倒なことw
2.0使いはじめた頃は間違った使い方してたのもあって壊しまくったが、ここんとこ壊れたことなどないぞ
2021/06/15(火) 15:19:36.70ID:KpoHzIzW
>>396
フォームのコマンドボタンの位置をほんの少しずらしただけで壊れこともあるし、最適化で壊れたこともある。
最近もどっかの記事でそのような記述を見たような気がする。

VBSはコードを見るのも書くのもサクサクだからお気に入りだよ。重たいACCESSを開かなくていいのは気が楽だよ。
でも、関数がVBAと少し仕様が違うとか面倒なことがあるのが玉に瑕だなあ。
2021/06/15(火) 20:40:00.08ID:XJxpvmdE
>>393
mdbからaccdbにすると壊れ難くなる気がします。
2021/06/16(水) 09:49:56.68ID:ni17rAhE
>>398
面白そうですね。参照設定を変更するくらいで出来そうですね。だめなら宣言文にDAO.を加えれば出来そうな気がします。
今はほぼ全ての改造をVBS経由で行えそうだから、それで行き詰まったらやってみます。
400デフォルトの名無しさん
垢版 |
2021/06/16(水) 16:39:10.95ID:uJQ6HHCX
>>393
共有ロック数って言ってるんだから
VBSからmdbへ接続が何度も繰り返してるか間違ってるんじゃね
401デフォルトの名無しさん
垢版 |
2021/06/16(水) 18:15:04.80ID:5mM/xZpb
プロシージャーを書き換えるプロシージャーを書くのって面白い?
2021/06/16(水) 21:11:44.71ID:ni17rAhE
>>400
共有ロックの問題はMaxLocksPerFileを増やしたらあっさり解決しました。
>>401
手作業でプロシジャーを変更していたときより遙かに楽になりましたし。仕事が楽になる過程は面白いです。
なによりもAccessと違ってサクサク動くのがVBSの最大の魅力です。
2021/06/16(水) 21:18:57.41ID:ni17rAhE
一括でモジュールを書き換えるのすら面倒になったのでLoadFromTxtに切り替えた。
これならフォームやレポートも丸ごと移植可能だわ。
2021/06/22(火) 11:37:45.99ID:Ug3/ZHCp
オフィス365でデーターを保存したときにウインドウの上のバーの箇所のタイトルに
「ファイル名+保存しました・・」って表示になるけど、
これ出さないように出来ないのかな?

ウインドウのタイトルが変わるとRPAが誤作動をおこすので
いらない機能をつけるなよといつも思います。
2021/06/22(火) 11:40:11.76ID:Ug3/ZHCp
>>404
誤爆でした。ここAccessなんですね。。
2021/06/22(火) 19:29:04.84ID:jEG7fGSr
なんでVBA使わずRPAなの?
2021/06/22(火) 20:23:21.77ID:BN5S6vpx
そのVBAを操作する人間の操作を代行させるのがRPAなんやで
2021/06/23(水) 19:45:53.16ID:G1+Cnxf/
なんで公共の場で地元言葉なの?
409デフォルトの名無しさん
垢版 |
2021/07/24(土) 13:25:46.25ID:1ILHRw72
レポートを変数「i」回だけ複数印刷しようとして、
PrintCountやFormatCountを使ったのですが、
「i」とPrintCount・FormatCountが一致しません。

PrintCountやFormatCountって、
ページ変更・ヘッダー・フッターなどでも、カウントが増えますか?

アルゴリズムそのものが間違いでしょうか?
2021/07/24(土) 14:08:20.10ID:Q5wmuS+A
おまえごときがVBAやる事そのものが間違い
2021/07/24(土) 19:42:05.93ID:g6yRedEM
なな、南斗
2021/08/04(水) 20:55:05.72ID:+oxSmlyp
[タイプ]が勝手に[タイプ]になってしまう。
[ ]で囲んでるのに。なんぞこれ。
2021/08/05(木) 08:02:56.74ID:MUFJqoFE
あれ、今日は勝手に半角に戻らない。
再起動するだけで良かったのかも。
独り言スマンね。
2021/08/05(木) 14:37:35.48ID:hIo3G+nj
解決済みという事ですが
名称の勝手変換は[名前の自動修正]を有効にしていると起きます
初心者向けの親切機能ですが、オブジェクト名などを細かく定義している場合には逆に足枷になります
名称変更時に自動トレースしきれずバグを生み出したりします
ご参考までに
2021/08/05(木) 18:07:31.70ID:Xn5oJsvt
いや、再発しました。
名前の自動修正、調べてみます。
2021/08/07(土) 07:56:44.50ID:GRpq7tgL
Windows11+ACCESS365の環境で発生してます。
タイプ(半角)と入力しても行を移るとタイプ(全角)になっちゃう。[ ]でくくっても駄目。
Windows10+ACCESS365では[ ]でくくると勝手に全角にはならないので、Win11Betaのせいっぽいです。
アプリの修復試してみて、駄目ならWin11Betaのフィードバックに上げます。
2021/08/07(土) 20:17:05.58ID:51b7egKe
どっかに全角のタイプってオブジェクトがある(あった)んだろな

そういえばWIN10でNLSのバージョン変わって全角半角の判断がおかしくなる問題があったな
ちょっと試したWin10の詳細バージョン書いてくれ

Win11のNLSってどうなってるんだろ
2021/08/27(金) 14:57:39.16ID:2jUlNhAQ
すみません、見逃してた。
Windows10の21H1ですね。
NSLがなんの事かわかんないですが、確かに前にも経験したトラブルの様な気がします。
2021/09/04(土) 15:37:28.00ID:s2WpiZ/S
明後日スタンダード試験だけどやばい模擬問題正答5割だわ
2021/09/04(土) 16:34:10.88ID:JBLhGxRz
ん、まぁ、ガンガレ
421デフォルトの名無しさん
垢版 |
2021/09/05(日) 03:44:21.58ID:Ocn+wvkQ
外部からaccessの特定のレポートを開く方法ある?
2021/09/05(日) 14:14:02.27ID:ICYnYWWd
外部って?
普通にCOMで操作すれば良いんじゃねえのか
423デフォルトの名無しさん
垢版 |
2021/09/07(火) 12:53:43.40ID:3mZ93kfX
パススルークエリのパラメータをaccess外から設定する機能教えてください。
2021/09/07(火) 13:13:29.25ID:7P2mUzTw
access外って?
何がやりたいかわからん
425デフォルトの名無しさん
垢版 |
2021/09/07(火) 14:16:04.54ID:QthkAqNV
ADO
ADODB
DAO
426デフォルトの名無しさん
垢版 |
2021/09/08(水) 22:14:40.15ID:jpM3jR9r
>>425
データベースに
ドライバなしでvbaで接続する方法ってないの?
427デフォルトの名無しさん
垢版 |
2021/09/09(木) 01:34:00.79ID:4EZcQadY
>>426
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/open-statement
2021/10/09(土) 23:35:10.80ID:uMcy1fPR
VBAエキスパートって取ったほうがいいでしょうか
2021/10/10(日) 08:29:41.88ID:fy4lWk3l
資格マニアを見る世間の目は冷たい
430デフォルトの名無しさん
垢版 |
2021/11/02(火) 07:37:22.79ID:0Z1mhYfJ
>>428
資格より実践を積むべし
2021/11/29(月) 15:04:38.27ID:vB15GkdT
レコードが存在しない場合に INSERTを動作させようとしてます

FROMが無いと、演算子がありません、となるため
ダミーの FROM を入れましたが(Oracle でいうところの dual)
レコードが追加されません

INSERT INTO t_table(id, name)
SELECT 1, "name"
FROM dummy
WHERE NOT EXISTS(
SELECT * FROM t_table WHERE(id = 1)
);

Access の INSERT での FROM や WHEREに、何か制限などありますでしょうか?
2021/11/29(月) 15:15:06.43ID:MiFRCJa7
直接の返答じゃないけど、SQL一発書きじゃなきゃだめなの?
事前にレコード数チェックして分岐じゃだめなの?
2021/11/29(月) 15:17:50.75ID:vB15GkdT
UPDATE と組み合わせて、SQL一発を考えてます
無理であれば、おっしゃるように分岐かなと
2021/11/29(月) 16:01:33.58ID:MiFRCJa7
ちょっと気になったので手元で実験してみたけど、dummyテーブルが存在して空ではないときには
(多分)431の想定どおりの挙動をしていると思う
バッドノウハウ臭いので、おとなしく事前チェックして分岐かなぁ
まぁAccessのSQLって変だよね
435デフォルトの名無しさん
垢版 |
2021/11/29(月) 17:41:32.65ID:XYio4/pG
access はupdateいっぱつで初挿入もできたはず
しゅきーのヌルを上書きする感じで
2021/11/30(火) 05:36:52.18ID:KirC+CSy
>>435
さすがにそんなことはないと思うが、ちょっとサンプルコード書いてみてくれ
437デフォルトの名無しさん
垢版 |
2021/11/30(火) 09:01:45.87ID:qEKwfbTR
>>436
選択クエリは更新できる
UPDATE TableA RIGHT JOIN TableB ON TableA.ID = TableB.ID
SET TableA.ID = [TableB]![ID], TableA.Data1 = [TableB]![Data1], TableA.Data2 = [TableB]![Data2];
438デフォルトの名無しさん
垢版 |
2021/11/30(火) 10:50:50.28ID:d0QAjKSx
>>431
values (1, "name")
じゃ駄目なの
2021/11/30(火) 10:58:46.58ID:+NfPg838
>>438
単純にinsertするだけならそれでいいんだけど、existsを使って条件付けようとしてるのでvaluesは使えない(エラーになる)
2021/11/30(火) 12:38:13.11ID:nsxxcWz3
それ自分でDUALという名称でテーブルを作って1レコード入れておけば出来るよ。
OracleのDUALも実体はそんな感じだったと思う。
2021/11/30(火) 16:33:37.59ID:KirC+CSy
>>437
更新はできるけど、存在しない行を更新しようとしたとして
その行を新規追加することなんてないだろ...
と思ったけど、追加されるのか

ACCESS無茶苦茶しやがるな
リンクテーブルに対してでも追加しやがる

SQL ServerだってFromでJoinしてUPDATEできるけど、
さすがに行が追加されることなんてないぞ
エラーの原因が分からない?
2021/11/30(火) 16:35:34.50ID:KirC+CSy
あ、最後なんか変な行入った
2021/11/30(火) 17:23:09.43ID:aruulzL7
あくせく働くぜ
444デフォルトの名無しさん
垢版 |
2021/11/30(火) 18:49:33.51ID:VsTnDahT
>>441
Access的には「更新可能クエリ」はテーブルと同等の扱いなのだろう
2021/11/30(火) 22:05:19.66ID:KirC+CSy
>>444
Viewが実テーブルとほぼ同じ扱いってのは別に問題じゃない
UPDATE文でテーブルの行数が変わるのが無茶苦茶なんだよ
446デフォルトの名無しさん
垢版 |
2021/11/30(火) 22:10:51.28ID:VsTnDahT
SELECT * FROM TableA RIGHT JOIN TableB ON TableA.ID = TableB.ID

これの更新だから行数は変わっていない
2021/11/30(火) 23:40:10.71ID:KirC+CSy
UPDATE文で実テーブルの行数が、な
2021/12/01(水) 09:46:36.82ID:dv4Z+qI2
>>431
SQL一発では出来ないよ
残念だが
DOループで回す事になる
449431
垢版 |
2021/12/02(木) 11:57:32.43ID:nKskuO+T
ありがとうございます
分岐で分けることにしました
450440
垢版 |
2021/12/02(木) 22:29:47.92ID:vu0CN48k
もうちょっと俺を信用してもええんやないかと思ったが
出来たんならええか
2021/12/08(水) 11:00:44.75ID:8eCyKUYS
データベースに対し、レポートを外部データの取込で追加するのですが、
この操作をGUIでなくコマンドで行う事は出来ますでしょうか。
452デフォルトの名無しさん
垢版 |
2021/12/08(水) 11:36:19.36ID:XFpeOKs/
mdbファイルまるごと差し替えでok
2021/12/08(水) 14:57:00.86ID:8eCyKUYS
>>452
返信ありがとう
やっぱ基本はDBごと差し替えになるんですね・・・
最新を管理しないといけないということですか
2021/12/08(水) 16:58:22.13ID:sRvDCOgH
>>450
レコード入れずに試してみてました
あとで確認してみます
2021/12/08(水) 18:12:44.70ID:ixTDMdmo
>>451
access起動コマンドラインオプションに
/x マクロ名
で自動実行可能

向きが逆だけどオブジェクトのコピーでレポートをコピー出来る
2021/12/08(水) 20:30:00.04ID:FsTgnRus
>>451
DoCmd.TransferDatabase acImport
2021/12/13(月) 11:19:46.91ID:HhLRYuYl
>>440,450
ありがとうございます、確認しました
dummy テーブルにレコードを入れて動作しました

INSERT INTO t_table(id, name)
SELECT 1, "name"
FROM dummy
WHERE NOT EXISTS(
SELECT * FROM t_table WHERE(id = 1)
);
458デフォルトの名無しさん
垢版 |
2022/01/15(土) 00:52:56.35ID:ALzAiADU
VBAって、サポート切れてんの?

企業とかこれから、多数のツールどうすんだろうね。
2022/01/15(土) 07:46:29.84ID:8MS0rOI1
サポート気にするような部署でvbaを採用するだろうか?
2022/01/17(月) 00:16:00.31ID:oS3b1eNW
VBAって単独の製品じゃないんだが
そもそもVBAがサポート切れってどこの情報だ?
2022/01/17(月) 12:28:46.14ID:t8m0YBBL
OneDriveにコードをバックアップして直接開いたところ

http://imgur.com/qO7I0AB.jpg

こういった線が付きました
Office2016 Proなのですが設定等でVBエディターでも表示できますでしょうか
またお恥ずかしながらこの線の一般的な名称も教えて頂けませんでしょうか
2022/01/17(月) 17:44:28.15ID:hBkYcVxQ
>>461
何で開いたのかは知らんけど、AccessとかのVBAエディタには、そういった今どきの便利な機能は無いかと
一般名称かどうかはしらんけど、VSCodeとかの設定では Indent Guide でひっかかるんじゃないかな
2022/01/17(月) 20:02:01.14ID:r2vXEkpI
>>462
ありがとうございます
名称のほうぐぐってみまして、確かにVS関連の情報が多く出てきました
大変便利ゆえに残念です!
2022/01/31(月) 11:21:11.42ID:ZCY1so+a
Microsoft 365 Access Runtime ダウンロードリンクが動作してないのですが
ダウンロードできた方おられます??
2022/01/31(月) 11:29:43.23ID:Di33df7w
>>464
見てみたけど、ダメだねぇ
2022/02/22(火) 22:36:04.61ID:h8gQU92u
アクセス2010でVBA内でエクセルのブックを操作するためにブック選択ダイアログを開こうとしています.ブックが存在するフォルダーはc:\x\y内にあります.
それでChDirでGetOpenFilename実行時に開くフォルダーをc:\x\yにしたいのですが,規定のドキュメントフォルダーが開きます.
Debug.Print CurDirは"C:\x\y"を返しますので,システムが認識するカレントフォルダーが"C:\x\y"に変わっているのは確認済みです.GetOpenFilenameが開くフォルダーをGetOpenFilenameに変更できないことが問題です.

sub test

ChDir "C:\x\y"
Debug.Print CurDir
Set exApp = CreateObject("Excel.Application")
ChDir "C:\x\y"
Debug.Print CurDir
res = exApp.GetOpenFilename("Csv Files (*.csv), *.csv")

end sub

ところがエクセルのVBA内でtest2を実行するとフォルダーc:\x\yが開きます.

sub test2

ChDir "C:\x\y"
res=aplication.GetOpenFilename("Csv Files (*.csv), *.csv")

end sub

アクセスのVBAのから操作するとうまくいきません.解決策はないでしょうか?
2022/02/22(火) 22:38:16.30ID:h8gQU92u
間違えました。
GetOpenFilenameが開くフォルダーをGetOpenFilenameに→
GetOpenFilenameが開くフォルダーをc:\x\yに
2022/02/23(水) 09:19:56.78ID:yBLUqW/Q
https://hironimo.com/prog/excel/vba-excel-open/#:~:text=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E9%96%8B%E3%81%8F%E3%81%AB%E3%81%AF,%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E9%96%8B%E3%81%8D%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82

WorkBooks.Open
2022/02/23(水) 10:16:59.77ID:/GeE/zJY
>>468
GetOpenFilenameでダイアログが立ち上がったときのフォルダーをc:\x\yにしたいという意味です。
2022/02/23(水) 14:00:43.13ID:3ksW4w1X
FileDialogを使う
2022/02/23(水) 15:58:28.79ID:noR6ud0U
https://officevba.info/filedialog/ こっちスかね
メリットもデメリットも書いてあって親切
2022/02/23(水) 16:48:55.01ID:/GeE/zJY
>>470
ありがとうございました.
FileDialogだとカレントフォルダーで開いてくれました.
2022/02/23(水) 16:53:30.10ID:/GeE/zJY
>>472
ありがとうございます。この説明はとても親切ですね。よくわかりました
レスを投稿する