1 名前:デフォルトの名無しさん [2018/12/12(水) 22:14:39.18 ID:GF6Qf3Td.net] Access の VBA に関する質問スレです 質問テンプレ(雛形)は用意しませんが、OSとAccessのバージョンぐらいは必ず書きましょう 前回のスレッド Access VBA 質問スレ Part1 https://mevius.5ch.net/test/read.cgi/tech/1328536426/
477 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 11:00:59.24 ID:JmI4xSUc.net] 初歩的な質問でお恥ずかしいのですが教えて下さい 面倒な計算や処理をして値を返す関数Aがあった場合 その戻り値を判定したい場合 If A = 1 or A = 2 then と記述するとaccessは 2回処理することになるのでしょうか それでしたら仮に変数(V)を用意して、一旦 V = A のように格納してから If V = 1 or V = 2 then と記述したほうが処理的には一回で済むという解釈になりますでしょうか すみませんがご教示頂けたらと思います
478 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 11:49:10.60 ID:JmI4xSUc.net] すみません、試してわかりました。 後者は一回で済みました。 質問することでその後すぐ簡単な確認方法を思いつくことがよくあります お恥ずかしい。スレ汚し失礼しました;
479 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 12:38:27.12 ID:jOzz1fM6.net] どんまい 気付きや学びに成りゃ無駄じゃ無い
480 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 12:41:50.52 ID:frLBMESq.net] ちょっと違う話だけど、VBAにもOrElseやAndAlsoが欲しいなと思うときはある
481 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 15:10:37.27 ID:R+n9Kzax.net] SQLの勉強をさいきんはじめました 動的SQLによる数独の超高速解法 というのを読みました 動的にSQLを生成するため ・一つはJDBCを使う方法 ・もう一つはストアド・プロシージャを用いた方法 云々って書いてあります これらって、アクセスのSQLでもできそうなものでしょうか? (過去に話題として出てたらごめんなさい) できそうならやってみようかと 茨の道ならあきらめます
482 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 16:34:17.90 ID:TgGQVPNx.net] 2つとも分からんけど、VBAが使える環境なら動的SQLは可能なはず
483 名前:479 mailto:sage [2022/03/06(日) 17:10:27.06 ID:R+n9Kzax.net] SQLとは、使用人から経営者になることだ 今まで自分で作業してたのをしなくてよくなる 使用人に、「こういうのを出してくれ」と 言うだけでよい 数独についてであれば、今まで 総当りするプログラムとか 条件判定とかを自分で考えていたが SQLならそうしたものは自分で考えなくてよい 勝手に総当りして勝手に判定してくれる ・・・ということが書いてありました これって、既存のプログラムの要件を SQLで表現できれば中身は考えなくてよい ってことですよね けっこうおもしろいかも
484 名前:デフォルトの名無しさん mailto:sage [2022/03/07(月) 07:14:29.39 ID:xVPINsIe.net] 経営しなくてもお金が稼げるSQLがどこかに書いてあると良いのに。
485 名前:デフォルトの名無しさん mailto:sage [2022/03/07(月) 12:53:13.63 ID:+OeG3Wfd.net] >>481 JDBC Driver で Access MDB に接続できる つまりワカラン
486 名前:デフォルトの名無しさん mailto:sage [2022/03/07(月) 13:11:37.42 ID:3lxJ/2QX.net] これかな? https://codezine.jp/article/detail/1627 https://codezine.jp/article/detail/1628 https://codezine.jp/article/detail/1629 記事中においてJavaでSQLを生成している部分はVBAで書けるだろうけれど、 他のRDBMSで使えるSQLの全てがAccessでも使えるわけじゃないから その辺をうまく置き換えたりVBAで補ったりする必要はあると思う
487 名前:デフォルトの名無しさん mailto:sage [2022/03/07(月) 14:07:14.74 ID:tjPYNfUL.net] 各DBで使えるSQL構文一覧表 (ROLLUPは jet使えない oracleはokとか) のページが昔あったのに 今見たら見あたらなかったわ
488 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 06:28:34.40 ID:fGzXxwFZ.net] 総あたりする場合、SQLはどうやって 候補を管理してるんだろ? ふつうにメモリ上に持ってたら メモリが足りないような
489 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 20:13:50.94 ID:fGzXxwFZ.net] 数字の書かれたパネルがあります このパネルのマスをいくつか ぬりつぶし、残った数字の積が、 たて・横のどの列も12になるように してください 2523 6257 5262 2334 これぐらいの規模の問題で 練習したほうがいいかも ぬりつぶしは1に置き換える
490 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 11:17:27.88 ID:wDARNtYc.net] 動的SQLっていうから DBエンジンにSQL投げる ↓ その結果を受けて自分を書き換えて 再度新しいSQL投げる ↓ 望む結果になるまで繰り返す みたいな話を期待したら 拍子抜けだった
491 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 18:36:45.22 ID:y/Xk/sN2.net] >>489 SELECT 解答 FROM すべてのあり得る盤面 WHERE 今回の条件 だから まず盤面を1行にして 2523625752622334 と表す すべてのあり得る盤面は 2523625752622334 2523625752622331 2523625752622314 2523625752622311 〜 1111111111111111 だけどこれをどうSQL文の中で 表現すればいいのかわからん
492 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 12:30:05.01 ID:+z9vFN5I.net] >>491 >>486 の記事を1から読んでこい
493 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 00:28:53.70 ID:uZ+uV6s8.net] VBAのコード内の文字を置換するプログラムをVBAで行うことはできるでしょうか? 置換の組合せが複数あるので一つずつCtrl+Hで操作すると間違いそうなので, 置換前文字列と置換後文字列の配列を書いて,それを順に実行するようにしたいのです. 自分のコード内に当該置換文字列をがでてくるので,その回避も考えないといけないですが よろしくお願いします
494 名前:デフォルトの名無しさん [2022/05/01(日) 07:29:11 ID:1HGTgNe1.net] >>493 できるよ
495 名前:デフォルトの名無しさん [2022/05/01(日) 07:36:23 ID:1HGTgNe1.net] ごめん、AccessVBAスレだった 知らん
496 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 16:14:10 ID:4P2yloMu.net] ACCESSにもApplication.VBEがあるっぽいから、エクセルとかと同じようにできるんじゃね そもそもコード内をそうそう置換するって状況がよくわからんがな
497 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 20:13:11.92 ID:uZ+uV6s8.net] >>496 オブジェクト名を修正すると,名前の自動修正機能で,オブジェクト間の整合性は保たれます. 例えば,Aクエリー内でBテーブルを使用していて,Bの名前をCに変更するとA内のBテーブル名もCに自動的に修正されます. ところが,コード内でオブジェクト名を引数に使用している場合(DoCmd.OpenQuery()やQeryDef()など)は,自動的に修正されないので コード内の文字置換で修正するしかありません. オブジェクト名をより統一的にしたいとか,あるルールで短くしたいなどの事情です. でも本当にコードを使ってコード内の文字置換できますか? 「エクセルとかと同じようにできる」とのことですが,エクセルのVBAでできる方法を知りません.
498 名前:デフォルトの名無しさん [2022/05/01(日) 20:33:27.28 ID:XyObubkl.net] >>496 がApplication.VBEってヒント出してくれてるのに自分で調べる気は無いの?
499 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 20:51:07.35 ID:uZ+uV6s8.net] >>498 いままでApplication.VBEとVBAの違いをしりませんでした. Application.VBEで検索して,オブジェクトであることをしりました. できそうな気がしてきました. 調べます
500 名前:デフォルトの名無しさん [2022/05/01(日) 21:27:48.04 ID:q0kLnjNb.net] >>499 お前みたいな馬鹿は、方法自体間違えていると思うよ
501 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 22:36:20.05 ID:uZ+uV6s8.net] >>500 正しい方法言ってみな。 言えなきゃ超バカ決定。
502 名前:デフォルトの名無しさん [2022/05/01(日) 23:10:31.48 ID:q0kLnjNb.net] やっぱり馬鹿だったか 馬鹿に馬鹿と指摘すると怒りだす
503 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 18:13:45.75 ID:hABwtxOZ.net] >>496 ,>>498 497ですが、 Application.VBE.ActiveVBProject.VBComponents(i).codemodule.ReplaceLine(j,"修正後コード文字列") を使ってできました。
504 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 21:57:49.43 ID:uVFGqhpy.net] >>503 ありがとう。勉強になります。
505 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 23:56:04.39 ID:9Zz7qGMa.net] コードとデータは分離しなさーい!
506 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 01:12:27 ID:L2QcoKdh.net] >>505 オブジェクト名はデータにできない
507 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 01:29:47 ID:T57Ht3+D.net] 名前は文字列だろ! VBAの提供するオブジェクトは大抵コレクションで管理されているだろ! お前の作ったオブジェクトも管理できるようにしろ! 初歩だぞ初歩!
508 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 01:39:45.29 ID:L2QcoKdh.net] つまらん もういいよ
509 名前:デフォルトの名無しさん [2022/05/04(水) 03:22:14 ID:bSJdUNny.net] やっぱり馬鹿だった
510 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 08:25:20.61 ID:L2QcoKdh.net] >>509 人のこと馬鹿、馬鹿ってほんとにうるさい奴だな 今回のアプリは俺しか使わずオブジェクト名変更も今回限りが確定しているんで、 オブジェクト名をデータ化できるCreateQueryDefなどを使う手間を省いてクエリデザイナーを使っているだけ。 そういう事情も含めて「もういいよ」と書いたんだけど、読み取れんわな。 お前は実生活で他人の事情を汲み取る力が弱くて他人から避けられてるだろう。 実生活では流石に馬鹿と面罵しないとは思うが態度にはでてると思うよ。 エクセルVBAのようにワッチョイ付きならNG登録するんだが。
511 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 12:11:33.62 ID:T57Ht3+D.net] 何人登録するつもり?
512 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 14:43:39.68 ID:HOAU3QSN.net] >>510 もういいから馬鹿は黙ってろ
513 名前:デフォルトの名無しさん [2022/05/11(水) 09:14:31.47 ID:+mNN1hZ/.net] ここはBKのあつまりでつか?
514 名前:44 mailto:sage [2022/06/18(土) 22:47:23 ID:yLkug1TW.net] 味噌も糞もいるのがこういう掲示板の特徴 それが面白ければ来るし退屈なら来ない 文句言うのはカッコ悪い
515 名前:デフォルトの名無しさん [2022/06/19(日) 06:53:58.66 ID:R9q2ZnJn.net] >>514 こういうのかっこ悪い
516 名前:44 mailto:sage [2022/06/19(日) 07:49:57.69 ID:ZfwUc+SV.net] >>515 いやいや本当のイケメンだろうな
517 名前:デフォルトの名無しさん mailto:sage [2022/06/21(火) 16:34:11.41 ID:q4pJaYn5.net] test
518 名前:デフォルトの名無しさん mailto:sage [2022/06/21(火) 16:34:30.21 ID:q4pJaYn5.net] アプリケーションタイトルについて質問です。 今使ってるmdbのタイトルが2種類あって、「Access」のものと「ファイル名:データベース-フルパス-Access」のものがあります。 全部後者のタイトルにしたいのですが、設定の仕方がわかりません。 ヤフー知恵袋の「Accessのタイトルバーにファイル名を表示させることはできますか。 Excelでは表示されるのですがAccessでは”Access”としか表示されず少し不便なので、、」 を読むと何の設定もしなくても後者のようになると書いている人がいます。 どうしたらそうなるのでしょうか? 後者のやつは別にAppTitleとかで設定していませんので不思議です。
519 名前:516 mailto:sage [2022/06/21(火) 17:34:19.49 ID:q4pJaYn5.net] 解決しました。
520 名前:デフォルトの名無しさん [2022/06/21(火) 19:20:51.51 ID:EkCiEQiW.net] >>519 どうやって? 知りたい
521 名前:516 mailto:sage [2022/06/21(火) 19:44:50.71 ID:q4pJaYn5.net] >>520 いろいろ試したけど、結論は超簡単。 ファイル→オプション→現在のデータバース→アプリケーションオプション→ドキュメントウィンドオプション→タブ付ドキュメントをon これでファイル名とパス名が表示されて複数のmdbを起動しても混乱しなくなりました。
522 名前:デフォルトの名無しさん [2022/06/21(火) 20:23:15.71 ID:QtwFSmmg.net] OS:win10 Ver:365 16.0 フォルダの中に複数のExcelファイルがあります accessで全てのエクセルの同一セルの文字をテーブルにまとめたいのです Accecc vba エクセルの特定のセル などで検索してみましたが解決に至っていません どうかお力添えお願いします
523 名前:デフォルトの名無しさん mailto:sage [2022/06/21(火) 20:46:00.64 ID:kU7/2TZz.net] 何がしたいかと、どこまで出来て何がわからないのか詳しくかけ
524 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 10:12:43 ID:N/5JiATv.net] >>522 Excelシート全てインポートすればクエリー加工出来ると思うが、、
525 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 10:16:19 ID:N/5JiATv.net] >>522 Excelシートリンクでも良いぞ
526 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 10:27:56.84 ID:lUHG2pSs.net] ネ申エクセルからデータを拾いたいとかそんな話じゃね? CreateObject("Excel.Application") 使って対象ファイル開いて、そっからさきはExcel VBAの範疇やろ
527 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 12:36:20.21 ID:N/5JiATv.net] なんだ Accessでテーブル化したい、のでは無いのか? 何やりたいのか分からんな
528 名前:デフォルトの名無しさん [2022/06/22(水) 15:16:59.53 ID:Z6mZqai9.net] 「AccessVBAからexcelファイルのセル参照ってどうやるの?」ていう質問でしょ
529 名前:デフォルトの名無しさん [2022/06/22(水) 20:19:24.91 ID:rLKMJdnt.net] 質問には答えられるけど 答えるとまた次の質問が来るのが予測出来るからまんどくせ
530 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 06:46:56.49 ID:nErcbU9U.net] >>529 スレに来ないと良いよ
531 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 07:36:49.86 ID:xe+L83Np.net] >>523-525 なにをやりないか再度確認してコード見直していたら不具合点見つかって前進しました… >>527 やりたいのはこれで30個程度のエクセルがあって全てフォームは統一されています a3とb4とw30の値をテーブルにズドンと引っ張りたいのです もうちょっと頑張ってみます 遅くなってごめんなさい
532 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 12:13:27.06 ID:jwJvRDT9.net] ACCESS VBA EXCEL CELLでクグルと沢山出て来ますね。 ACCESSからEXCEL開いて操作できると便利です、頑張ってください。
533 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 12:56:15.59 ID:uoofWh9e.net] >>531 CreateObject("Excel.Application")でエクセルを操作できるようにする 対象とするシートからa3とb4とw30の値を取得して変数 X Y Z に格納する 変数 X Y Z の値をAccess のテーブルに追加する この二つの処理を全てのシートにループで行う 釣りが終わったExcel オブジェクトを閉じる Access のオブジェクトの閉じる これでいけるんじゃね?
534 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 06:07:38.19 ID:X+tgL9yK.net] >>533-534 ありがとうございます こう書くとすごくわかりやすいですね テーブル追加やLOOPは調べて書き方を学べそうなのでやってみます!
535 名前:デフォルトの名無しさん [2022/06/26(日) 13:37:45.11 ID:DTfGvOZF.net] https://www.youtube.com/watch?v=jppnWu6am3Q
536 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 22:59:47.94 ID:Ter0iV/V.net] たびたびすみません ばしっとフォルダ内のファイル名を取得することはできました >CreateObject("Excel.Application")でエクセルを操作できるようにする これの意味がようやくわかりました ありがとうございます C:\Users\sanae\Desktop\vba\Book1.xlsx というExcelファイルのa3を変数に入れようとしているのですが ぐぐったところファイルパスをつける書きかたが参考にできるページがみあたらず詰まっています (このあたりにファイルパスとかシートとかを指定して)range(3.1) みたいなやり方かなあなんて思っているのですがどれもエラーになっちゃいました 参考になるページでもご教示いただければ幸いでございます
537 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 00:21:56.25 ID:LR8Jvthl.net] >>536 officetanaka.net/excel/vba/file/file01.htm を参考にしてください。 Sub Sample1 set mybook=myexel.Workbooks.Open "C:\Users\sanae\Desktop\vba\Book1.xlsx" x=mybook.worksheets(1).range("A 3") X の値をテーブルに書き込む End Sub myexelはクリエイトオブジェクトで作ったエクセルオブジェクトね あと変数は適当に定義しておいてね。
538 名前:デフォルトの名無しさん [2022/06/27(月) 01:42:38.20 ID:Yed1CrTu.net] >>537 おおお できてきました とても進みました ・フォルダを指定してファイル名を取得 ・変数XYZに特定のセルの値を取得 ・
539 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 01:45:22.88 ID:Yed1CrTu.net] すみませんCTRL+エンターで送信になってしまいました ・フォルダを指定してファイル名を取得 ・指定したシートから変数XYZに特定のセルの値を取得 ・XYZの値をテーブルに追加 超進みました 後は指定したシート名を持たないファイルに遭遇した時にどんなエラーになるのかが気になりますので 近々時間みつけて頑張ろうと思います ありがとうございました!超ハッピー!
540 名前:デフォルトの名無しさん [2022/06/27(月) 01:59:55.53 ID:YAQt7RYR.net] 馬鹿は二度と来るなよ
541 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 08:41:44.29 ID:yeeW9wqV.net] VBAでやらなくてもテーブルimportで出来るやろ 無駄な努力だな
542 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:56:31.55 ID:LR8Jvthl.net] >>541 ブック数が多いから VBA でやりたいんじゃないの? インポートでできる量だったら手でコピペの方が早いだろ
543 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 15:59:24.18 ID:jKYPD+Yx.net] 対象のExcelファイルが固定なのか、頻繁に入れ替わるかどうかにもよるわな
544 名前:デフォルトの名無しさん [2022/06/27(月) 20:22:09.19 ID:UdQiWAN3.net] どなたか教えてください。 売掛金消し込みのマクロを作成しています。VBAでソルバーを自動化したいと思っています。 目的セル、制約条件の参照セルの開始行が40行ごとに下がっていき、指定値は数値ではなく、セルを指定したいです。 とりあえず、全部の変数をvariant型にしてますが、なかなか上手くいきません。
545 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 20:42:56.65 ID:NFVjaUBh.net] なんでAccessVBAスレにまで書いてるんだよ
546 名前:デフォルトの名無しさん [2022/06/28(火) 12:01:23.56 ID:W8L8uteA.net] こんな奴が作るプログラムで金勘定とか笑えるわ 己を知らないって馬鹿の特徴なんだよな
547 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 12:08:16.40 ID:S7aFTH1N.net] >>544 Access VBAスレでExcelの質問するなよ
548 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 12:53:23.92 ID:illrnTHm.net] EXCELで記録したVBAをACCESSで実行するとEXCELはXlmxにしなくても良いからじゃないの? ソルバーは使い方わからんのでなんにも言えなくてスマン。
549 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 13:14:48.17 ID:v0i+TmEN.net] >>548 Excel VBAスレみればなにがあったのか分かるよ
550 名前:デフォルトの名無しさん [2022/06/28(火) 21:08:59 ID:i28fB/zi.net] 昨日アホな質問した541です。 accessスレにexcel VBAについて投稿してしまい、すみませんでした。 VBA初心者なので、よくわからずに投稿してしまいました。
551 名前:デフォルトの名無しさん [2022/06/29(水) 10:01:41.27 ID:Es0nfTu8.net] 初心者を言い訳にする香具師は同じ失敗を繰り返す
552 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 12:18:55.14 ID:C7zOwXa/.net] 狭量にすぎる
553 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 12:31:17.45 ID:WL8L6KaP.net] スレを間違ったことではなくマルチが問題なのだがな
554 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 13:27:42.53 ID:tPok425v.net] >>553 それだけ焦ってたんでしょ。Excel VBA で反応がなければ藁をもすがる気持ちで アクセス VBA で聞いたんじゃない。 広い気持ちで
555 名前:デフォルトの名無しさん [2022/06/29(水) 13:50:40.09 ID:Es0nfTu8.net] x VBA初心者 o 5ch初心者 o パソコン初心者 o コミュ障入門者(上級)
556 名前:516 mailto:sage [2022/06/30(木) 01:00:46.93 ID:1OP/W/CA.net] DoCmd.OpenReport "レポート名", acViewPreview DoCmd.PrintOut acPrintAll, , , acHigh, 枚数 新規レポートにラベルを貼っただけものだと希望どおりの枚数が印刷される. しかし,別のレポートだと常に1枚しか印刷されない. ネットでも同じ報告を確認した.バグ説もある. 皆さんはどうですか?やっぱりバグですかね?
557 名前:516 mailto:sage [2022/06/30(木) 16:01:17.27 ID:1OP/W/CA.net] 解決した. デコンパイルとコンパクトしたらいつの間にか設定した枚数が印刷されるようになった. accessはマジで面倒くさいなあ. デコンパイルとコンパクトの待ち時間をを返して欲しいよ
558 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 19:00:33.50 ID:PX9/MxY9.net] デコンパイル、知りませんでした。
559 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 20:22:38.17 ID:1+oYjPxt.net] デコンパイル、昔は割と鉄板の解決方法だったんだけどね それでだめなら新規作成して全モジュールインポートとかもあったな 最近は必要性が減ったけど、まだたまにはあるんだな
560 名前:516 mailto:sage [2022/06/30(木) 22:53:16.59 ID:1OP/W/CA.net] コンパクトだけでも良かったのかも知れないが,習慣で両方やることにしている ついいましがたも.Docmd.OpenReportのOpenArgsがレポートに渡らなくて困っていたが,コンパクトをしたら作動した. 終了時にコンパクトするオプションがあるくらいだから頻繁にやるべきなんだろうね. コード書いているときは非常に頻繁に破損するからね.
561 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 23:46:30.14 ID:1+oYjPxt.net] あれはデータ領域を圧縮するのが主で、コード部分にはあまり影響しなかった気がするが 最近のアクセスでコードが破損するのはだいぶ減ったと思うが VBEからコンパイルするだけで解決してたんじゃないか?
562 名前:516 mailto:sage [2022/07/01(金) 00:40:02.55 ID:SILFs/Ha.net] くわしいことはわからないが,挙動不審が治ることがあるんだよねえ とにかく,試行錯誤していると必ずと言っていいほど,壊れるよねえ. メモリーが不足していますとか出始めると,その日のうちに全フォーム消失とか起こるからなあ.
563 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 10:45:11.72 ID:x9gnk4T5.net] 試行錯誤の過程のほとんどを貯め込むからな 設定で「終了時に最適化」で、都度終了を心掛けるか 大幅な改修の度にコンパイルのクセを付けるか ファイルサイズに気を付けて、「こんなサイズのはずは無い」ってな時は要注意 で、それは、お道具の使い方が雑、間違ってるってだけで、すぐAccessのせいにする連中はお里が知れる ってこと
564 名前:516 mailto:sage [2022/07/07(木) 15:33:38.95 ID:9tJXVGoG.net] 下のコードでmdbのディレクトリが表示されると思いきや、 ディレクトリ Documents フルパス C:\Users\MyName\Documents が表示された。vbsならscriptの存在するディレクトリだからmdbの存在するディレクトリが表示されると思ったのに、違う。 このことを説明してある資料ありますかね? Sub test() Dim fso Dim objfolder Set fso = CreateObject("Scripting.FileSystemObject") Set objfolder = fso.GetFolder(".") Debug.Print "ディレクトリ", objfolder.Name Debug.Print "フルパス", objfolder.Path End Sub
565 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 16:12:50.20 ID:N4ENiOaQ.net] >>564 mdb/accdbファイルの場所が欲しいのなら CurrentProject.Path を使おう CurDir$や>>564 の例なんかで返されるカレントディレクトリはファイルダイアログとかで開いたフォルダになるっぽい その辺の仕様に関する資料は知らんけど
566 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 19:57:05.70 ID:V/fQnZ1U.net] そもそも、 >vbsならscriptの存在するディレクトリ が間違ってる気がするが カレントディレクトリの概念って最近は説明されてるの見ないなぁ GetFolder(".")が返してるのはカレントディレクトリ(からの相対パスで自分自身) カレントディレクトリはACCESS.EXEの場所や.MDBファイルの場所とは別に存在する まあMDB開くときはそこをカレントにする場合が多いけどな つねに一致してるとは限らん
567 名前:516 mailto:sage [2022/07/07(木) 20:26:42.06 ID:9tJXVGoG.net] >>566 > そもそも、 > >vbsならscriptの存在するディレクトリ > が間違ってる気がするが VBSで稼働していたスクリプトをVBAに移植している際に気づいたので、正しいと思います。 スクリプトを任意のフォルダにコピーしてそのフォルダ内のファイルを一括処理するのに使っていましたので。
568 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 20:31:06.22 ID:ty1oWU7C.net] chdirで変えられちゃうけど
569 名前:516 mailto:sage [2022/07/07(木) 20:55:49.31 ID:9tJXVGoG.net] ユーザはおいら1人だからいいのです。
570 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 21:30:15.27 ID:V/fQnZ1U.net] いやだから、scriptの存在するディレクトリじゃなくて、 カレントディレクトリが表示されてるって話なんだがな たまたまそれが同じだっただけだ ここ理解しないと思ったディレクトリが表示されない理由が理解できないぞ
571 名前:デフォルトの名無しさん [2022/07/07(木) 22:24:24.15 ID:rKn8i4wF.net] 馬鹿に何を言っても無駄な例だぞ
572 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 10:33:00.73 ID:aHYxM19P.net] >>567 そのスクリプトをショートカットにして、 作業フォルダを変えて動かしてみたい
573 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 12:10:02.96 ID:/znuHP85.net] カレントディレクトリみたいな、あやふやなものを使ってはいけない。 これが使えるのは、絶対に変化しない場合だけ 起動時に、特定のフォルダを指定するとか、 あらかじめ定数などに保存しておく
574 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 12:16:33.93 ID:/znuHP85.net] 例えばデスクトップに、以下のショートカットを作ると、 WSL2 で、Ubuntu 18.04 を起動して、 その /home/ユーザー名/test ディレクトリを、VSCode で開く リンク先 C:\Windows\System32\wsl.exe code . 作業フォルダ \\wsl$\Ubuntu-18.04\home\ユーザー名\test
575 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 12:30:53 ID:PreZKXp3.net] もはやAccess VBAとは関係ない話になってるし、元質問者は聞く耳持たないみたいだから これ以上続ける意味無いよ
576 名前:デフォルトの名無しさん [2022/07/11(月) 11:04:56.16 ID:1W23UOpt.net] >>564 fso使ってるんだから当たり前
577 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 17:20:09.84 ID:xDQ7ywi9.net] >>576 なぜ「fsoを使うと」なにが、「当たり前」なんだい?