◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

Access VBA 質問スレ Part2 YouTube動画>3本 ->画像>5枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1544620479/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

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

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


前回のスレッド
Access VBA 質問スレ Part1
http://2chb.net/r/tech/1328536426/
2デフォルトの名無しさん
2018/12/13(木) 00:13:52.55ID:6Z+s7/ms
女性の体にアクセスするにはどうすればよいですか?
3デフォルトの名無しさん
2018/12/13(木) 18:14:38.10ID:OtD2AZ3g
プロパティーシートから直接Functinをcallするときに=Function()と書きますね。
これをvbaで設定できますか?
モジュールプロパティーのCreateEvetnPorcからは当然ながらできません。
どのオブジェクトのメソッドならできますかね?それとも不可能でイベントプロシジャーでcall Functionと書くしか方法がないのでしょうか?
4デフォルトの名無しさん
2018/12/13(木) 18:44:40.99ID:OtD2AZ3g
自己解決しました。
5デフォルトの名無しさん
2019/01/13(日) 23:33:33.86ID:c2khr5fz
順位が1位から20位までのデータがあったとして、

SQLを使用して、下位3件のデータを上位から取得(18位、19位、20位の順)するにはどうすればよいですか?
6デフォルトの名無しさん
2019/01/20(日) 08:19:09.61ID:cWi8furK
select * from (select top 3 * from テーブル名 order by 順位 desc) order by 順位 asc
7デフォルトの名無しさん
2019/01/20(日) 19:20:31.32ID:gJkAP+bh
>>6
ありがとうございます。これです。これがやりたかったんです。本当にありがとうございます!
8デフォルトの名無しさん
2019/01/30(水) 21:17:34.34ID:L0BPGpLZ
業務用mdbを眺めていたら,モジュールレベルでPublic宣言とGlobal宣言が混在している.
このPGはアホなのかな?
9デフォルトの名無しさん
2019/01/31(木) 19:42:49.72ID:fGTESevq
Excelからmdb更新するとかありなの?
10デフォルトの名無しさん
2019/02/01(金) 21:39:02.72ID:IN4mmcqP
テーブル定義いじるやつはマゾだがデータ更新なら普通だろ
11デフォルトの名無しさん
2019/02/02(土) 15:17:40.44ID:wM22Ef9l
そういえばGlobalって余り使わないけど
publicとどういう差が有るのかは知らないなぁ
12デフォルトの名無しさん
2019/02/20(水) 18:39:48.45ID:tMuImGOR
会社のPCがようやく7から10に切り替わり、
ついでにofficeが2010から2016になった。

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

Access2016で日付フィールドとリンクしてない状態で、カレンダー使うのどしたらいいの・・・
2010と互換性を維持したまま
13デフォルトの名無しさん
2019/02/20(水) 21:54:34.71ID:oRzq8AWm
もうAccessを卒業するんだ
14デフォルトの名無しさん
2019/02/21(木) 13:02:36.57ID:L3EKz/Re
参照設定弄ってもだめなの?
15デフォルトの名無しさん
2019/02/21(木) 19:38:17.35ID:MzKG4O6f
>>14
情シス「VBのランタイム入れません。よくわからないから。」

(;_;)
16デフォルトの名無しさん
2019/02/21(木) 19:55:52.51ID:mRRRBv2X
>>12
カレンダー用のOCXだかDLLだかを持ってきて入れれば動くはずけど
ライセンス的にどうだか知らない

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

2010とかランタイム版あったはずだから、2016入れた後からインストールできるなら
それ入れれば行ける気がする
試して報告してくれ
17デフォルトの名無しさん
2019/02/21(木) 20:11:01.25ID:3prgeWcz
そもそもAccessって、サポートあるの?
あるとしたら、SA結んだら何回までオッケーただしおま環は知らんみたいな?
18デフォルトの名無しさん
2019/02/23(土) 08:51:07.40ID:ILyuCfk+
>>15
それじゃどうしようもないじゃん
19デフォルトの名無しさん
2019/03/02(土) 05:49:40.18ID:6x5b9DFI
Accessの謎の異常終了は、永久に治らないの??
20デフォルトの名無しさん
2019/03/02(土) 18:30:04.00ID:AjPA8Eq0
microsoftはしかたなくaccessを続けているだけで
microsoftは多分本気でやる気はないよ
本気ならとっくに2G制限も越えているだろうしネットワーク処理機能搭載くらいしている
microsoftが本気ならファイルメーカーがやってる感じくらいの機能搭載や改良はしてる筈
office製品の一部だから止められないだけで
本格的な改修とかは無いと思っていた方が良い
絶対無いとは思わないけど
今ある範囲でやれる内容をこなす程度で期待とかはしないほうが良いと思う
21デフォルトの名無しさん
2019/03/04(月) 09:50:39.88ID:TvaJY4yu
そもそも元々MS製品じゃないしなあ。
22デフォルトの名無しさん
2019/03/04(月) 19:28:23.37ID:6LdJdRvZ
そうなの?
23デフォルトの名無しさん
2019/03/05(火) 17:59:42.40ID:sbeNr1jL
元々別会社が作っていた物を会社ごと買収してaccessって名前にして出した?
みたいな経緯だったと思う
確かwikipediaとかに書いてあったと思う
だからなんつーか
microsoftも余り思い入れが無いというか本気で無いというか
そういう感じの所が有るのは仕方が無いのよ
寧ろここまで続いている方が驚き
近年他のアプリケーションの値段が上がっている中でaccessは値上げもたいしてしないし(はっきり確認したわけではないが)
vb6.0が終わったのに比べて
良くaccessはこんなに続くなぁとは思う
vb6.0とaccessvbaなんて殆ど同じなのになんでvb6.0止めたんだろうと思うくらい
64bit版は出すのに本格改修なんかはするつもりないみたいだし
いったい何処まで続くのかある意味解らなくなってきた
他のアプリケーションが大きく変わったり無くなっている中で
これだけ変わらず(細かい点を除けば)長く続くのはかなり珍しい気がする
24デフォルトの名無しさん
2019/03/05(火) 22:29:47.29ID:x8iA6KfG
止めたら影響大きいだろうな。電子カルテもあるし。
25デフォルトの名無しさん
2019/03/06(水) 07:31:01.14ID:5/Lsh2ff
言語仕様がほとんど変わらないおかげで20年前のシステムが今も使えている
開発コストと保守コスト考えたらAccessは素晴らしいよ
26936
2019/03/06(水) 11:17:38.29ID:OF16p3z1
ローカルでランダムアクセスできるAccessは気楽でいい
27デフォルトの名無しさん
2019/03/09(土) 21:57:04.20ID:QAZD12fZ
excel vbaとaccess vba
どっちの方が実用的ですか?
28デフォルトの名無しさん
2019/03/09(土) 23:04:33.82ID:M4mulWlp
>>27
必要に合わせてどっちも実用的
29デフォルトの名無しさん
2019/03/10(日) 00:06:55.04ID:PvuKZe7P
T_商品というテーブルを用意し、そこには次の内容が入っており、
商品      材料1 材料2 材料3
卵かけご飯    卵   米
お好み焼き    小麦  卵   豚肉
ショートケーキ  卵   小麦  苺
アップルパイ   りんご 小麦  牛乳

フォームに、材料A、材料Bのテキストボックスを置き、
検索ボタンを押すと、材料AかつBを含む商品が検索されるというVBAの記述に苦慮しています。
単独の材料であれば、VBAにSQLを組み込み、
SELECT * FROM 商品テーブル WHERE 材料1 = ' & 材料A & ' OR 材料2 = ' & 材料A & ' OR 材料3 = ' & 材料A & ' ;
こんな感じでできるのですが、材料が2つ以上になるとどうすればよいか見当がつかなくなりました。
アドバイスいただけませんでしょうか?
30デフォルトの名無しさん
2019/03/10(日) 01:11:27.75ID:W5FlChvZ
>>29
1がAかB
かつ
2がAかB
かつ
3がAかB
じゃないかな…眠くて間違ってる気もする…
あと、候補がおおすぎないなら、テキストボックスはコンボかな…(フォーム起動遅くなるなど副作用もあったりするのでこの案は無視して可)
おやすみなさい…
31デフォルトの名無しさん
2019/03/10(日) 01:18:29.26ID:W5FlChvZ
>>30
間違ってます。zzz
32デフォルトの名無しさん
2019/03/10(日) 13:11:16.19ID:FsgNmDsH
>>29
悪いことは言わんから、まずテーブル設計見直せ
33デフォルトの名無しさん
2019/03/10(日) 15:10:38.80ID:z6hGNEnV
馬鹿の次の質問

材料4を追加した時にはどうすれぱよいでしょうか?
34デフォルトの名無しさん
2019/03/10(日) 17:44:21.19ID:f/eJ/LOS
>>27
そもそもExcelでは応用効かない
35デフォルトの名無しさん
2019/03/10(日) 17:46:58.02ID:f/eJ/LOS
>>15
Visual Studio ExpressでDLL作れ
36デフォルトの名無しさん
2019/03/10(日) 17:55:45.50ID:hFpGjFbx
>>29
そのテ―ブルはちょっと…
商品のテーブルと材料のテーブルで結合じゃね?
37デフォルトの名無しさん
2019/03/10(日) 18:51:26.88ID:hpBR8lHx
accessは大昔にやってて今は持ってすらいないけど

該当行をdynasetで取り出した後
該当fieldから値を取り出して
if分で有るか調べれば出来たりしないか?
38デフォルトの名無しさん
2019/03/10(日) 18:58:03.76ID:9Z3HOdWo
いくらでも増やしていいぞ

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デフォルトの名無しさん
2019/03/10(日) 22:38:23.14ID:mPydjeZt
いやぁぁぁぁぁぁぁ
40デフォルトの名無しさん
2019/03/10(日) 23:14:01.04ID:hFpGjFbx
だから、材料フィールドを横に並べるのは作りが悪いだろ。
フィールド1個にして縦に並べるべきじゃね?
41デフォルトの名無しさん
2019/03/10(日) 23:50:20.06ID:CvNRnyCH
unionで繋げばいいんじゃね
42デフォルトの名無しさん
2019/03/11(月) 00:08:26.31ID:B6nWiYCU
設計の問題だろ。
できるできないの問題じゃない。

なんで使い勝手の悪いもんをわざわざ作らなきゃならんのよ。
43デフォルトの名無しさん
2019/03/11(月) 08:04:29.38ID:fslMg+hg
取り敢えず動かすなら、
材料1〜4をカンマで連結した文字列の中に、AとB両方ある
と書けば人間にはわかりやすい
44デフォルトの名無しさん
2019/03/11(月) 13:56:54.71ID:IRjWKGwj
まぁリレーショナルデータベースだから設計を変えるべきだけど
access使うような所なんて零細なんだから
そんなリファクタリングだのテストファーストだのモダンだのオブジェクト指向だのも関係無いような人材しか居ないんだから
vbaベタベタというのでやるしかない
みたいな感じなんだろう
その人がそれしか出来ないならvbaベタベタしか方法が無かったりする
この人がそうなのかは知らないけど
45デフォルトの名無しさん
2019/03/12(火) 00:15:11.07ID:S+rkIDbC
普通の設計にしたとして
countが3以上の〜、とかやるのが正しいの?
なんか不安なんだが
46デフォルトの名無しさん
2019/03/12(火) 12:34:12.09ID:xgWEcpqA
なんでcountなんて話になってるの?
商品テ―ブルと材料テーブルで結合するなら、商品テーブルには材料IDのフィールドが1つしかないんだから、材料IDのフィールドに材料AのIDと材料BのIDを持つ商品を検索するだけだよ。
47デフォルトの名無しさん
2019/03/12(火) 14:56:37.82ID:4U4zzI9j
一つの材料IDフィールドに2つの材料IDをカンマ区切りで入れるのが正解なの?
リレーショナル全否定?
48デフォルトの名無しさん
2019/03/12(火) 21:15:05.16ID:0vZ7cwHu
リレーショナルデータベースを前提にするならどんな設計が一番使い勝手がよいんだろうかね
49デフォルトの名無しさん
2019/03/12(火) 22:39:48.12ID:o5cGPdg/
>>46
商品テーブル、材料テーブル、商品の材料テーブルを作って、こんな感じで

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

材料A,B,CそれぞれのサブクエリをJIONするよりは速い気がする
50デフォルトの名無しさん
2019/03/13(水) 08:11:10.52ID:mGUeq4U2
>>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デフォルトの名無しさん
2019/03/13(水) 11:51:37.19ID:SZfR/Pu+
仕様が解らないからアレだけど
そのhaving countだと同じ材料が複数行登録されていた場合に
フォームに設定した別々な材料で検索した時に検索しても且つ条件にならないんじゃないかな?
同じ材料を登録できないように作ってあれば問題無いと思うけど
その辺どうなんだろうか?
まぁ作りと要求次第だと思うけど
的外れだったらごめんよ
ちょっと気になったんで

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

何にしても実現の仕方は色々有るね
その人の技量や置かれている状況次第だろうね
52デフォルトの名無しさん
2019/03/13(水) 19:07:03.88ID:0FHnOJ4A
最初に不安だと書いているように私もCountは邪道だと思ってるんですよね
「なんでcountなんて話になってるんだ」と怒られる程度には

それで、いろいろな方法がある中で「王道」をご指導いただけないんでしょうか?
53デフォルトの名無しさん
2019/03/13(水) 21:35:24.37ID:uWZ9EglX
>>51
基本的に、テーブルには誤りのあるデータは登録しない
逆に言うと、読み出したデータに誤りがあるかもしれないなら、全ての読み出し処理の後に全項目の妥当性チェックが必要になる
54デフォルトの名無しさん
2019/03/15(金) 17:36:53.07ID:FQsGmuzT
製品テーブルと素材テーブルと連結用テーブルの三つつくる
あとIDいらんから消して
55デフォルトの名無しさん
2019/03/15(金) 18:33:31.75ID:sIXN3DPH
idいらないのではってこと時々あるよね。
性別項目なんて"男"、"女"って直接入れてエエやんて思う。
56デフォルトの名無しさん
2019/03/15(金) 18:46:17.04ID:sIXN3DPH
>>54
id使わないなら 1テーブルでええんとちゃう?
57デフォルトの名無しさん
2019/03/15(金) 18:47:49.00ID:sIXN3DPH
>>56
余りにも近視眼でした
58デフォルトの名無しさん
2019/03/15(金) 19:00:16.39ID:Yw8dh4/K
>>55
性別はboolでいい

ただしオカマちゃんなどに対応するため
Bool 肉体の性別
Bool 精神の性別
Bool 改造後の性別
Bool 住民基本台帳の性別
Bool 一般公開する性別
Bool セキュリティで保護された性別
などのフィールドを用意するのがベスト
59デフォルトの名無しさん
2019/03/15(金) 20:17:51.87ID:GDnHo62/
SLC、MLC、TLC、QLCだな
60デフォルトの名無しさん
2019/03/15(金) 21:26:19.10ID:dImV5MMR
オカマでも、男専、バイ、女専と分けないとトイレで掘られるリスクが
61デフォルトの名無しさん
2019/03/16(土) 08:42:08.72ID:sYsfNqTH
Excel VBA質問スレが最後までいって終わったので、次スレ検索したらここが出てきた
Excel VBA質問スレの新スレはないのか?
62デフォルトの名無しさん
2019/03/16(土) 08:43:02.89ID:sYsfNqTH
Excel VBA質問スレでもAccessの話が話題に出るので、ここと統合してもいいんじゃね?
VBAメインの話だろ
63デフォルトの名無しさん
2019/03/16(土) 10:08:04.54ID:DkwCTpbs
>>29がダメな理由、データベースがわからない人にどう説明したら良いんだろ。
ウチの会社も、みんなこうやって作りたがるんだよな。

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

でも使うという手も有るw
65デフォルトの名無しさん
2019/03/16(土) 17:31:16.60ID:3KVWdS7r
>>54
横槍ど素人でごめん。
連結用テーブルってのは>>50みたいなのでおkってことですか?
最近ACCESS初めて同じようなことしようと思ってます。
66デフォルトの名無しさん
2019/03/16(土) 19:49:12.47ID:3keflQuI
>>65
そそ。
あそこに並んでる表を入れておくのが連結テーブル
あれがなぜ必要かはわかると思うので略
商品、材料テーブルの内容から、自ずと連結テーブルも必要になり、そういうテーブル構成になることは別に特殊なことではありません
67デフォルトの名無しさん
2019/03/17(日) 08:42:17.71ID:n1sOdbaQ
こんなスレがあるぞ

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

VBAなんでも質問スレ Part2 [転載禁止](c)2ch.net
http://2chb.net/r/tech/1432173164/
68デフォルトの名無しさん
2019/03/17(日) 10:57:55.94ID:j70B1v+S
>>66
ありがとうございます。
実際は、製品のそれぞれの材料をどれくらい使ったかを管理する必要があるのですが、その場合、
製品テーブル
材料テーブル
製品と材料の連結テーブル
連結テーブルと使用量の入力用テーブルが必要になるイメージですかね?
VBAスレでしたね。テーブルの作り方はここではないのはわかってるのですが、何かこのあたりのテーブルやフォームの作成のヒントになる書籍とかあれば教えていただけませんか?
69デフォルトの名無しさん
2019/03/17(日) 13:57:54.89ID:2pkDyHvs
excelとaccessはアプリケーションとして随分違うから分けた方が良い
excelの方が進みが速いし
access相談系ってここ以外に案外質問スレが見当たらないし(自分が知らないだけで実際には有るかも知れないけど)

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

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

基本は分けた方が良い
70デフォルトの名無しさん
2019/03/17(日) 17:33:15.64ID:5mJrF7aW
>>63
Excelに慣れて表を想像するから。
DBはリレーションを想像すべきで表を想像すべきじゃない。

>>64
リレーションに慣れてれば自然に正規化しようとするようになる。
71デフォルトの名無しさん
2019/03/17(日) 23:33:28.89ID:L17xYYyd
>>68
まず、製品、材料、連結テーブルの中で使用量を格納できる(格納するのがふさわしいか)のはどのテーブルかを考える。
ふさわしいテーブルがなければ新テーブルを追加するが、使用量は連結テーブルに格納すればいいのではと理論建てて考えられるようになりましょう。

書籍は近所に大きめの書店があれば、自分の好みで選びましょう。図が多いとかカラフルなのが見やすいとか。
初級本は2、3回見ればあまり出番なくなると思いますが、どんなことができるのかとか効率よく知るのに有効です。
他は、逆引きとか、テクニック本とかがいろいろな処理を書く上で有効で、長く役立ってくれるでしょう。
72デフォルトの名無しさん
2019/03/17(日) 23:53:15.91ID:L17xYYyd
>>63
データベースに限ったことではないが、最小限の入力(手間)で最大限の結果(伝票だけでなく売上集計や分析など)を得ることが目標。
平たく言えば、楽(効率アップ)しようと思わない人、そのために努力しようと思わない人には伝わらない。

オレは説得するのは諦めた。残業代増やしたい奴ばっかりだから
73デフォルトの名無しさん
2019/03/18(月) 00:03:45.33ID:01/djhoo
馬鹿には無理

これが真実
74デフォルトの名無しさん
2019/03/18(月) 19:45:55.30ID:WjETnlu5
構造ならSQLとかDBのアンチパターン解説本
>>65
他にも連結用テーブルはプライマリをフィールド二つの複合にして
それぞれに元テーブルとの外部キーつくること
75デフォルトの名無しさん
2019/03/19(火) 06:30:11.40ID:4N2t7FIS
みんなこっちにいるよ
http://2chb.net/r/tech/1432173164/
76デフォルトの名無しさん
2019/03/19(火) 23:41:14.03ID:PLWGdEFL
馬鹿でも仕事をしなきゃならない
そういう人は材料1,材料2,...でやれるなら
それでやってもらうしかない
頭いい奴だけで後は生活保護で構わない
とかで良いなら話は別だけど?
その辺を理解出来ないアホが多くて困る
正規化を理解しないでaccess使っている人間と種類的には同じ
自分がやれる事が一番と思って他を考えていない
77デフォルトの名無しさん
2019/04/25(木) 10:33:32.47ID:I6sE8Jku
32bitのAccess2016を使っています。
いままではinteger型で済むものはlong型にしてはいけない。メモリーの無駄遣いと思ってきました。
しかし、ベンチマークをとるとlong型の方が速いという主張を頻繁に見るようになりました。
数字は全部long型にした方がいいのでしょうかね?
78デフォルトの名無しさん
2019/04/25(木) 11:52:04.10ID:vKKospK1
>>77
昔々はそうだった
しかし、今はあり余るメモリをたらふく使って、高速にとか、プログラム書きやすくとかになってる。
(もちろん限度ってものはある)

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

わざわざ longに直す必要はない。これからは気にせず long使っていい
79デフォルトの名無しさん
2019/04/25(木) 15:22:48.68ID:I6sE8Jku
>>78
でも、longに直したくなりますよねw
標準モジュールは一括置換→保存で問題ありませんでしたが、
フォームでやってみたら、すぐにメモリー不足やら、フォーム破損が生じてしまいましたw
80デフォルトの名無しさん
2019/04/25(木) 17:43:41.51ID:ImBWEqP9
馬鹿に教えるとロクなことをしない例
81デフォルトの名無しさん
2019/04/25(木) 18:18:18.21ID:I6sE8Jku
実験用のコピーだよ。
楽しく実験するのがプログラミング上達の近道だと思うんだよね。
82デフォルトの名無しさん
2019/04/25(木) 20:40:48.35ID:JpEf0ZAX
>>81
実験は大切。失敗もベンチ取るのも身になる。
実験ソースや結果も Accessのテーブルに分類して残しとくんだぞ
(オレは、ソースはモジュールに置いて、コメントに結果を書いてたりもする。もちろん他言語などはテーブルやプロジェクトにしてなど)
カンペ作ったときみたいに忘れないもんだが、将来の追試や数値が役に立つ(まれに)
83デフォルトの名無しさん
2019/04/25(木) 22:25:13.99ID:CJM7ooRn
>>81
後付けの言い訳乙
実験するよう連中はこんなところで質問なんかせんわ
84デフォルトの名無しさん
2019/04/26(金) 05:09:51.54ID:ebeJOjHo
>>83
Access界隈っこういう人が多い気がするなあ。
実験用コピーじゃなかったら真っ青になってるだろうなw
85デフォルトの名無しさん
2019/04/26(金) 13:04:47.02ID:azgsbPV3
新人の頃は良く失敗した
数値フィールドをテキスト型で定義したり
データ、システム分離しなくてmdb破損させたり
手元の最新版壊して顧客PCまで最新版取りに戻ったり
86デフォルトの名無しさん
2019/04/26(金) 14:38:58.61ID:xEyS3kHo
>>85
オレも最初の頃壊れ(し)まくって、Accessなんて使いもんにならんやんと思った
dbだから、排他とかできるんだし、別々のフォーム触るなら、皆で開発できるやろと 1つの共有mdbで開発やってたw

規模によるけどシステム分離はわざわざしないな
分離するのは、sqlserverとかにするときだけだ
87デフォルトの名無しさん
2019/04/28(日) 22:30:01.14ID:h9q8OTE0
システム分離ってなんですか?
私もファイルが壊れてばかりで困ってます。
88デフォルトの名無しさん
2019/04/29(月) 11:11:13.24ID:3KqibFAl
>>87
データベースでデ−タをどうこうする部分と、デ−タそのものを分離するということでしょ。

テーブルとクエリやフォーム、レポートを別ファイルにするという意味だと思う。
89デフォルトの名無しさん
2019/04/29(月) 11:33:05.46ID:lr8PSWgy
>>87
>>88
テーブルとそれ以外に分けることです。
それ以外の方にはリンクテーブルを置いておけば、同じように処理できます。
複数人で同時にテーブル読み書きするときは定番のやり方です。
(一人でしか使わないなら、わざわざ分ける必要はありません)
テーブルの方はファイルサーバに、その他は各ローカルに置いて使います。

もう少し細かく言うと、ワークテーブルはそれ以外の方に含みます。
90デフォルトの名無しさん
2019/04/29(月) 11:38:37.49ID:d82tlvl6
>>89
横からすんみません。
一人でしか使わない場合もフォームのコントロールを弄くるのが好きな人は分離した方が良いと思います。
コマンドボタンの位置を変更しただけでフォームが消えてしまったことが何度もありますから、
一人で使用する場合もカスタマイズ好きならデーターは分離した方がいいと思います。
9189
2019/04/29(月) 11:43:25.91ID:lr8PSWgy
>>89
ネットワークが遅い場合は、定数テーブルもローカルにとか、その辺は臨機応変に。
9289
2019/04/29(月) 12:16:08.84ID:lr8PSWgy
>>90
最近は個人的な作成しかしなくなったので教えて下さい。
そのファイルはmdb、accdbどちらですか?
(拡張子が変わって壊れにくくなったかとか、何が変わってどう影響するか細かくは調べてないです)
そのdbファイルはローカル/ファイルサーバどちらに置いてましたか?

ここ数年はツール的な小さなものを、accdbをローカルで作成してますが、壊れた経験はないです。
1つのフォーム内で、各処理をフレームで分けてあり、フレーム内にはテキストボックスやボタンなどがあります。
フレーム単位で、あっちやこっちに頻繁に移動はしてます。
(それでも、過去の壊れてた経験から、数日に一回最適化とバックアップはとってます)
93デフォルトの名無しさん
2019/04/29(月) 12:36:13.73ID:d82tlvl6
>>92
mdbです。dbファイルもmdbでローカルです。
フロントエンド?(と言っていいのかしら?)が巨大で、100MBくらいあります。
業務用ソフトで中身は使用されていないゴミ変数やゴミプロシジャーが大量にあります。空のプロシジャーもある上に、それをcallしている謎のプロシジャーもあります。
str型の変数なのに、タイプするのが面倒くさかったのか、var型で宣言されている変数がこれまた大量にあります。
9489
2019/04/29(月) 13:14:19.98ID:lr8PSWgy
>>93
ありがとうございます。
今でもmdbで作り込みが大きいのは壊れやすいんですね。
以前は、新mdbに全部インポートして、リフレッシュ(ゴミ除去)とかやってました。
(最適化より小さくなるから、何か効果はあるんじゃないかと思って。)

accdbに全部インポートして、参照設定修正という方法もあるけど、業務用だと完全に同じ動きするかと問われると保証できないので、難しいだろうし。
時間やお金出るなら(これからも使い続けるなら)、機能(部署)ごとに分割とか、accdbに徐々に移行(プロシージャ修正整理)とかやっていきたいところですね。
95デフォルトの名無しさん
2019/04/29(月) 13:47:50.96ID:QxflDRVF
SQLserver使おうぜ
96デフォルトの名無しさん
2019/05/04(土) 18:38:16.45ID:ZGbBU4Ge
Accessはフロントエンドに使う
DBはMySQLでも良い
97デフォルトの名無しさん
2019/05/05(日) 01:45:20.23ID:PgstIp0W
一度に大量で複雑な更新をすると落ちやすかった印象は有るかなぁ
98デフォルトの名無しさん
2019/05/07(火) 11:01:49.04ID:S4maxKz5
>>96
帳票とかからむと、手軽だもんな
99デフォルトの名無しさん
2019/05/08(水) 19:00:39.16ID:PD4Nn61H
Accessは何たって帳票の作成が超簡単!
これがあるから離れなれない。
LibreOfficeやOpenOfficeにも帳票作成ツールはあるけど、
Accessほど使い易くはないのが、移行できずにいる大きな要因の一つなのは間違いない。
100デフォルトの名無しさん
2019/05/11(土) 13:23:24.99ID:J8lUk67b
Office365でアプリアイコンが刷新されたがAccessは変わらない悲しみ
101デフォルトの名無しさん
2019/06/03(月) 01:57:41.37ID:vn/O8vit
access2016使ってて2013のランタイム入れたらaccessが使えなくなってびびったわ
あわててシステムの復元して直ったけど
102デフォルトの名無しさん
2019/07/17(水) 21:40:08.49ID:/Hg4fKFx
サブフォームのソースオブジェクトに、SQLを直接記入することはできないのでしょうか?
SQL文というものがそもそもオブジェクトでないから記入できないのでしょうか?
103デフォルトの名無しさん
2019/07/17(水) 22:16:32.17ID:5Qt+TnNF
Formのオープン時にそのサブフォームのおソースを放り込めばできる
あとはメインフォーム上でサブフォームをいぢるイベント時に書くとか 例えばボタン押した時など
サブフォームはソース無し にしてるけど、自分は  そこへ放り込むやり方だと出来てる
104デフォルトの名無しさん
2019/07/17(水) 22:25:51.54ID:eXUk1Aqq
>>102
ビュー定義してソースに設定したら?
105デフォルトの名無しさん
2019/09/28(土) 01:30:49.78ID:XSiAgIby
id  部門 販売品目
1  A  りんご
2  A  バナナ
3  A  りんご
4  B  バナナ
5  B  ぶどう
6  B  ぶどう
というテーブルから、
部署と販売品目が同じレコード数
(Aかつりんご、Aかつバナナ、Bかつバナナ、Bかつぶどう の数)をカウントしたいのですがうまくいきません。

販売品目単独では
SELECT 販売品目,Count(id)
FROM テーブル名
GROUP BY 販売品目
のようにすれば思うようにいくのですが、複数条件になると思うようにいきません。
お知恵を貸していただけないでしょうか。
106デフォルトの名無しさん
2019/09/28(土) 02:03:10.80ID:hdiBTyMe
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:15.90ID:hdiBTyMe
もしくは
SELECT 部門, 販売品目, Count(ID) AS IDのカウント
FROM (
SELECT * FROM テーブル1 WHERE (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう"))
) GROUP BY 部門, 販売品目
108デフォルトの名無しさん
2019/09/28(土) 02:22:14.79ID:hdiBTyMe
//シンプルにこれでもできたけどwhereの位置とか括弧とか間違えてない?
select 部門, 販売品目, count(ID) as カウント
from テーブル1
where (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう"))
group by 部門, 販売品目
109デフォルトの名無しさん
2019/09/28(土) 06:33:14.21ID:XSiAgIby
>>106
ありごとうごぞいます。
説明が不十分でした。
たしかにそのとうり記述すればできるのですが、部門や販売品目が増えていった場合に、全組合せを書き出さないでやる方法はないものかと考えております。
110デフォルトの名無しさん
2019/09/28(土) 09:36:23.69ID:hdiBTyMe
まだ説明不足かと
組み合わせを指定しないと絞り込みはできないし
クエリビルダーでちゃちゃっと作った最小形が>>106
絞り込み条件のテーブルを他に作ってリレーションとる方法もあるけど
111デフォルトの名無しさん
2019/09/28(土) 21:47:53.70ID:w31BDneZ
>>105
要件定義すらまともに書けない馬鹿だからSQLの基本もわかっていないのかね?
どこにも部署なんてないのだが
112デフォルトの名無しさん
2019/09/28(土) 23:50:31.47ID:Bvcc+55+
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デフォルトの名無しさん
2019/09/29(日) 07:32:11.18ID:V4rAOO4u
>>111
いきってないで答えてやれよヴァカw
114デフォルトの名無しさん
2019/09/29(日) 09:35:48.11ID:l54OkWQk
AccessならGurupByしたクエリを名前を付けて保存しておくのが正解
サブクエ遅いから
115デフォルトの名無しさん
2019/09/29(日) 19:47:04.97ID:mdCYdpYZ
普通に部門販売品目でソートしてから
dynasetからvbaでカウントしたら駄目なの?
sql文を捏ね繰り回すよりその方が簡単な気がするけど?
116デフォルトの名無しさん
2019/09/30(月) 00:02:54.58ID:ELYMfL9+
質問者が一番馬鹿だが答える方も馬鹿ばっか
117デフォルトの名無しさん
2019/09/30(月) 00:24:58.55ID:K8zar7Eh
なのでこのカウントの質問、ここで終了!
118デフォルトの名無しさん
2019/09/30(月) 10:47:04.29ID:6yDcPDBq
どうしてもsql文でやりたいなら
他のsql系統のスレで聞いたほうが良いと思う
accessはsqlとvbaを組み合わせて使えるので
込み入り難いからやり易い面が有る
自分は割りとそういうやり方をしてしまう
けど他のリレーショナルデータベースはsqlを駆使しないといけない場面が多いだろうから
その手の方面の人の方がsql文に詳しい人が多いと思う
sql文の質問をしても構わないと自分は思うけど一応vbaスレなんで
119デフォルトの名無しさん
2019/09/30(月) 23:29:21.37ID:GbU6Rrgw
他のリレーショナルデータベースはもっとましな言語で使うんだよ
120デフォルトの名無しさん
2019/10/05(土) 14:25:32.14ID:pEFp3YWl
""とclearcontentsの違いが明らかになったな
121デフォルトの名無しさん
2019/10/05(土) 14:25:47.70ID:pEFp3YWl
誤爆です
122デフォルトの名無しさん
2019/10/22(火) 14:54:31.07ID:Si05vw2X
俺なら
SELECT [部門] & [果実] AS 式1, Count("HOGE") AS DUMMY
FROM テーブル1
GROUP BY [部門] & [果実];
123デフォルトの名無しさん
2019/10/30(水) 06:50:33.11ID:q0119UkA
普通の関数を使ったSQLがコンパイルエラーで通らなくなるのは、ずっとあるバグなの?
文字列中に含まれるスペースをなくした列同士を比較したいだけなのに
124デフォルトの名無しさん
2019/10/30(水) 08:05:14.44ID:QrHO4Al6
DBに上げる前のデータ加工はExcelとPowerBIについてくるPowerQueryで完結させる
DB自体は何でも良い
Accessはフロントエンド

こういう感じの運用が一番融通が利いて楽
125デフォルトの名無しさん
2019/10/31(木) 14:53:16.10ID:3aW6/Vt0
>>123
通ってたのが通らなくなったなら参照設定確認が最初の一歩
126デフォルトの名無しさん
2019/10/31(木) 16:05:52.19ID:IlVblaPX
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型 で宣言しています。どっちが正しいのでしょうか?

それと、プロパティーシートから 関数を呼び出すときに引数を省略できますか?エラーばっかり出てしまうので,不可能という気がしてきますが、実際はどうでしょうか?
127デフォルトの名無しさん
2019/10/31(木) 16:14:24.18ID:IlVblaPX
ひとつ解決しました。
ここ https://bettersolutions.com/vba/macros/optional-arguments.htm に Remember that IsMissing will only work with the Variant datatype. と書いてあるので、
IsMissingを使いたい場合にvariant型である必要があるだと思います。

プロパティーシートからcallするときに省略可能かどうかはまだわかりませんね。
128デフォルトの名無しさん
2019/10/31(木) 23:30:26.82ID:IK0T1jez
>>127
プロパティシートからでも省略できると思うよ
標準で使える関数でも省略できるから
129デフォルトの名無しさん
2019/11/06(水) 06:37:50.98ID:jiZZUv+M
IsNumeric 関数 VBA http://vba-auto.com/isnumeric_function_vba/

9CF
130デフォルトの名無しさん
2019/11/06(水) 06:37:51.02ID:jiZZUv+M
IsNumeric 関数 VBA http://vba-auto.com/isnumeric_function_vba/

9CF
131デフォルトの名無しさん
2019/11/12(火) 08:08:27.20ID:n8VUgOjj
スレチですまん。
俺はVBAをやってるが上司から言われました。(うちの部署、10名のうち、VBAを作れる人は二人だけ、、、)

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

反論出来る?
132デフォルトの名無しさん
2019/11/12(火) 09:07:34.81ID:umlGYBnb
高度なAIにVBAとか集計なんかやらせちゃ駄目だ。他に何もできない俺たちがやらなきゃな
133デフォルトの名無しさん
2019/11/12(火) 10:13:03.38ID:n8VUgOjj
>>131の者です。
EXCELとACCESSを間違えた、、、。
すみません。
134デフォルトの名無しさん
2019/11/12(火) 18:47:25.82ID:ZiPBwNA/
ここって禿げのおっさん来てるの?
135デフォルトの名無しさん
2019/11/12(火) 21:13:04.29ID:hnHZ9bm+
>>131
〉AIが集計をしてくれるからACCESSは必要ない時代が来るねと言ってた。

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

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

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

複数データを組み合わせてサクッと結果求めたり、そこそこのアプリ(特にレポート活用)作るなら、今でもACCESSは最良の選択の一つだと思ってます。2.0くらいから今までそこかしこで使いまくってます
136デフォルトの名無しさん
2019/11/17(日) 21:57:31.66ID:qBLyum9y
エクセルに比べて、アクセスは過疎ってるなあ
137デフォルトの名無しさん
2019/11/18(月) 09:09:41.09ID:8BxAA3e8
あなたの禿にacc(ry
138デフォルトの名無しさん
2019/12/19(木) 22:11:03.53ID:lRu+t2VS
Access2010
印刷プレビューのリボンで「PDFまたはXPS」を押した際に出てくる
「PDFまたはXPS形式で発行」のダイアログを出すVBAコード教えてください。
139デフォルトの名無しさん
2019/12/20(金) 21:12:19.28ID:NX/gzbot
とりあえず自分でマクロの記録でそれらの操作をなぞって
それでできたブツを思う存分手直しして
そこで発生した問題を質問した方がいいかもな

Access遣いはおばーちゃんやおじーちゃん多いから
「イチからかよ」って思われると、誰も面倒がって答えたがらない
140デフォルトの名無しさん
2020/01/25(土) 09:08:10.81ID:Ib3xGLkp
Windows10、Office365のAccess16なんだけど、レポートプレビュー画面にボタンでもおいて、そこにイベントプロシジャーを設定したいんだけど、どうするのかな?
Access2003では簡単にできたんだけど、リボンがでてきたAccess2007以降出来なくなった気がするんだけど、どうなんだろう?
141デフォルトの名無しさん
2020/01/25(土) 10:20:39.11ID:lx4KYteI
あなたのハゲにサクセスしたい
142デフォルトの名無しさん
2020/01/25(土) 23:41:49.05ID:Tl89GTzc
>>140
ちょっと2003でそれをやるコード上げてみ
143デフォルトの名無しさん
2020/01/26(日) 13:49:02.85ID:63OckB6o
>>142
確か、カスタムメニューだったか、カスタムボタンを設定して、それにイベントプロシジャーを設定していた気がする。
アクセスキーを設定してプレビューを印刷して、プレビュー画面を閉じて、特定のフォームを起動して、特定のボタンやらテキストボックスにフォーカスを与えるとかやっていた気がする。
あれは実に便利だった。
Windows7が動いているPCが物置にあった気がするから確かめてみる。
144デフォルトの名無しさん
2020/02/06(木) 19:57:45.45ID:djhx8w46
会社で役割柄ツールを作ることになりまして、アクセスに入門しました
xlsxをインポート、それと同時にテーブルを作成するVBAは組めたのですが、同時にレコードが勝手にソートされてしまい、元データとレコードの順番が異なってしまうという問題に直面しています。
この場合、テーブル作成と同時にオートナンバーを設定するようにしたいのですが、docmd〜acimportdelimでは定義付けができません。
何か方法はありますでしょうか

インポートするxlsxは毎回ファイル名が異なる想定なので、保存したインポートを使うのは極力避けたいです
145デフォルトの名無しさん
2020/02/06(木) 22:52:24.69ID:BV2yIT+0
>>144
元データに順序列付けとき
146144
2020/02/07(金) 06:55:52.14ID:uUICGF6D
>>145
そうですよね…
最終手段としてはそれを考えています
147144
2020/02/07(金) 06:56:12.50ID:uUICGF6D
ありがとうございます!
148デフォルトの名無しさん
2020/02/07(金) 12:31:07.76ID:etaMDs5Y
>>146
最終手段というか、RDBの行の順序に意味を持たしちゃ行けないと言う基本理念
149デフォルトの名無しさん
2020/02/09(日) 18:52:02.04ID:ISiAk6Az
あなたのハゲにサクセスしたい
150デフォルトの名無しさん
2020/05/03(日) 05:34:51.92ID:oxUHZhz1
おはようございました
新型コロナでACCESSどころでは無いですね
151デフォルトの名無しさん
2020/05/23(土) 05:21:27.38ID:GBVQ4WJe
jetbeensのDataGripってアクセスでも使えるの?
152デフォルトの名無しさん
2020/05/24(日) 14:56:41.74ID:nvA4FLS/
>>151
jetbrainsでしょ
153デフォルトの名無しさん
2020/05/24(日) 14:58:32.86ID:nvA4FLS/
>>151
https://stackoverflow.com/questions/36820072/how-do-i-connect-a-ms-access-database-to-jetbrains-datagrip
154デフォルトの名無しさん
2020/06/12(金) 10:16:26.06ID:wVr6YfiN
全然ネットにもあがっていないけれど、Access2019の最新版で、DAOでレコードセットを作成して操作しようとすると
Accesが落ちるっていう現象を経験している人っていませんか?
32ビット版も64ビット版も同じ。
155デフォルトの名無しさん
2020/06/13(土) 00:26:56.61ID:0QXppYe5
Excelが2013というオチではなくて?
156デフォルトの名無しさん
2020/06/13(土) 23:26:59.26ID:qOp00dJL
そうでなくて、今まで動いていたのに最新のビルドになったら突然落ちるようになった。
前のビルと番号に戻したら動くのよ。
ADOでレコードセットを作成したときはどのビルド番号でも問題なし。
157デフォルトの名無しさん
2020/06/19(金) 09:37:07.67ID:N2hJl/gn
Application.SetOptionの引数一覧が知りたいのですが、誰か知りませんか
158デフォルトの名無しさん
2020/07/31(金) 18:27:45.20ID:2hxJK6g2
ヘルプデスクがスキルアップするため、プログラミング経験積むのにAccessVBAって合ってますか?
159デフォルトの名無しさん
2020/07/31(金) 18:46:19.97ID:z2KmuaKZ
まずヘルプデスクという職場でプログラミング経験積めるの?
160デフォルトの名無しさん
2020/08/01(土) 22:26:21.99ID:kuObS2ra
合ってるかどうかはわからんけど、それはありだな。
DBとPG、両方の知識が増える。
161デフォルトの名無しさん
2020/08/02(日) 01:27:11.88ID:S6RTQlHT
お前らどうやって勉強したの?
おいらADO勉強したいけどどの本読んでいいかわからないから勉強できてない。
162デフォルトの名無しさん
2020/08/02(日) 04:08:31.99ID:dor5CoCv
覚えるなら実務が一番早いと思いますが
独学なら簡単なものを作ってみると良いですよ
持ち物リストとか
163デフォルトの名無しさん
2020/08/04(火) 22:22:12.96ID:j2qbL1qD
持ち物リストですか、わかりました
164デフォルトの名無しさん
2020/08/07(金) 09:09:10.88ID:QUQQ3BC/
>>161
Google。
本で勉強したのは20年前かな。
165デフォルトの名無しさん
2020/10/10(土) 13:55:25.74ID:aicjgH/E
最近のAccessは条件付き書式の条件数が3つまでという制限がなくなったと聞いて、vbaで4つ条件を書いたら、怒られた。
条件数の上限の件はどうなっているの?
166デフォルトの名無しさん
2020/10/12(月) 19:42:49.57ID:SLKy4GhN
https://hamachan.info/win8/access/and.html#st-toc-h-3
なんだろ?もっかい見直してみ
167デフォルトの名無しさん
2020/10/12(月) 20:44:51.07ID:XW9upEZ9
>>166
こんなことがかいてありましたね。
>>参考Access2010以降は、条件付き書式を3つ以上追加することができます。Access2007では、3つまでです。

もしかしたら、メニューからなら可能でVBAでは不可能なのかもしれませんね。そうだとしたら変な仕様ですね。
168デフォルトの名無しさん
2020/10/12(月) 22:03:49.00ID:SLKy4GhN
不可能とみるか、未対応と思うか 人それぞれ
クレバーなら文句を付けてるヒマ有ったら今できるベストな対応をして次に進んでる
169デフォルトの名無しさん
2020/10/12(月) 22:18:07.44ID:XW9upEZ9
おお、AccessとかVBAを勉強し始めた頃を思い出しますね。
ネットで誰かが質問すると必ず上から目線で罵詈雑言だったなあ。
知恵袋とかも酷かったなあ。
170デフォルトの名無しさん
2020/10/13(火) 20:22:52.03ID:Jo0My/9g
>そうだとしたら変な仕様ですね。
これが無かったら小言書かなかったけどな MS相手にどっちが上から目線なんだか
かてて加えて減らず口叩かれるとは いやはや

チラとWeb巡ったら難問袋小路問題で以前からあった疑問なのは判った
条件付き書式をVBAで制御するときに注意すること でググれば一番上に出てくるであろうサイトでは
2013をベースに「・・・すること」とか断言してるが、どうなんだ?
hatena さんのサイトでは別問題として画面がチラつくと仰ってる
そのサイトの途中にあるリンク先 ↓ (アドレス貼ると書き込みできないから省略
YU-TANG さんは既にアーカイブでしか見られないしVerも古いが
3つしかできないのを工夫で5つまで可能にしてる(らしい 詳細は未チェック)
そのサイトの最下段にあるリンク先 ↓ (ry
で、そこから誘導されたこちらもアーカイブなLebans 氏のサンプル(らしい 詳細は未チェック)
帳票フォームをサブクラス化して 云々 悪魔の技とYU-TANGさんは大絶賛してる
驚くことにアーカイブだがファイル落とせる

自分では必要に迫られたこと無かったから無頓着だったが、なるほどね みなさん悪戦苦闘してるんですね
171デフォルトの名無しさん
2020/10/14(水) 02:48:02.48ID:zZVeC8zp
accessは質問者に小言を言う人が多い印象。
いわゆるIT土方が多いからかねえ。
余談だけど世間に流通している商品のVBAを覗くとひどいコードの多さに驚く。そういうコードを書く人が質問者相手にがストレス発散してる気がするなあ。
172デフォルトの名無しさん
2020/10/20(火) 06:46:57.60ID:RpHsdUuc
ACCESSは後継者が少ないから先輩面したくても出来ないって人が多いのでは。
私も後輩が欲しい。育成では無く先輩面目的で(だからダメなんだろうね)。
173デフォルトの名無しさん
2020/10/23(金) 06:48:31.50ID:LIFEWQB+
Access2016を使っています
VBAを使いcsvファイルを取り込もうとしているのですが取り込み先のファイルの名前全てにピリオドが入っており、例1333.T.csv ピリオドが邪魔でファイル名を指定してもうまく取り込めません
何か良いアイデアはないでしょうか?
174デフォルトの名無しさん
2020/10/23(金) 17:06:19.46ID:jTOWYlOX
csvファイルに名前付けのルールとかがあって、規則性があるなら Left Mid Right
辺りを交えて工夫  全く一貫性が無いとかなら . を ppp とかにリネームする工夫
https://soudan1.biglobe.ne.jp/qa2877385.html  ←これってこと?
http://tsware.seesaa.net/article/214574472.html ←ここにもヒントが
175デフォルトの名無しさん
2020/10/24(土) 06:13:20.49ID:3Br09s+m
>>173
私はファイル選択、コピー、インポート、コピーしたファイルの削除、と言う手順でデータを取り込んでます。
176173
2020/10/24(土) 23:19:53.94ID:s9oXa8gi
>>174
ありがとうございます
ファイル名は規則性があるのでLeft Mid Rightを使ってドットをスルーして取り込みをするやり方を探してみます
>>175
こちらはファイルコピーをしてドットのない名前に変換してからインポートといった感じでしょうか初心者すぎてまだ色々理解できていないですが道筋がみえましたありがとうございます
177デフォルトの名無しさん
2020/11/21(土) 02:09:02.77ID:OkL4O3GG
ACCESS365?でadoの話。
昨日、テーブルメンテナンス用にプログラム書いて、テストでupdateメソッド行をコメントアウトして実行したのにレコードが更新されて焦った。幸い意図した通りの更新が出来たので問題は無かったのだが、こんな事有る?
178デフォルトの名無しさん
2020/11/21(土) 19:58:38.03ID:4nufVV0K
通常ではあり得ない動作ですから
accdbが破損しているか
思い違いしているか
じゃないですかねぇ
179デフォルトの名無しさん
2020/11/22(日) 23:10:13.61ID:DuDUZZqW
だよね、自分の事じゃなければ私もそう思う。明後日に追試してみます。
180デフォルトの名無しさん
2020/11/25(水) 18:43:23.08ID:q3XRT9ff
>177
ADOだと、Updateメソッド実行しなくてもレコードが保存される条件があったはず

https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/update-method-ado
>Update メソッドを呼び出すより前に追加中または編集中のレコードから移動すると、ADO によって自動的に Update が呼び出されて変更内容が保存されます。
181デフォルトの名無しさん
2020/11/26(木) 22:16:38.24ID:jD11+CM5
>>180
これか、ありがとう。
だとしたらupdateメソッド要らなくね?よく分からんが。
182デフォルトの名無しさん
2020/11/27(金) 16:20:14.12ID:j3fR6c+j
レコード移動しないけど変更を保存したいときに必要だろう
183デフォルトの名無しさん
2020/11/29(日) 20:06:15.16ID:k+jvWZ30
>>182
それはそうね
184デフォルトの名無しさん
2021/01/11(月) 16:27:04.20ID:HFGgd7VU
ACCESSのSQLでビット比較ってどうすればいいですか
(value & 0x10) == 0x10 みたいに特定のビットが立ってるか比較したいのですが
185デフォルトの名無しさん
2021/01/11(月) 17:56:37.60ID:qzYYjSUA
できるかわかりませんが、
(value and &H10) = &H10
だとダメですか?
186デフォルトの名無しさん
2021/01/12(火) 19:10:42.78ID:f1Ulh51r
>>185
試してみます、ありがとうございます
187デフォルトの名無しさん
2021/01/12(火) 19:16:56.91ID:f1Ulh51r
ダメでした
andを&に変えてもダメでした
188185
2021/01/12(火) 19:30:22.83ID:sGnBc5NV
そっか、SQLのAND演算子になっちゃうのか… &も文字列の結合演算子とみなされちゃうのかな?

&H10のビット限定なら、
(value \ 16) MOD 2
でいけそうですが、他にもパターンがあるでしょうから…
189185
2021/01/12(火) 19:34:25.38ID:sGnBc5NV
何より分かりにくいですねw
整数除算(\)で該当のビット位置を一番右にずらして、MODでそのビットを取り出します
190185
2021/01/12(火) 19:49:06.45ID:sGnBc5NV
16 じゃなくて &H10 と書く方が取り出すビットと一緒で分かりやすいですね(うまくゆくかはわかりませんが)

(value \ &H10) MOD 2
191185
2021/01/13(水) 02:15:13.93ID:+GyFVgd4
連投すみません
188案は value が long型だとして、値が負数のとき正しい結果にならないことがあります
ごめんなさい
192デフォルトの名無しさん
2021/01/13(水) 17:32:20.96ID:Mb95xbD5
>>188-191
親切にありがとうございます。
\とか使えるのは知りませんでした。
試してみます
193デフォルトの名無しさん
2021/01/13(水) 17:50:48.61ID:+yZZ5ziS
Windows10、Access365です。

Excelファイル上のデータに対して、ADOでアクセスして、データを取り込んでいるのですが、時間がかかります。
時間を短縮する方法はないでしょうか。

データは1ヶ月分9万件程度ですが、Accessのテーブルに取り込むのに、7分程度かかります。

テーブルのレコードの追加は、データ1件1件に対して、ADOのAddNewメソッド、Updateメソッドで追加しています。

試しに手動でAccessのインポート機能を使用して1ヶ月分のデータを取り込んでみたのですが、時間はかからなかったのですが、F20、F21など、空白の列まで要求されました。
そのためこの手段はあまり良くないと思っています。

レコードセットを一気にInsertする方法とかないでしょうか。
よろしくお願いします。
194デフォルトの名無しさん
2021/01/14(木) 01:33:57.64ID:yNTWs1ET
一件一件Updateするんじゃなくて、UpdateBatchでバッチ更新してみるとか
195デフォルトの名無しさん
2021/01/14(木) 01:41:15.38ID:yNTWs1ET
>>187
ふつうに>>185でできるはずだけど

valueの型が数値じゃないんじゃ?
196デフォルトの名無しさん
2021/01/14(木) 03:34:32.57ID:eeXKDacn
>>193
レコードセットで要求の動作はできないと思われます
以下はレコードセットを使わない方法になります
前提として
・現在取込時にレコードセットを編集していない
・SQL が書ける

INSERT 文で
・「IN 句」に Excel ファイルを指定
・追加先テーブルに Access テーブルを指定
これでインポートと同等のパフォーマンスになると思います

詳細は MS のリファレンスを参照
https://docs.microsoft.com/ja-jp/office/vba/access/concepts/miscellaneous/in-clause-microsoft-access-sql
今(.xlsx)だと EXCEL 12.0 になります
197デフォルトの名無しさん
2021/01/14(木) 05:18:36.84ID:ecyWCD0F
知恵袋はあてにならんくて
198デフォルトの名無しさん
2021/01/14(木) 12:53:46.92ID:kpvbRWbL
>>196
ありがとうございます
試しに1行をInsertしてみたところ、3分程度で処理できました。
ただ、.AddNewの方も、同じデータで3分-7分のくらいで処理できたので、思ったよりも処理速度は改善しませんでした。
あと、Nullだけのレコードが入ってしまうことも難点でした。

取り込みたいデータを取り込めたのと、列が30列くらいあり書き換えに時間がかかるので、一旦は今のままでいこうと思います。

ただ、今後も同じようなデータの取り込みがありそうです。
他に効率的なデータ入れ込み方法がありましたら、お教えいただけると幸いです。
199デフォルトの名無しさん
2021/01/14(木) 16:43:18.02ID:eeXKDacn
>>198
ループ中の AddNew を SQL の INSERT に置き換えたのでしょうか?
インポート対象(9万件程度)を1度の INSERT で行います
Null レコードは Where で除外可能かと思います

現実的なのは SQL 直発行かインポート機能の2択かと思います
インポート機能も定義を固めれば使い物になります

効率というのは人によって変わります
普段からコードに触れている人なら VBA からの SQL 発行が効率的
コードは書かないが Access を使い慣れている人ならインポート機能やクエリ定義が効率的
両者の方法とも取り込み実行時間はほぼ同じです
200デフォルトの名無しさん
2021/01/14(木) 18:14:16.61ID:EmIfgllR
>199
いえ、INSERT SELECTからの列指定をして一気に入れ込みました。実験的に1列のみを。

インポート機能とSQLでの処理は速度が違う気がするのですが本当でしょうか?
テーブルへの書き込み方が根本的に異なるような気がします。

DoCmd.TransferSpreadsheet はぜひ使えるようになっておきたいですね。
エラーがよくわからないので今まで使っていませんでした。
201デフォルトの名無しさん
2021/01/14(木) 21:01:21.37ID:yNTWs1ET
>>200
全体で1トランザクションになるようにトランザクション張るか
UpdateBatchで更新するか試してみてくれ
202デフォルトの名無しさん
2021/01/14(木) 23:19:32.20ID:KOTB1sbE
>>201
ありがとうございます
参考にしながらやってみます。
https://www.google.co.jp/amp/s/foolexp.wordpress.com/2011/11/07/%25E5%2588%2587%25E6%2596%25AD%25E3%2581%2597%25E3%2581%259F%25E3%2583%25AC%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2589%25E3%2582%25BB%25E3%2583%2583%25E3%2583%2588%25E3%2581%25A8%25E3%2583%2590%25E3%2583%2583%25E3%2583%2581%25E6%259B%25B4%25E6%2596%25B0%25E3%2583%25A2%25E3%2583%25BC%25E3%2583%2589/amp/

https://docs.microsoft.com/ja-jp/sql/ado/guide/data/sending-the-updates-updatebatch-method?view=sql-server-ver15

あと、トランザクションの以下のコードですが、参考にしようと思うのですがこれは全体で1トランザクションになっていますか?
https://excel-excel.com/tips/vba_299.html
203デフォルトの名無しさん
2021/01/15(金) 12:06:52.83ID:Z+pTsb/B
>>199
もう一度SQLでやってみたところ、インポートと同じ時間で処理できました。
ありがとうございます

>>201
UpdateBatchでは処理時間に違いがありませんでした
レコードセットへの書き込みに時間がかかっているのかもしれません。
ありがとうございます
204デフォルトの名無しさん
2021/01/16(土) 21:45:45.19ID:wM/4uvwh
>>161
資格をモチベにしてる
205デフォルトの名無しさん
2021/01/26(火) 12:20:07.19ID:pY3ojVqI
ウチの社内の情報システムの制限でwindowsカメラアプリが制限されてるんだけど、VBAで無理矢理動かせないだろうか、、、
いろいろ検索してみても古い情報しかなくて、、
64bit版でも出来るようなプログラムの見本とか有れば助かる。
206デフォルトの名無しさん
2021/01/26(火) 12:31:00.16ID:bIVSUY/u
そんな事してバレたら懲戒処分にならない?
207デフォルトの名無しさん
2021/01/26(火) 21:32:09.76ID:0moyOenU
>>206
少し言い方が悪かったかな。

端末でWEB会議してるから、カメラを使うのは問題無いんだけど、静止画を撮るソフトが入っていないもんで、静止画を撮ってDBと紐づけたいってなると、できなくて。
小規模グループでAccess使ってるから、システムに相談しても本気でかけあってくれなくて、、
それだったらVBAでどうにかならないかと思って。
208デフォルトの名無しさん
2021/01/26(火) 22:49:05.99ID:5iMVHv+0
>>207
より悪いんだけど
209204
2021/01/27(水) 17:26:57.82ID:Nmg5vWMl
スタンダード受かった(^ω^)v
210デフォルトの名無しさん
2021/01/29(金) 13:44:54.10ID:Xkyf+iIu
>>209
もめでとう!
資格は財産!
凄いなスタンダードは
211デフォルトの名無しさん
2021/01/29(金) 16:32:16.97ID:SG5MocSx
>>210
ありがとう。マイナー資格のせいか、
テキストは悪評にも関わらず他に選択肢ないし、
そのテキストもアプリもやたら高いけど、
一発合格のために全部ちゃんと買ったわー。
212デフォルトの名無しさん
2021/01/31(日) 10:42:42.16ID:/4jghnKY
VB自体マイナーよりなのがね。。。
参考書の著者は名のある人(武藤玄さん?)だから安心でしょ
213デフォルトの名無しさん
2021/02/01(月) 19:30:44.14ID:JChayj2G
「課題テーブル」 の項目「ファイル:添付ファイル型(拡張子は.xlsx)」をSQLで取得して(1)、
そのファイル名を変更して保存(2)しようと思っています。
(2)の処理は問題ないのですが、肝心な(1)の処理が分かりません
SQLだと以下のような感じかと思うですが、これだと、「ファイル」の名称も取得すらできないようです。
なにかしらヒントをいただけないでしょうか。
検索にヒットするようなキーワードでもかまいません。
よろしくお願いいたします。
"SELECT ファイル  FROM 課題テーブル where ID = 1" (件数は1件)
214デフォルトの名無しさん
2021/02/01(月) 20:47:30.12ID:g0s2XOHS
ファイルを取り出したいのか、ファイル名を変えたいだけなのか、何がしたいのかがわからない。
215デフォルトの名無しさん
2021/02/01(月) 20:48:57.97ID:g0s2XOHS
ファイルをSELECTするとファイルが出てくるというのは奇妙な発想だな
216デフォルトの名無しさん
2021/02/01(月) 20:52:05.66ID:1CLvOTQ1
>>214
ファイルを取り出したいんだけど、
SQLでなくクエリーでやるべきなの?
先日Access始めたから見様見真似。

添付ファイルを取得すれば、renameして保存するところはわかるんだけど。
217デフォルトの名無しさん
2021/02/01(月) 20:58:59.00ID:90ziZ1xl
エクセルファイルはAccessには入ってないだろ
フォルダから取り出すのか?
218デフォルトの名無しさん
2021/02/01(月) 20:59:30.52ID:90ziZ1xl
何がしたいのかマジで分からんw
219デフォルトの名無しさん
2021/02/01(月) 20:59:46.61ID:1CLvOTQ1
Accessのテーブルの添付ファイル型の項目に入っている
220デフォルトの名無しさん
2021/02/01(月) 21:01:37.65ID:90ziZ1xl
そのアドレスをエクセルで開いてリネーム保存すればいいじゃん
221デフォルトの名無しさん
2021/02/01(月) 21:03:39.26ID:90ziZ1xl
Dim MyExcel As New Excel.Application

とか使って
222デフォルトの名無しさん
2021/02/01(月) 21:12:34.68ID:1CLvOTQ1
>>221
それ使ってるんですけど添付ファイル型ってchar型とかと同じように扱えれるんですかね、
よろしければもう少しヒントを。
223デフォルトの名無しさん
2021/02/01(月) 21:22:03.72ID:1CLvOTQ1
ファイルをディスクのどこかに保存するのは、SaveToFile メソッドですかね?
なんか使えそうに思うけどいかがですか?
224デフォルトの名無しさん
2021/02/01(月) 21:43:47.01ID:FgW8bRhe
そんな新しいAccessなんて持ってないから知らん
225デフォルトの名無しさん
2021/02/01(月) 21:44:43.65ID:90ziZ1xl
https://oshiete.goo.ne.jp/qa/8167605.html

添付ファイル型はレコードセットになっていて
その中のフィールドのひとつ(3つ目。つまりF(2))がファイルネームになっていて、
それを取得する。らしい。
226デフォルトの名無しさん
2021/02/01(月) 21:45:48.50ID:90ziZ1xl
>>223
普通にSaveAsじゃあかんの?
227デフォルトの名無しさん
2021/02/01(月) 21:48:22.88ID:c76bdQcs
ありがとうございます。
少しヒントが得られたかも。
明日試してみます。
228213
2021/02/02(火) 11:31:56.15ID:UTRQGX0/
添付ファイル型データのデータとファイル名取得が出来たので
参考に記載します。ありがとうございました。

http://www.proton.jp/main/windows/access-vba.html
(参考URL)添付ファイル型フィールドのファイルを開くには

コーディング抜粋
----------------------------------------------------------------
Dim SQL, fileName As String
Dim DB As DAO.Database
Dim RS,RS2 As DAO.Recordset

Set DB = CurrentDb
'なお、下記「フアイル」は「.xlsx」形式のデータ
SQL = "SELECT ファイル FROM テストテーブル where ID = 1 ; "
Set RS = DB.OpenRecordset(SQL)

'「ファイル」データ取得
Set RS2 = RS.Fields(0).Value

'「ファイル」データファイル名称取得
fileName = RS2.Fields("FileName").Value

------------------------------------------------------------------------------------
229デフォルトの名無しさん
2021/02/02(火) 14:27:49.60ID:CQc47MX2
それ、SQLとRSは無駄にVariantになってないか?
230デフォルトの名無しさん
2021/02/04(木) 15:46:42.10ID:QbGo6q9b
OLEオブジェクト型はどうやってSQL(select 文)で抽出するの?
231デフォルトの名無しさん
2021/02/04(木) 20:11:15.64ID:XRB3PpKu
select文は普通に列名とテーブル指定するだけじゃないのか?
そっからどうやってデータ取得するかはどうやってDBアクセスしてるかによるんじゃね
とりあえずDAOかADOかとバージョンぐらい書け
232デフォルトの名無しさん
2021/02/04(木) 20:23:44.53ID:w6PAg1HV
>>228
ファイルを取得したいと言っていたのに、ファイル内のデータでよかったのか?
233デフォルトの名無しさん
2021/02/05(金) 00:26:34.08ID:OHtcWSU6
VBSでmdbに接続してaddnewしてupdateするだけの簡単なスクリプトの挙動がおかしい。

sub や Functionにして callすると成功するくせに、subじゃなくて素のスクリプトだと何もしない。
ちなみに読込みはどっちでも成功する。
なぜ、addnewのときだけ、プロシジャーである必要があるのだろうか?
234デフォルトの名無しさん
2021/02/05(金) 00:34:27.19ID:OHtcWSU6
vbseditがおかしいらしい。
適当なディレクトリに保存して実行したら素のスクリプトでも成功した。
わけわらん。
235230
2021/02/05(金) 10:13:06.16ID:s99X7duh
SELECT文でOLE型のファイル(拡張子.docx)を読み込んで保存しようとしています。
処理を行ったところ、「ファイル『temp.xls』は内容に問題があるため、開けませんでした。」という
メッセージが出ますが、「開いて修復」すれば元のファイルと同じに見えるので
SELECT文で項目だして、書き出すまである程度できているようなんですが、
どこがおかしいのでしょうか、ご意見をいただけたら幸いです。

参考サイト
https://www.moug.net/tech/acvba/0080032.html
画像を読み込む(GetChunkメソッド)

ソース一部抜粋

'OLE型用変数
Dim bytFile() As Byte
Dim nFileNo As Integer
Dim nSize As Long
Dim olename As String

Set DB = CurrentDb
    '項目「OLE型データテスト」抽出のSELECT文の実行
Set rs = DB.OpenRecordset(sqlText)

nSize = rs.Fields("OLE型データテスト").FieldSize
bytFile() = rs.Fields("OLE型データテスト").GetChunk(0, nSize)

nFileNo = FreeFile
Open "C:\Users\testuser\Documents\test.docx" For Binary As #nFileNo
Put #nFileNo, , bytImage()
Close #nFileNo
236デフォルトの名無しさん
2021/02/05(金) 13:09:23.30ID:7kBPI4G7
VBS って、まだシステムで使えるのか?

保守されてる?
237デフォルトの名無しさん
2021/02/06(土) 11:30:21.47ID:PohEB++t
bytImage() の中身は docx に直接上書き保存できるものなのか?
238デフォルトの名無しさん
2021/02/07(日) 12:21:08.72ID:EDRo6Y49
>>236
Windows 10そのものがまだ使っています。
239デフォルトの名無しさん
2021/02/26(金) 20:55:30.10ID:BHdQltm/
AccessからOracleに接続して、テーブル定義を取得しようとした場合、Currentdbにリンクテーブル作成してtabledefで取得するしかないですかね?
240デフォルトの名無しさん
2021/02/26(金) 23:30:20.77ID:aSS4VuLP
>>239
そんな訳ないだろ
お前の頭には無理ってだけだ
241デフォルトの名無しさん
2021/02/26(金) 23:38:57.64ID:JyNwBwDQ
>>240
どうやってやっているんですか?
そんなに人に偉そうにいうくらいならお詳しいんですよね?
242デフォルトの名無しさん
2021/02/27(土) 00:39:35.09ID:lzDnqtNz
一応言っとくが、あわしろ氏は権威だぞ。
243デフォルトの名無しさん
2021/02/27(土) 03:37:26.48ID:oWYDZ6ol
>>241
だからお前みたいな馬鹿には無理ってだけだ
244デフォルトの名無しさん
2021/02/27(土) 09:00:35.16ID:kkUl7IkZ
わからないんだろ?
教えられないのに質問スレでマウント取って
かっこいいね!
245デフォルトの名無しさん
2021/02/27(土) 13:52:55.39ID:oWYDZ6ol
馬鹿が聞き出そうとして必死だな
元の質問が、
「しかないですかね?」
だから、
「他にある。馬鹿にはわからないだけ」
これで完結
246デフォルトの名無しさん
2021/03/12(金) 04:20:10.68ID:U5Mc6cIw
クライアントPC複数台にコピーしてあるaccdbの更新を自動化したいのですが、上手い方法が有ったらアドバイス下さい。
今は、終了時に更新版があればコピー専用のaccdbを開く、という方法です。
時々コピーに失敗したり、更新後の起動が出来なかったり、なんかスマートに出来ません。
247デフォルトの名無しさん
2021/03/12(金) 07:03:59.49ID:bg4PRHHU
それぞれのPCに共有サーバーでクライアント各々に1つのものを使ってもらえば?
248デフォルトの名無しさん
2021/03/12(金) 07:47:36.33ID:vZYfq0zb
え?
249デフォルトの名無しさん
2021/03/12(金) 15:03:23.20ID:6lWZMdzy
>>247 コメントありがとうございます。

共有フォルダに置いたテーブルだけのバックエンドや、データベースサーバーにテーブルがあり、フロントエンドにリンクして使ってます。
各クライアントのフロントエンドを更新したいのです。
フロントエンドを共有フォルダに置いて皆んなで使うと壊れやすい、50台のクライアント全て閉じてもらわないと更新できないなどの問題があり、現在のかたちで運用しています。
250デフォルトの名無しさん
2021/03/12(金) 16:26:24.53ID:ZUwUvURf
基本的には別ブログラム(Accessでなくてもいい)で上書きしてもらうしかないけど
タスクに登録して再起動してもらうとか

さがせばそれ用のツールとかありそうだけどな
251デフォルトの名無しさん
2021/03/12(金) 18:43:58.19ID:6lWZMdzy
>>250
WSHで一日一回各クライアントで実行する例があったんですが、やってる事は同じなのです。なんかスマートな方法無いのかなあ。
もう少し探してみます。お騒がせしました。
252デフォルトの名無しさん
2021/03/17(水) 08:24:13.18ID:o9MkZCaQ
他フォームや親フォームのコマンドを実行する時,
Call Forms!フォーム名.ボタン_Click
だと動かないのに,
With Forms!フォーム名
.ボタン_Click
End With
にすると動くのは私だけ?
253デフォルトの名無しさん
2021/03/17(水) 08:27:13.40ID:o9MkZCaQ
まちがった.
254デフォルトの名無しさん
2021/03/17(水) 08:27:40.08ID:o9MkZCaQ
With Froms!フォーム名
255デフォルトの名無しさん
2021/03/17(水) 08:31:05.18ID:o9MkZCaQ
スレ汚しすみません、やり直し。

他フォームや親フォームのコマンドを実行する時,
Call Forms!フォーム名.ボタン_Click
だと動かないのに,
With Forms!フォーム名
Call .ボタン_Click
End With
にすると動くのは私だけ?
256デフォルトの名無しさん
2021/03/23(火) 22:25:21.29ID:OYDSqGqD
レポートのテキストボックスが関数を呼び出すことがあるんだけど、それを検索する方法はないですかね?
VBEをいくら検索しても、ある特定のFunctionをCallしているのがなんなのかさっぱりわからなくて途方に暮れた後にレポートのテキストボックスと気づいたときの疲労感は凄かった。
スマートに一発検索する方法ありますか?
257256
2021/03/24(水) 19:23:21.05ID:Oy88L6kY
どうも、ないようなので、for eachループを回して全部テキストにしました。
レポートの全部のコントロールを書き出したら24MBになりました。
コントロールから直接Callするのはお行儀が良くないですね。
258デフォルトの名無しさん
2021/03/24(水) 19:53:42.42ID:Oy88L6kY
DoCmd.PrintOut
同じコードなのに、一方ではちゃんと複数枚印刷して、もう一方では常に1枚しか印刷できない。
ググると似たトラブルが見つかる。バグなんだろうか?ご存じの方いますか?
259デフォルトの名無しさん
2021/03/25(木) 18:29:57.87ID:25o3kYjY
Access365 Windows10です。

Excel上からVBAでDAOにてAccessのクエリのレコードセットを取得しています。
Access上のクエリで表示されるレコード数と、Excel VBA DAOから取得したクエリのレコードセットのレコードの数が異なり、原因がわかりません。

それぞれのレコード一覧を出力してみると、あるフィールド(IIf(・・・,”対象外”, “督促対象”)としている部分) の値が、Access上のクエリでは「対象外」、Excelから取得したレコードセットでは「督促対象」となっているため、抽出条件が誤認識されてレコード数が異なることに気がつきました。

クエリの他の抽出条件にワイルドカード等を使っていないと思います。

クエリをDAOで取得した場合に、違いが生まれる原因を推測できる方はいらっしゃいませんでしょうか? 回避策があればお教えいただけると助かります。
260デフォルトの名無しさん
2021/03/26(金) 12:11:20.45ID:x01Nq0VC
>>259
Accessのテーブルを、Excelからのリンクテーブルにしているものがあるのですが、クエリを開いている状態で、ExcelからDAOでレコードセットを取得すると、テーブルにしているExcelファイルが自動で開かれます。
その状態で取得したレコードセットの内容がおかしいことに気がつきました。

なぜレコードセットの値が異なるのかは、不明なのですが、テーブルにしているブックが開かれているとエラーを出力するようにして、回避しました。
261デフォルトの名無しさん
2021/03/26(金) 12:30:39.51ID:9TlDuTMy
わからん すまん
262デフォルトの名無しさん
2021/04/04(日) 17:14:14.07ID:gjYxCKFw
基本的なことで申し訳ないんだけど
https://www.helpforest.com/access/amv_vba/ac080004.htm
に書いてある開いてるファイルのバックアップとるコードで

strNameCopy = Left(strNameMoto, Len(strNameMoto) - 6) & "_" & Format(Now, "yymmdd") & ".accdb"

ってのがあるんですが Left(strNameMoto, Len(strNameMoto) - 6) の意味がわかりません。なぜ -6 なんでしょうか?
それと、
Format(Now, "yymmdd") だと 210404 になりますが”yy_mmdd_hhmm” としました
ここを 21_0404_17h15m とするにはどうしたらいいですか?
hやmの入れ方がわかりません
263デフォルトの名無しさん
2021/04/04(日) 17:38:22.47ID:26lFIPnO
メッセージボックスは自動で閉じないしWSHもmessageboxtimeoutAもうまくできませんでした
通知の代わりに小さいフォームを0.5秒ほど表示させて閉じたいのですが、どのように記述したらいいですか?
264デフォルトの名無しさん
2021/04/04(日) 21:11:55.53ID:3M5QmD23
>>262
-6は元ファイル名の".accdb"を取り除いてると予想。
"yy_mmdd_hh""h""nn""m"""で良いかな。
うまく行かない場合はグーグル先生に聞いてみて。
265デフォルトの名無しさん
2021/04/04(日) 21:24:13.07ID:3M5QmD23
>>263
ちっさいフォームをダイヤログ形式で作成して、タイマーを500m秒に、タイマーイベントで
DoCmd.Close acForm, me.Name
だとどうかな。
266デフォルトの名無しさん
2021/04/04(日) 22:50:03.97ID:gjYxCKFw
>>265
開くのはどうするんですか?
267デフォルトの名無しさん
2021/04/04(日) 22:50:34.96ID:gjYxCKFw
ああこれで開いて閉じるのか
268デフォルトの名無しさん
2021/04/04(日) 22:56:05.15ID:gjYxCKFw
>>264
取り除かないと拡張子が2つになってしまうからですね
そうしないと拡張子が2つついてしまうんですね
269デフォルトの名無しさん
2021/04/07(水) 00:28:19.15ID:rJDYR4sC
レポートの詳細の一番下に線引くのってどうやるの?
フィールドや仕切り線だと線の真ん中が指定位置にくるようで、線の太さ分はみ出てしまう
270デフォルトの名無しさん
2021/04/07(水) 05:48:31.03ID:Vznju2ao
詳細の最終行終わりにだけ線を引く方法が有るのか、知らんかった。
私はグループフッタの上に線を配置します。
271デフォルトの名無しさん
2021/04/07(水) 12:38:41.43ID:RzHskyO4
>>269
VBAでEOFでVisible=trueにする
272デフォルトの名無しさん
2021/04/07(水) 15:58:13.17ID:rJDYR4sC
>>271
図形の移動ってこう書くらしいんだけど

Sub TopAndLeftSamp1()
  Dim Sh As Shape
  For Each Sh In ActiveSheet.Shapes
  Sh.Top = Range("B2").Top
  Sh.Left = Range("B2").Left
 Next Sh
 End Sub

それはどう書くんですか?
太い線でもはみ出ないように一番下にくるんですか?

>>270
終わりにだけ、じゃなくて仕切り線を詳細の高さの最後に、はみ出ないようにおきたいということです
273デフォルトの名無しさん
2021/04/07(水) 16:12:27.97ID:bHi8pMA7
>>272
それExcelじゃん
Accessのレポートの話じゃ無いの?
274デフォルトの名無しさん
2021/04/07(水) 23:16:36.79ID:rJDYR4sC
>>273
ホントだ
ネット検索してコピペしたから間違えた
ACCESSでも似たようなので線書いたことあるんだけど

マウスで一番下にやってもラインの真ん中が一番下にくるみたいで、下半分がかけてしまう
275デフォルトの名無しさん
2021/04/08(木) 23:29:31.27ID:JQVqmXIG
>>269
LINEで描けば自由自在
斜め線も描けるから試してみ
(あまり出番はないけど)
276デフォルトの名無しさん
2021/04/09(金) 00:19:55.63ID:Gteazii/
いや韓国製はちょっと……
277デフォルトの名無しさん
2021/04/09(金) 04:42:31.41ID:qNVyDJXN
ACCESSに将来はあるんだろうか
ライバルになるファイルメーカーもコロコロ社名変わってあやしいしもはや大規模事業者に焦点をあててるっぽい

mysqlとWeb系でつくるのがスタンダードになりつつあるの?
軽く勉強しようとしたけどVBA程度の知識じゃわけわからんかったというか何を勉強すればいいのかもよくわからん
sqlにhtml とcssも覚えなきゃならなくて
レポートとかどうやってつくるのかわからんし印刷関係はブラウザに依存するらしい
上記でGUIやレポートまでつくれるのかすらわからない
278デフォルトの名無しさん
2021/04/09(金) 22:02:57.20ID:p4gVUybA
>>277
将来は分かりませんが代わりのツールは少ないですね
Officeは最低10年間はサポートされるのでスグには無くならないでしょう

たまにweb系の話が出るのはデスクトップアプリかブラウザアプリかの話ですよね
個人的にAccessの代わりにweb系というのは少し飛躍している様にも思えますが
どの基盤を使うかは用途や運用保守のし易さによって決めるものですのでその人次第です
279デフォルトの名無しさん
2021/04/10(土) 12:39:36.27ID:UMFLPSSB
Access全盛期と違って、開発環境やDBが無償で提供されているし
htmlをテキスト出力するだけできれいなレポートも作れる
UIを自分でいじりながらデータ入力していくような人種にはいいんだが希少種だろう
280デフォルトの名無しさん
2021/04/10(土) 14:43:14.97ID:UjDtjnXq
>>279
例えばどうするの?
281デフォルトの名無しさん
2021/04/11(日) 09:47:57.70ID:5s7yLoxe
>>277
Accessはデータベースと言うより帳票ツールだよ
FileMakerはデータベースとしての機能が充実してるがFileMaker使うぐらいならMySQL、PostgreSQLで代替えが効く
どっちかと言うとFileMakerがライセンス料金の高さも有って残らないと思う
282デフォルトの名無しさん
2021/04/11(日) 11:30:54.71ID:5s7yLoxe
FileMakerより(MySQL or PostgreSQL)+Accessで安くデータベース&クライアントシステムを作れると思う
283デフォルトの名無しさん
2021/04/11(日) 17:50:34.38ID:X3jcs1bB
データベース部分よりもACCESSのフォームやレポートをつくる機能が貧弱なんだよね

>>282
MySQL or PostgreSQLに以降するのってどの規模になってから?
エクセルの延長線で使うレベルだとACCESSのままでいいですよね?
284デフォルトの名無しさん
2021/04/11(日) 21:28:08.72ID:Zjk0ZDQj
ファイルメーカーはフォームやレポートの機能がリッチなの?
ファイルメーカーが良いかもよ。
285デフォルトの名無しさん
2021/04/11(日) 21:33:55.74ID:X3jcs1bB
>>284
リッチどころじゃないよ
ACCESSがwin95
FMは10
286デフォルトの名無しさん
2021/04/11(日) 22:19:59.40ID:Zjk0ZDQj
そりゃファイルメーカーに決まりだね
287デフォルトの名無しさん
2021/04/12(月) 10:48:48.79ID:rGKItn7h
>>283
>>Excelの延長線上
Access mdbはある一定容量で破綻するからね
Excelで収まってるレベルでもMySQL Community EditionやPostgreSQLに移行した方が無料で使える訳だし
Excel,Access自体ライセンス必要だしライセンスフリーで使えるなら、それに越した事無い
288デフォルトの名無しさん
2021/04/12(月) 10:51:16.61ID:rGKItn7h
FileMakerのメリットはWebサービス公開がし易いって所だよな
そういう使い方するにしてもLAMPとか使う方が安く簡単にWebサービス開始出来る
289デフォルトの名無しさん
2021/04/12(月) 11:40:02.98ID:Ey8PGUUo
>>285
ファイルメーカーの45日無料評価版をインストールして少しいじってみました.
いまさら移行を考える程のメリットは感じられませんでしたが,確かにUIはシンプルで使いやすそうでした.
290デフォルトの名無しさん
2021/04/12(月) 12:45:07.60ID:MyLZJXYd
>>289
>>いまさら移行を考える程のメリットは感じられませんでしたが,確かにUIはシンプルで使いやすそうでした.

それでライセンス料金は高い
あまりメリットが無い
291デフォルトの名無しさん
2021/04/12(月) 16:33:34.27ID:Zar6nVa9
>>287
PostgreSQL使うとして一度設定してればACCESS使う感覚でレポートやクエリをつくれるんですか?
292デフォルトの名無しさん
2021/04/12(月) 17:49:57.50ID:45/NLIkc
>>291
フロントエンドはAccess利用する
PostgreSQL固有のUIツールは無い
293デフォルトの名無しさん
2021/04/12(月) 17:51:00.80ID:iBadv1fh
桐にしとけ
294デフォルトの名無しさん
2021/04/12(月) 18:18:26.93ID:NqjzProv
>>292
ACCESSをフロントエンドで使う場合、という意味でした
295デフォルトの名無しさん
2021/04/12(月) 18:32:01.84ID:45/NLIkc
>>294
PostgreSQLのテーブルにAccessからLinkはるだけ
そこでクエリー駆使しながらFormやレポート作れる
FileMakerより安く作れる
296デフォルトの名無しさん
2021/04/12(月) 21:43:20.13ID:5xDeJx97
>>293
桐の価格を調べてきました
40台で使用するために1,115,400でした
機能がどうとか以前のお話しでした
297デフォルトの名無しさん
2021/04/13(火) 07:41:55.91ID:b5G9r+g0
>>292
Accessの外部DBなら親和性の高いSQL Serverが多数だとは思います
Expressなら無料でライセンスも商用OKです
機能面もAccessで扱うDBサイズならお釣りが来ます

あえてPostgreSQLを推す理由を教えて欲しいです
無料以外のメリットはありますか?
298デフォルトの名無しさん
2021/04/13(火) 11:23:44.71ID:3B0ES/zA
>>297
https://rainbow-engine.com/sqlserver-express-limitation/
ケースバイケースだがSQL Server Expressでも良いかも知れませんが
Linuxサーバーとかで稼働させる技術蓄積が少ない
PostgreSQL、MySQLはLinuxサーバーでの技術蓄積が多い
まさかWindowsサーバーでSQL Server Express動かすと思って無いか?
無償で構築したいからね
299デフォルトの名無しさん
2021/04/13(火) 13:20:04.54ID:b5G9r+g0
>>298
Access案件でLinuxサーバー導入はかなりのレアケースだと思います
Linuxに明るい個人ならそれでも良いですが
一般的な企業では運用リスクと保守費用の面から現実的ではないのです
Access案件でその様な提案をしたらほぼ蹴られてしまいます

技術蓄積についてもAccess+PostgreSQLよりAccess+SQL Serverの方が遥かに多いです
そもそもこのスレに相談に来ている方はLinuxサーバーを前提に話していないと思いますよ
300デフォルトの名無しさん
2021/04/13(火) 13:32:35.21ID:3B0ES/zA
>>Access案件でLinuxサーバー導入はかなりのレアケースだと思います
Linuxに明るい個人ならそれでも良いですが
>>一般的な企業では運用リスクと保守費用の面から現実的ではないのです
Access案件でその様な提案をしたらほぼ蹴られてしまいます

.NET COREとか提案したら蹴られるのか?
.NET CORE案件も相当数出てるよ
LinuxサーバーでDB,APサーバー運用するのは今や常套手段でしょ

>>技術蓄積についてもAccess+PostgreSQLよりAccess+SQL Serverの方が遥かに多いです

Windows製品ゆえ多いってだけだと思うよ

>>そもそもこのスレに相談に来ている方はLinuxサーバーを前提に話していないと思いますよ

Accessフロントエンドにした場合、サーバー側がWindowsサーバーしか前提としか無い、てのは狭量以外の何物でも無いと思うよ
301デフォルトの名無しさん
2021/04/13(火) 13:46:56.78ID:LjzwNZrT
Access案件でのサーバーなんて、(是非は別として)テキトーなPCの共有フォルダでのaccdb(mdb)の共有で賄ってるだけなんて珍しくも無かろう
302デフォルトの名無しさん
2021/04/13(火) 13:47:53.05ID:3B0ES/zA
中小企業にWindowsサーバー提案するってコストかかって仕方ない
CALの価格を知らないのかな?
中小企業ほどLinux導入し易いのに
303デフォルトの名無しさん
2021/04/13(火) 13:48:51.64ID:3B0ES/zA
>>301
適当なサーバーだから無償のLinuxで十分
304デフォルトの名無しさん
2021/04/13(火) 14:52:00.66ID:b5G9r+g0
>>300
.NET COREを挙げられてますが、Access案件での話です

Linuxサーバー自体は否定しません
実際Access外案件では昔より増えました

単純にAccessの外部DBにPostgreSQLを推す無料以外のメリットが知りたかっただけです
Linuxサーバーという予想外でしたが

長い間Access開発にも携わっており現実はほぼWindowsなんです
確かにAccessの機能自体は様々なデータソースが扱えますから
その意味では狭量と言われてしまっても仕方ありませんね
305デフォルトの名無しさん
2021/04/13(火) 14:55:38.30ID:3B0ES/zA
>>304
CAL払える企業なら問題は何も無いよ
現実はCALで苦しんでる中小企業が多い
そこを見越して提案出来るかだと思う
306デフォルトの名無しさん
2021/04/13(火) 20:50:49.88ID:b7IZM+9u
サーバーも含めて無料で構築したいだけなのにな
Windowsサーバー使ってCAL払い続けるなんて皆金持ってるんだなw
307デフォルトの名無しさん
2021/04/14(水) 06:25:02.05ID:iZ4KD1hd
コピー中のExcelのデータをACCESSにいれるときは、テーブル自体を表示させないとペーストできませんか?
308デフォルトの名無しさん
2021/04/14(水) 06:49:23.30ID:Y6ryzCuB
>>307
インポートが簡単です。
コピペは知らん、すまん。
309デフォルトの名無しさん
2021/04/14(水) 07:42:09.50ID:DQnn+aVQ
excel vbaでsql叩くのが確実
310デフォルトの名無しさん
2021/04/14(水) 08:49:11.55ID:iZ4KD1hd
>>309
初心者なのでイマイチわかりません
311デフォルトの名無しさん
2021/04/14(水) 10:15:39.10ID:G8f2jTvc
>>310
AccessからExcelよりのインポートすれば良い
https://www.crie.co.jp/chokotech/detail/375/
312デフォルトの名無しさん
2021/04/14(水) 10:16:31.17ID:G8f2jTvc
>>310
ExcelデータのインポートをAccessから実行すれば良い
313デフォルトの名無しさん
2021/04/14(水) 10:25:33.61ID:G8f2jTvc
>>310
インポートで出来る
314デフォルトの名無しさん
2021/04/14(水) 10:26:17.99ID:G8f2jTvc
>>310
import
315デフォルトの名無しさん
2021/04/14(水) 13:18:00.15ID:5eouqB2E
お前ら「コピー中」を無視するなよ
316デフォルトの名無しさん
2021/04/14(水) 13:26:51.89ID:g6z8n+hy
コピー中、なんてもともと出来ないべ
317デフォルトの名無しさん
2021/04/14(水) 18:59:43.46ID:Y6ryzCuB
クリップボードのデータを貼り付けるなら手作業をなぞってテーブル開いて新規レコードに位置付けしてペーストすれば良さそう。クリップボード操作するapiサンプルコードが何処かにあったような、すまんまた明日。
318デフォルトの名無しさん
2021/04/16(金) 09:00:21.71ID:V1Kjbl/r
試してないよ?
Excelで貼り付けたいテーブルと同じレイアウトのデータをコピーしてある状態で
DoCmd.GoToRecord,,acNewRec
DoCmd.RunCommand acCmdPaste
すると張り付いたりしないかな。
319デフォルトの名無しさん
2021/04/17(土) 16:25:08.91ID:beZyyPJh
OLEオブジェクトって手動じゃないと挿入できないの?
VBAでの挿入を試みているんだけど、似て非なるオブジェクトが作られてしまう。プロパティの数が少し少ない変なオブジェクトが作られて困ってる。
とりあえずレポートにオブジェクトをつくるのはCreateReportControl メソッドを使えばできるんだけど、リンク親フィールド、リンク子フィールド、値集合ソース、値集合タイプがないオブジェクトが作られる。
そのうえ、OLEタイプが読み取り専用だからOLEの設定が出来ない。
どうしたらいいのかな?
320デフォルトの名無しさん
2021/04/17(土) 17:21:36.76ID:rlSH46Cx
>>319
VBAプロジェクトでそのOLEオブジェクトを参照追加する必要有る
その前提を整えたらVBAで出来るんじゃ無いのかな
https://teratail.com/questions/279573
Formに画像追加する例
321デフォルトの名無しさん
2021/04/17(土) 17:43:49.92ID:beZyyPJh
>>320
手動なら非連結オブジェクトフレームを挿入するとオブジェクトの種類のダイアログが出てくるので、そこで種類を選びますね。
この作業をVBAでやっておけばいいということですね。
ちょっと読んでみますね。
322319
2021/04/17(土) 21:01:55.24ID:GNfw/saY
だめだああ
なにをやってもうまくいかない
323デフォルトの名無しさん
2021/05/07(金) 07:32:03.14ID:DloXWpsH
いまだにAccess 2.0を所有中
324デフォルトの名無しさん
2021/05/07(金) 12:12:51.35ID:nZH7MU+b
Windows3.1の頃? 95だったかな。
325デフォルトの名無しさん
2021/05/13(木) 02:39:37.83ID:fH5L5fl1
ACCESSで在庫管理や備品管理作っても出先でみることができません(Androidスマホなので)
みなさんどうしていますか?
Webシステムを組むほど大きいわけでもないので予算もありません

適宜レポートを作っておきExcelやPDFにしてクラウドにいれとくとかですか?
326デフォルトの名無しさん
2021/05/13(木) 04:25:52.50ID:HlQKEMAc
>>325
お前みたいな馬鹿には無理なだけ
327デフォルトの名無しさん
2021/05/13(木) 05:05:22.97ID:4K+rsr0c
あーそうかい‼💢
328デフォルトの名無しさん
2021/05/13(木) 06:42:53.98ID:l6yrLvBl
>>325
リモートデスクトップとかTeamViewerでWindowsにログインかな?
329デフォルトの名無しさん
2021/05/13(木) 07:15:26.91ID:Ak9zxoyZ
>>325
データベース更新後にEXCEL作ってクラウドに保管するのを自動化すれば充分な気がしますね。
330デフォルトの名無しさん
2021/05/13(木) 07:26:32.47ID:NATYYilK
そもそも、Windows 用のアプリはパソコン用だから、インターネットで使えない。
それに、文字コードも違うから読めない

インターネット用の表計算アプリを使えば?
331デフォルトの名無しさん
2021/05/13(木) 08:30:28.57ID:hOYLqCl+
ストアでMDBを検索したら見れそうなやついっぱいあるやん
332デフォルトの名無しさん
2021/05/13(木) 11:30:23.03ID:yB8C7/7J
>>325
Webアクセスする目的ならAccessよりFileMakerになるよ
そこまでするならデータベースをMySQLかPostgreSQLに移行してVB.NETでアプリ作る方が良いけどね
333デフォルトの名無しさん
2021/05/13(木) 11:48:19.49ID:63TpZ/FZ
クエリーが上手く作動して、ニコニコしながら、sqlビューへ切り替えてコピーして、VBEでペースト。
余計なカッコを取り除いてdebug.printに打ち出すと結果が違うことがある。
なにが原因なのかなあ?いまはADOでやってるけど、DAOならうまくいくもんかなあ?
クエリーのSQLとADOのクエリーが仕様が違うのかなあ?
同じMS謹製だからANSIとかなんとか気にしなくていいのかと思っていたけど、違うのかな?
334デフォルトの名無しさん
2021/05/13(木) 12:20:50.87ID:igbBK4jX
>>332
ファイルメーカーからハードル上がりすぎだろ
335デフォルトの名無しさん
2021/05/13(木) 12:36:51.71ID:yB8C7/7J
>>334
FileMakerはライセンス料高いからね
Visual Studio習得してアプリ作れるならその方が良い
Webサーバーは必要だけどね
336デフォルトの名無しさん
2021/05/13(木) 12:42:45.76ID:aIL5A3Qh
>>335
VB.netでwebサーバとか完全にもう別物ですやん
337デフォルトの名無しさん
2021/05/13(木) 12:55:37.00ID:GXeEY8R8
>>333
カナ?はカタカナにしろ
338デフォルトの名無しさん
2021/05/13(木) 13:09:30.39ID:yB8C7/7J
>>336
高いライセンス払う余裕有ればFileMakerで良いよ
現実は高いライセンス料払いたく無い企業が多いからね
FileMakerが普及しないのもこれが原因
339デフォルトの名無しさん
2021/05/13(木) 13:31:32.10ID:DinFNpWn
だからって一から自分でつくるってのは飛躍してない?
家建てるときにどこのメーカーがいいですか?
に対して自分で建てろといってるようなもん
340デフォルトの名無しさん
2021/05/13(木) 14:03:30.60ID:yB8C7/7J
>>339
自分で作れ、とは言って無いよ
ソフトウェアハウスの手を借りれば良い
341デフォルトの名無しさん
2021/05/13(木) 14:07:34.22ID:fH5L5fl1
>>340
ライセンス料より高い気が……
342デフォルトの名無しさん
2021/05/13(木) 14:56:12.91ID:HlQKEMAc
>>341
馬鹿には無理なのだから他人に金を出して頼むしかないだろ
馬鹿のくせに金を出さずに人にやってもらおうとか、ゆとりか?
343デフォルトの名無しさん
2021/05/13(木) 15:00:43.59ID:9/CKV48N
>>341
ランニングコストってのが有ってだな、、
FileMakerだとライセンス1回切りじゃ無いから
344デフォルトの名無しさん
2021/05/13(木) 16:59:09.51ID:fH5L5fl1
>>343
ソフトウェアハウスでも保守料かかるだろ
基本的には自分で改変できないし
345デフォルトの名無しさん
2021/05/13(木) 17:16:07.25ID:9/CKV48N
Web化って時点でファイルメーカー選ぶしか無い様な、、
外部からアクセスするしないが重要
346デフォルトの名無しさん
2021/05/13(木) 17:25:00.83ID:MH+VlhFF
外から見たいだけなら、リモートデスクトップでいいんじゃなかろうか
347デフォルトの名無しさん
2021/05/13(木) 17:25:32.84ID:HlQKEMAc
>>345
馬鹿
348デフォルトの名無しさん
2021/05/13(木) 17:48:02.70ID:9/CKV48N
>>345
それ有るの忘れてた
349デフォルトの名無しさん
2021/05/13(木) 18:13:16.22ID:6ddXJmx+
ACCESSで在庫更新したあとOneDriveフォルダにEXCELエクスポートします。
あとはスマホでもタブレットでも参照可能です。
350デフォルトの名無しさん
2021/05/13(木) 18:26:55.54ID:hOrZuwcL
デ、データアクセスページ……
351デフォルトの名無しさん
2021/05/13(木) 20:11:21.52ID:R/rAXCYS
>>345
「Web化って時点でファイルメーカー選ぶしか無い」
なぜこういう嘘を書くのか。それとも本当にそう思っているならそんな頭の弱い人は書かなきゃいいのに。
352デフォルトの名無しさん
2021/05/14(金) 10:03:38.95ID:wh02PaxN
>>350
実際使ってる例って有るのかな?
353デフォルトの名無しさん
2021/05/14(金) 10:10:19.21ID:A+WZ3bIw
>>352
とっくの昔にお亡くなりになったような記憶が…
354デフォルトの名無しさん
2021/05/14(金) 10:18:39.71ID:wh02PaxN
>>353
実例がほとんど無いね
https://support.microsoft.com/ja-jp/office/sharepoint-ロードマップの-access-services-497fd86b-e982-43c4-8318-81e6d3e711e8?ui=ja-jp&rs=ja-jp&ad=jp
Access Webアプリも無くなってる
ファイルメーカーの有利な点だな
355デフォルトの名無しさん
2021/05/22(土) 19:40:24.10ID:1Qe3fJgv
ちょっと前までGoogleでデータベース・サービス持ってたのにいつの間にかなくなっちゃたな。
最近VBAよりGASが面白くなってきたので手を出そうと思ってたのに。
やはり無料じゃGoogleも厳しいか。
356デフォルトの名無しさん
2021/05/27(木) 01:00:52.60ID:3lF12N8K
レポートやフォーム作るときに、拡大できないの致命的だよね
win標準の拡大ではぼやぼやで目がたえりれない
エクセルあたりでは普通に拡大できるのになあ
これだけでファイルメーカーに乗り換えようと思ったりしてよ
357デフォルトの名無しさん
2021/05/27(木) 02:13:23.53ID:J8UpNeL3
馬鹿がファイルメーカー、ファイルメーカーとしつこく繰り返しているから絶対に使わない
358デフォルトの名無しさん
2021/05/27(木) 08:19:11.99ID:qf3Pvmmz
と馬鹿が申しております
359デフォルトの名無しさん
2021/05/27(木) 12:00:09.01ID:3lF12N8K
FM→ACCESSときたけど
レイアウトつくるのはびっくするくらい大変
そして頑張っても前時代的なのになってしまう
金額の問題だけで以降したんだけどね
ACCESSは365についてるから無料みたいなもの
FMは約6万
360デフォルトの名無しさん
2021/05/27(木) 12:05:37.62ID:3lF12N8K
サブスクは5ユーザ からのみで年¥96,000
というびっくりプライス
361デフォルトの名無しさん
2021/05/27(木) 14:45:17.54ID:U0nLnJgd
Report は pdf 出力やろ常考
362デフォルトの名無しさん
2021/05/27(木) 15:51:14.66ID:ksqD/aLA
>>361
フィールドの位置とか外部ソフトでできるの?
363デフォルトの名無しさん
2021/05/27(木) 15:53:14.54ID:UBVWS17P
ACCESSでA4に収まるように8ptくらいのフィールド配置してたら目が痛くなって具合が悪くなったな
364デフォルトの名無しさん
2021/05/29(土) 06:45:06.05ID:b7REYRZH
>>363
ノートだとそうなんかな…
自作のときはずっと9ptがデフォだけど何ともないな…
拡大鏡でも使った方が楽な気がする
365デフォルトの名無しさん
2021/05/29(土) 12:27:27.87ID:hFIjeD7o
>>364
拡大鏡ってぼやぼやになるからなあ
366デフォルトの名無しさん
2021/05/29(土) 12:27:43.67ID:hFIjeD7o
ん?ノート?
367デフォルトの名無しさん
2021/05/30(日) 02:44:36.28ID:gYrIGJpw
右側のプロパティって時間小さすぎるよな
レイアウト配置よりこっちをでかくできるようにしてほしい
368デフォルトの名無しさん
2021/05/30(日) 02:46:50.94ID:gYrIGJpw
あれもうちょっとどうかならないんだろうか
一日使うにはストレスがすごすぎる
369デフォルトの名無しさん
2021/05/30(日) 08:25:31.88ID:13wLe9nW
ユーの眼球レベルにあった
でかくて低解像度のモニター使え
370デフォルトの名無しさん
2021/05/30(日) 11:48:00.52ID:AsIzYzCY
ユー買っちゃいなyo!
371デフォルトの名無しさん
2021/06/01(火) 06:40:30.63ID:UJDWMLaS
共有ファイルとして使う場合
処理がバッティングすると、待ち?っぽい動きするんだけど、この待ち時間を短くとか長くとか設定できない?
372デフォルトの名無しさん
2021/06/04(金) 04:59:49.95ID:JYH5jKrW
>>365
整数倍にすればボケませんよ
373デフォルトの名無しさん
2021/06/04(金) 05:01:18.78ID:4UOZ506g
>>372
150でも200でもぼける
374デフォルトの名無しさん
2021/06/04(金) 06:58:24.85ID:pJrSJSTA
5年ほど前に作った製品ラベルのレポートを修整しようとしたら、老眼は進んでるわ液晶の解像度は上がってるわ、マウスカーソルの移動量を増やしてるわで大変だった。デザインビューの拡大出来るようになると良いですね。
375デフォルトの名無しさん
2021/06/05(土) 16:40:26.94ID:RpMlRy13
ファイルメーカーの体験版使ったらACCESSに戻れなくなってしまった
ACCESSになんかメリットある?
376デフォルトの名無しさん
2021/06/05(土) 18:22:16.60ID:HEfJq5i5
馬鹿がファイルメーカー、ファイルメーカーとしつこく繰り返しているから絶対に使わない
377デフォルトの名無しさん
2021/06/05(土) 18:58:27.51ID:vqCzfq5H
と馬鹿が申しております
378デフォルトの名無しさん
2021/06/05(土) 18:59:13.81ID:ZYY2LhyT
>>375
コストかな。
田舎の工場で低価格な電子部品作ってる。30台くらいのパソコンで使うからファイルメーカーなんてコストは現実的ではないんです。
379デフォルトの名無しさん
2021/06/05(土) 21:31:57.93ID:3DV79FRa
ファイルメーカーとAccessは得意分野が全然違うのでは?
380デフォルトの名無しさん
2021/06/05(土) 21:53:37.74ID:mImo/W/A
ファイルメーカーの宣伝でしょ
381デフォルトの名無しさん
2021/06/05(土) 22:47:17.80ID:RpMlRy13
>>380
ACCESSでうまくいかずもやもやするたびに体験版つかってみて
ライセンス料なんかが不安でACCESSにもどるってのを繰り返してる
ACCESSが現代的なGUIになってくれて
ある程度はコード書かなくてもできるよえになればいいんだが
382デフォルトの名無しさん
2021/06/06(日) 02:59:11.72ID:g1lC8rmM
え!?ひとりでも最低
じゅじゅじゅじゅじゅうまんえーん!?
Access VBA 質問スレ Part2 	YouTube動画>3本 ->画像>5枚
ちなみにキントーンもこの商法みたいだな

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

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

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

頭(目?)悪そうだなこいつ
392デフォルトの名無しさん
2021/06/10(木) 01:23:12.45ID:/1oHskcz
文字が
Access VBA 質問スレ Part2 	YouTube動画>3本 ->画像>5枚
こうなるのをボヤボヤといってるんだと思う

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

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

VBSはコードを見るのも書くのもサクサクだからお気に入りだよ。重たいACCESSを開かなくていいのは気が楽だよ。
でも、関数がVBAと少し仕様が違うとか面倒なことがあるのが玉に瑕だなあ。
398デフォルトの名無しさん
2021/06/15(火) 20:40:00.08ID:XJxpvmdE
>>393
mdbからaccdbにすると壊れ難くなる気がします。
399デフォルトの名無しさん
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
プロシージャーを書き換えるプロシージャーを書くのって面白い?
402デフォルトの名無しさん
2021/06/16(水) 21:11:44.71ID:ni17rAhE
>>400
共有ロックの問題はMaxLocksPerFileを増やしたらあっさり解決しました。
>>401
手作業でプロシジャーを変更していたときより遙かに楽になりましたし。仕事が楽になる過程は面白いです。
なによりもAccessと違ってサクサク動くのがVBSの最大の魅力です。
403デフォルトの名無しさん
2021/06/16(水) 21:18:57.41ID:ni17rAhE
一括でモジュールを書き換えるのすら面倒になったのでLoadFromTxtに切り替えた。
これならフォームやレポートも丸ごと移植可能だわ。
404デフォルトの名無しさん
2021/06/22(火) 11:37:45.99ID:Ug3/ZHCp
オフィス365でデーターを保存したときにウインドウの上のバーの箇所のタイトルに
「ファイル名+保存しました・・」って表示になるけど、
これ出さないように出来ないのかな?

ウインドウのタイトルが変わるとRPAが誤作動をおこすので
いらない機能をつけるなよといつも思います。
405デフォルトの名無しさん
2021/06/22(火) 11:40:11.76ID:Ug3/ZHCp
>>404
誤爆でした。ここAccessなんですね。。
406デフォルトの名無しさん
2021/06/22(火) 19:29:04.84ID:jEG7fGSr
なんでVBA使わずRPAなの?
407デフォルトの名無しさん
2021/06/22(火) 20:23:21.77ID:BN5S6vpx
そのVBAを操作する人間の操作を代行させるのがRPAなんやで
408デフォルトの名無しさん
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って、
ページ変更・ヘッダー・フッターなどでも、カウントが増えますか?

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

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

Win11のNLSってどうなってるんだろ
418デフォルトの名無しさん
2021/08/27(金) 14:57:39.16ID:2jUlNhAQ
すみません、見逃してた。
Windows10の21H1ですね。
NSLがなんの事かわかんないですが、確かに前にも経験したトラブルの様な気がします。
419デフォルトの名無しさん
2021/09/04(土) 15:37:28.00ID:s2WpiZ/S
明後日スタンダード試験だけどやばい模擬問題正答5割だわ
420デフォルトの名無しさん
2021/09/04(土) 16:34:10.88ID:JBLhGxRz
ん、まぁ、ガンガレ
421デフォルトの名無しさん
2021/09/05(日) 03:44:21.58ID:Ocn+wvkQ
外部からaccessの特定のレポートを開く方法ある?
422デフォルトの名無しさん
2021/09/05(日) 14:14:02.27ID:ICYnYWWd
外部って?
普通にCOMで操作すれば良いんじゃねえのか
423デフォルトの名無しさん
2021/09/07(火) 12:53:43.40ID:3mZ93kfX
パススルークエリのパラメータをaccess外から設定する機能教えてください。
424デフォルトの名無しさん
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
428デフォルトの名無しさん
2021/10/09(土) 23:35:10.80ID:uMcy1fPR
VBAエキスパートって取ったほうがいいでしょうか
429デフォルトの名無しさん
2021/10/10(日) 08:29:41.88ID:fy4lWk3l
資格マニアを見る世間の目は冷たい
430デフォルトの名無しさん
2021/11/02(火) 07:37:22.79ID:0Z1mhYfJ
>>428
資格より実践を積むべし
431デフォルトの名無しさん
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に、何か制限などありますでしょうか?
432デフォルトの名無しさん
2021/11/29(月) 15:15:06.43ID:MiFRCJa7
直接の返答じゃないけど、SQL一発書きじゃなきゃだめなの?
事前にレコード数チェックして分岐じゃだめなの?
433デフォルトの名無しさん
2021/11/29(月) 15:17:50.75ID:vB15GkdT
UPDATE と組み合わせて、SQL一発を考えてます
無理であれば、おっしゃるように分岐かなと
434デフォルトの名無しさん
2021/11/29(月) 16:01:33.58ID:MiFRCJa7
ちょっと気になったので手元で実験してみたけど、dummyテーブルが存在して空ではないときには
(多分)431の想定どおりの挙動をしていると思う
バッドノウハウ臭いので、おとなしく事前チェックして分岐かなぁ
まぁAccessのSQLって変だよね
435デフォルトの名無しさん
2021/11/29(月) 17:41:32.65ID:XYio4/pG
access はupdateいっぱつで初挿入もできたはず
しゅきーのヌルを上書きする感じで
436デフォルトの名無しさん
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")
じゃ駄目なの
439デフォルトの名無しさん
2021/11/30(火) 10:58:46.58ID:+NfPg838
>>438
単純にinsertするだけならそれでいいんだけど、existsを使って条件付けようとしてるのでvaluesは使えない(エラーになる)
440デフォルトの名無しさん
2021/11/30(火) 12:38:13.11ID:nsxxcWz3
それ自分でDUALという名称でテーブルを作って1レコード入れておけば出来るよ。
OracleのDUALも実体はそんな感じだったと思う。
441デフォルトの名無しさん
2021/11/30(火) 16:33:37.59ID:KirC+CSy
>>437
更新はできるけど、存在しない行を更新しようとしたとして
その行を新規追加することなんてないだろ...
と思ったけど、追加されるのか

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

SQL ServerだってFromでJoinしてUPDATEできるけど、
さすがに行が追加されることなんてないぞ
エラーの原因が分からない?
442デフォルトの名無しさん
2021/11/30(火) 16:35:34.50ID:KirC+CSy
あ、最後なんか変な行入った
443デフォルトの名無しさん
2021/11/30(火) 17:23:09.43ID:aruulzL7
あくせく働くぜ
444デフォルトの名無しさん
2021/11/30(火) 18:49:33.51ID:VsTnDahT
>>441
Access的には「更新可能クエリ」はテーブルと同等の扱いなのだろう
445デフォルトの名無しさん
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

これの更新だから行数は変わっていない
447デフォルトの名無しさん
2021/11/30(火) 23:40:10.71ID:KirC+CSy
UPDATE文で実テーブルの行数が、な
448デフォルトの名無しさん
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
もうちょっと俺を信用してもええんやないかと思ったが
出来たんならええか
451デフォルトの名無しさん
2021/12/08(水) 11:00:44.75ID:8eCyKUYS
データベースに対し、レポートを外部データの取込で追加するのですが、
この操作をGUIでなくコマンドで行う事は出来ますでしょうか。
452デフォルトの名無しさん
2021/12/08(水) 11:36:19.36ID:XFpeOKs/
mdbファイルまるごと差し替えでok
453デフォルトの名無しさん
2021/12/08(水) 14:57:00.86ID:8eCyKUYS
>>452
返信ありがとう
やっぱ基本はDBごと差し替えになるんですね・・・
最新を管理しないといけないということですか
454デフォルトの名無しさん
2021/12/08(水) 16:58:22.13ID:sRvDCOgH
>>450
レコード入れずに試してみてました
あとで確認してみます
455デフォルトの名無しさん
2021/12/08(水) 18:12:44.70ID:ixTDMdmo
>>451
access起動コマンドラインオプションに
/x マクロ名
で自動実行可能

向きが逆だけどオブジェクトのコピーでレポートをコピー出来る
456デフォルトの名無しさん
2021/12/08(水) 20:30:00.04ID:FsTgnRus
>>451
DoCmd.TransferDatabase acImport
457デフォルトの名無しさん
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って、サポート切れてんの?

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

Access VBA 質問スレ Part2 	YouTube動画>3本 ->画像>5枚

こういった線が付きました
Office2016 Proなのですが設定等でVBエディターでも表示できますでしょうか
またお恥ずかしながらこの線の一般的な名称も教えて頂けませんでしょうか
462デフォルトの名無しさん
2022/01/17(月) 17:44:28.15ID:hBkYcVxQ
>>461
何で開いたのかは知らんけど、AccessとかのVBAエディタには、そういった今どきの便利な機能は無いかと
一般名称かどうかはしらんけど、VSCodeとかの設定では Indent Guide でひっかかるんじゃないかな
463デフォルトの名無しさん
2022/01/17(月) 20:02:01.14ID:r2vXEkpI
>>462
ありがとうございます
名称のほうぐぐってみまして、確かにVS関連の情報が多く出てきました
大変便利ゆえに残念です!
464デフォルトの名無しさん
2022/01/31(月) 11:21:11.42ID:ZCY1so+a
Microsoft 365 Access Runtime ダウンロードリンクが動作してないのですが
ダウンロードできた方おられます??
465デフォルトの名無しさん
2022/01/31(月) 11:29:43.23ID:Di33df7w
>>464
見てみたけど、ダメだねぇ
466デフォルトの名無しさん
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のから操作するとうまくいきません.解決策はないでしょうか?
467デフォルトの名無しさん
2022/02/22(火) 22:38:16.30ID:h8gQU92u
間違えました。
GetOpenFilenameが開くフォルダーをGetOpenFilenameに→
GetOpenFilenameが開くフォルダーをc:\x\yに
468デフォルトの名無しさん
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
469デフォルトの名無しさん
2022/02/23(水) 10:16:59.77ID:/GeE/zJY
>>468
GetOpenFilenameでダイアログが立ち上がったときのフォルダーをc:\x\yにしたいという意味です。
470デフォルトの名無しさん
2022/02/23(水) 14:00:43.13ID:3ksW4w1X
FileDialogを使う
471デフォルトの名無しさん
2022/02/23(水) 15:58:28.79ID:noR6ud0U
https://officevba.info/filedialog/ こっちスかね
メリットもデメリットも書いてあって親切
472デフォルトの名無しさん
2022/02/23(水) 16:48:55.01ID:/GeE/zJY
>>470
ありがとうございました.
FileDialogだとカレントフォルダーで開いてくれました.
473デフォルトの名無しさん
2022/02/23(水) 16:53:30.10ID:/GeE/zJY
>>472
ありがとうございます。この説明はとても親切ですね。よくわかりました
474デフォルトの名無しさん
2022/02/24(木) 15:49:02.02ID:G5PhgONP
>>466
Excel.ApplicationのDefaultFilePathを設定していったん終了したら、
次からそこで開くっぽいぞ

Set exApp = CreateObject("Excel.Application")
exApp.DefaultFilePath = "C:\x\y"
exApp.Quit
Set exApp = CreateObject("Excel.Application")
res = exApp.GetOpenFilename("Csv Files (*.csv), *.csv")

こんな感じか
実行したらエクセルのオプション変わっちまったww
デフォルト何だっけな
475デフォルトの名無しさん
2022/02/28(月) 11:00:59.24ID:JmI4xSUc
初歩的な質問でお恥ずかしいのですが教えて下さい
面倒な計算や処理をして値を返す関数Aがあった場合

その戻り値を判定したい場合

If A = 1 or A = 2 then

と記述するとaccessは 2回処理することになるのでしょうか

それでしたら仮に変数(V)を用意して、一旦
V = A

のように格納してから
If V = 1 or V = 2 then

と記述したほうが処理的には一回で済むという解釈になりますでしょうか
すみませんがご教示頂けたらと思います
476デフォルトの名無しさん
2022/02/28(月) 11:49:10.60ID:JmI4xSUc
すみません、試してわかりました。
後者は一回で済みました。

質問することでその後すぐ簡単な確認方法を思いつくことがよくあります
お恥ずかしい。スレ汚し失礼しました;
477デフォルトの名無しさん
2022/02/28(月) 12:38:27.12ID:jOzz1fM6
どんまい 気付きや学びに成りゃ無駄じゃ無い
478デフォルトの名無しさん
2022/02/28(月) 12:41:50.52ID:frLBMESq
ちょっと違う話だけど、VBAにもOrElseやAndAlsoが欲しいなと思うときはある
479デフォルトの名無しさん
2022/03/06(日) 15:10:37.27ID:R+n9Kzax
SQLの勉強をさいきんはじめました

動的SQLによる数独の超高速解法
というのを読みました

動的にSQLを生成するため
・一つはJDBCを使う方法
・もう一つはストアド・プロシージャを用いた方法
云々って書いてあります

これらって、アクセスのSQLでもできそうなものでしょうか?
(過去に話題として出てたらごめんなさい)
できそうならやってみようかと
茨の道ならあきらめます
480デフォルトの名無しさん
2022/03/06(日) 16:34:17.90ID:TgGQVPNx
2つとも分からんけど、VBAが使える環境なら動的SQLは可能なはず
481479
2022/03/06(日) 17:10:27.06ID:R+n9Kzax
SQLとは、使用人から経営者になることだ
今まで自分で作業してたのをしなくてよくなる
使用人に、「こういうのを出してくれ」と
言うだけでよい

数独についてであれば、今まで
総当りするプログラムとか
条件判定とかを自分で考えていたが
SQLならそうしたものは自分で考えなくてよい
勝手に総当りして勝手に判定してくれる

・・・ということが書いてありました
これって、既存のプログラムの要件を
SQLで表現できれば中身は考えなくてよい
ってことですよね けっこうおもしろいかも
482デフォルトの名無しさん
2022/03/07(月) 07:14:29.39ID:xVPINsIe
経営しなくてもお金が稼げるSQLがどこかに書いてあると良いのに。
483デフォルトの名無しさん
2022/03/07(月) 12:53:13.63ID:+OeG3Wfd
>>479
JDBC Driver で Access MDB に接続できる

つまりワカラン
484デフォルトの名無しさん
2022/03/07(月) 13:11:37.42ID:3lxJ/2QX
これかな?
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で補ったりする必要はあると思う
485デフォルトの名無しさん
2022/03/07(月) 14:07:14.74ID:tjPYNfUL
各DBで使えるSQL構文一覧表
(ROLLUPは jet使えない oracleはokとか)
のページが昔あったのに
今見たら見あたらなかったわ
486デフォルトの名無しさん
2022/03/08(火) 06:28:34.40ID:fGzXxwFZ
総あたりする場合、SQLはどうやって
候補を管理してるんだろ?
ふつうにメモリ上に持ってたら
メモリが足りないような
487デフォルトの名無しさん
2022/03/08(火) 20:13:50.94ID:fGzXxwFZ
数字の書かれたパネルがあります
このパネルのマスをいくつか
ぬりつぶし、残った数字の積が、
たて・横のどの列も12になるように
してください

2523
6257
5262
2334

これぐらいの規模の問題で
練習したほうがいいかも
ぬりつぶしは1に置き換える
488デフォルトの名無しさん
2022/03/09(水) 11:17:27.88ID:wDARNtYc
動的SQLっていうから

DBエンジンにSQL投げる

その結果を受けて自分を書き換えて
再度新しいSQL投げる

望む結果になるまで繰り返す

みたいな話を期待したら
拍子抜けだった
489デフォルトの名無しさん
2022/03/10(木) 18:36:45.22ID:y/Xk/sN2
>>487
SELECT 解答
FROM すべてのあり得る盤面
WHERE 今回の条件
だから
まず盤面を1行にして
2523625752622334
と表す

すべてのあり得る盤面は
2523625752622334
2523625752622331
2523625752622314
2523625752622311
 〜
1111111111111111
だけどこれをどうSQL文の中で
表現すればいいのかわからん
490デフォルトの名無しさん
2022/03/11(金) 12:30:05.01ID:+z9vFN5I
>>489
>>484の記事を1から読んでこい
491デフォルトの名無しさん
2022/05/01(日) 00:28:53.70ID:uZ+uV6s8
VBAのコード内の文字を置換するプログラムをVBAで行うことはできるでしょうか?
置換の組合せが複数あるので一つずつCtrl+Hで操作すると間違いそうなので,
置換前文字列と置換後文字列の配列を書いて,それを順に実行するようにしたいのです.

自分のコード内に当該置換文字列をがでてくるので,その回避も考えないといけないですが

よろしくお願いします
492デフォルトの名無しさん
2022/05/01(日) 07:29:11.23ID:1HGTgNe1
>>491
できるよ
493デフォルトの名無しさん
2022/05/01(日) 07:36:23.30ID:1HGTgNe1
ごめん、AccessVBAスレだった
知らん
494デフォルトの名無しさん
2022/05/01(日) 16:14:10.55ID:4P2yloMu
ACCESSにもApplication.VBEがあるっぽいから、エクセルとかと同じようにできるんじゃね
そもそもコード内をそうそう置換するって状況がよくわからんがな
495デフォルトの名無しさん
2022/05/01(日) 20:13:11.92ID:uZ+uV6s8
>>494
オブジェクト名を修正すると,名前の自動修正機能で,オブジェクト間の整合性は保たれます.
例えば,Aクエリー内でBテーブルを使用していて,Bの名前をCに変更するとA内のBテーブル名もCに自動的に修正されます.
ところが,コード内でオブジェクト名を引数に使用している場合(DoCmd.OpenQuery()やQeryDef()など)は,自動的に修正されないので
コード内の文字置換で修正するしかありません.
オブジェクト名をより統一的にしたいとか,あるルールで短くしたいなどの事情です.

でも本当にコードを使ってコード内の文字置換できますか?
「エクセルとかと同じようにできる」とのことですが,エクセルのVBAでできる方法を知りません.
496デフォルトの名無しさん
2022/05/01(日) 20:33:27.28ID:XyObubkl
>>494がApplication.VBEってヒント出してくれてるのに自分で調べる気は無いの?
497デフォルトの名無しさん
2022/05/01(日) 20:51:07.35ID:uZ+uV6s8
>>496
いままでApplication.VBEとVBAの違いをしりませんでした.
Application.VBEで検索して,オブジェクトであることをしりました.
できそうな気がしてきました.
調べます
498デフォルトの名無しさん
2022/05/01(日) 21:27:48.04ID:q0kLnjNb
>>497
お前みたいな馬鹿は、方法自体間違えていると思うよ
499デフォルトの名無しさん
2022/05/01(日) 22:36:20.05ID:uZ+uV6s8
>>498
正しい方法言ってみな。
言えなきゃ超バカ決定。
500デフォルトの名無しさん
2022/05/01(日) 23:10:31.48ID:q0kLnjNb
やっぱり馬鹿だったか
馬鹿に馬鹿と指摘すると怒りだす
501デフォルトの名無しさん
2022/05/03(火) 18:13:45.75ID:hABwtxOZ
>>494>>496
497ですが、
Application.VBE.ActiveVBProject.VBComponents(i).codemodule.ReplaceLine(j,"修正後コード文字列")
を使ってできました。
502デフォルトの名無しさん
2022/05/03(火) 21:57:49.43ID:uVFGqhpy
>>501
ありがとう。勉強になります。
503デフォルトの名無しさん
2022/05/03(火) 23:56:04.39ID:9Zz7qGMa
コードとデータは分離しなさーい!
504デフォルトの名無しさん
2022/05/04(水) 01:12:27.06ID:L2QcoKdh
>>503
オブジェクト名はデータにできない
505デフォルトの名無しさん
2022/05/04(水) 01:29:47.87ID:T57Ht3+D
名前は文字列だろ!
VBAの提供するオブジェクトは大抵コレクションで管理されているだろ!
お前の作ったオブジェクトも管理できるようにしろ!
初歩だぞ初歩!
506デフォルトの名無しさん
2022/05/04(水) 01:39:45.29ID:L2QcoKdh
つまらん
もういいよ
507デフォルトの名無しさん
2022/05/04(水) 03:22:14.79ID:bSJdUNny
やっぱり馬鹿だった
508デフォルトの名無しさん
2022/05/04(水) 08:25:20.61ID:L2QcoKdh
>>507
人のこと馬鹿、馬鹿ってほんとにうるさい奴だな

今回のアプリは俺しか使わずオブジェクト名変更も今回限りが確定しているんで、
オブジェクト名をデータ化できるCreateQueryDefなどを使う手間を省いてクエリデザイナーを使っているだけ。

そういう事情も含めて「もういいよ」と書いたんだけど、読み取れんわな。

お前は実生活で他人の事情を汲み取る力が弱くて他人から避けられてるだろう。
実生活では流石に馬鹿と面罵しないとは思うが態度にはでてると思うよ。

エクセルVBAのようにワッチョイ付きならNG登録するんだが。
509デフォルトの名無しさん
2022/05/04(水) 12:11:33.62ID:T57Ht3+D
何人登録するつもり?
510デフォルトの名無しさん
2022/05/06(金) 14:43:39.68ID:HOAU3QSN
>>508
もういいから馬鹿は黙ってろ
511デフォルトの名無しさん
2022/05/11(水) 09:14:31.47ID:+mNN1hZ/
ここはBKのあつまりでつか?
51244
2022/06/18(土) 22:47:23.35ID:yLkug1TW
味噌も糞もいるのがこういう掲示板の特徴
それが面白ければ来るし退屈なら来ない
文句言うのはカッコ悪い
513デフォルトの名無しさん
2022/06/19(日) 06:53:58.66ID:R9q2ZnJn
>>512
こういうのかっこ悪い
51444
2022/06/19(日) 07:49:57.69ID:ZfwUc+SV
>>513
いやいや本当のイケメンだろうな
515デフォルトの名無しさん
2022/06/21(火) 16:34:11.41ID:q4pJaYn5
test
516デフォルトの名無しさん
2022/06/21(火) 16:34:30.21ID:q4pJaYn5
アプリケーションタイトルについて質問です。
今使ってるmdbのタイトルが2種類あって、「Access」のものと「ファイル名:データベース-フルパス-Access」のものがあります。

全部後者のタイトルにしたいのですが、設定の仕方がわかりません。
ヤフー知恵袋の「Accessのタイトルバーにファイル名を表示させることはできますか。
Excelでは表示されるのですがAccessでは”Access”としか表示されず少し不便なので、、」
を読むと何の設定もしなくても後者のようになると書いている人がいます。
どうしたらそうなるのでしょうか?

後者のやつは別にAppTitleとかで設定していませんので不思議です。
517516
2022/06/21(火) 17:34:19.49ID:q4pJaYn5
解決しました。
518デフォルトの名無しさん
2022/06/21(火) 19:20:51.51ID:EkCiEQiW
>>517
どうやって?
知りたい
519516
2022/06/21(火) 19:44:50.71ID:q4pJaYn5
>>518
いろいろ試したけど、結論は超簡単。
ファイル→オプション→現在のデータバース→アプリケーションオプション→ドキュメントウィンドオプション→タブ付ドキュメントをon

これでファイル名とパス名が表示されて複数のmdbを起動しても混乱しなくなりました。
520デフォルトの名無しさん
2022/06/21(火) 20:23:15.71ID:QtwFSmmg
OS:win10
Ver:365 16.0

フォルダの中に複数のExcelファイルがあります
accessで全てのエクセルの同一セルの文字をテーブルにまとめたいのです
Accecc vba エクセルの特定のセル
などで検索してみましたが解決に至っていません
どうかお力添えお願いします
521デフォルトの名無しさん
2022/06/21(火) 20:46:00.64ID:kU7/2TZz
何がしたいかと、どこまで出来て何がわからないのか詳しくかけ
522デフォルトの名無しさん
2022/06/22(水) 10:12:43.83ID:N/5JiATv
>>520
Excelシート全てインポートすればクエリー加工出来ると思うが、、
523デフォルトの名無しさん
2022/06/22(水) 10:16:19.65ID:N/5JiATv
>>520
Excelシートリンクでも良いぞ
524デフォルトの名無しさん
2022/06/22(水) 10:27:56.84ID:lUHG2pSs
ネ申エクセルからデータを拾いたいとかそんな話じゃね?
CreateObject("Excel.Application")
使って対象ファイル開いて、そっからさきはExcel VBAの範疇やろ
525デフォルトの名無しさん
2022/06/22(水) 12:36:20.21ID:N/5JiATv
なんだ
Accessでテーブル化したい、のでは無いのか?
何やりたいのか分からんな
526デフォルトの名無しさん
2022/06/22(水) 15:16:59.53ID:Z6mZqai9
「AccessVBAからexcelファイルのセル参照ってどうやるの?」ていう質問でしょ
527デフォルトの名無しさん
2022/06/22(水) 20:19:24.91ID:rLKMJdnt
質問には答えられるけど
答えるとまた次の質問が来るのが予測出来るからまんどくせ
528デフォルトの名無しさん
2022/06/23(木) 06:46:56.49ID:nErcbU9U
>>527
スレに来ないと良いよ
529デフォルトの名無しさん
2022/06/23(木) 07:36:49.86ID:xe+L83Np
>>521-523
なにをやりないか再度確認してコード見直していたら不具合点見つかって前進しました…
>>525
やりたいのはこれで30個程度のエクセルがあって全てフォームは統一されています
a3とb4とw30の値をテーブルにズドンと引っ張りたいのです

もうちょっと頑張ってみます
遅くなってごめんなさい
530デフォルトの名無しさん
2022/06/23(木) 12:13:27.06ID:jwJvRDT9
ACCESS VBA EXCEL CELLでクグルと沢山出て来ますね。
ACCESSからEXCEL開いて操作できると便利です、頑張ってください。
531デフォルトの名無しさん
2022/06/23(木) 12:56:15.59ID:uoofWh9e
>>529
CreateObject("Excel.Application")でエクセルを操作できるようにする

対象とするシートからa3とb4とw30の値を取得して変数 X Y Z に格納する
変数 X Y Z の値をAccess のテーブルに追加する
この二つの処理を全てのシートにループで行う

釣りが終わったExcel オブジェクトを閉じる
Access のオブジェクトの閉じる

これでいけるんじゃね?
532デフォルトの名無しさん
2022/06/24(金) 06:07:38.19ID:X+tgL9yK
>>531-532
ありがとうございます
こう書くとすごくわかりやすいですね

テーブル追加やLOOPは調べて書き方を学べそうなのでやってみます!
533デフォルトの名無しさん
2022/06/26(日) 13:37:45.11ID:DTfGvOZF

534デフォルトの名無しさん
2022/06/26(日) 22:59:47.94ID:Ter0iV/V
たびたびすみません
ばしっとフォルダ内のファイル名を取得することはできました
>CreateObject("Excel.Application")でエクセルを操作できるようにする
これの意味がようやくわかりました ありがとうございます

C:\Users\sanae\Desktop\vba\Book1.xlsx というExcelファイルのa3を変数に入れようとしているのですが
ぐぐったところファイルパスをつける書きかたが参考にできるページがみあたらず詰まっています
(このあたりにファイルパスとかシートとかを指定して)range(3.1) みたいなやり方かなあなんて思っているのですがどれもエラーになっちゃいました
参考になるページでもご教示いただければ幸いでございます
535デフォルトの名無しさん
2022/06/27(月) 00:21:56.25ID:LR8Jvthl
>>534
http://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はクリエイトオブジェクトで作ったエクセルオブジェクトね
あと変数は適当に定義しておいてね。
536デフォルトの名無しさん
2022/06/27(月) 01:42:38.20ID:Yed1CrTu
>>535
おおお
できてきました とても進みました
・フォルダを指定してファイル名を取得
・変数XYZに特定のセルの値を取得
537デフォルトの名無しさん
2022/06/27(月) 01:45:22.88ID:Yed1CrTu
すみませんCTRL+エンターで送信になってしまいました
・フォルダを指定してファイル名を取得
・指定したシートから変数XYZに特定のセルの値を取得
・XYZの値をテーブルに追加
超進みました

後は指定したシート名を持たないファイルに遭遇した時にどんなエラーになるのかが気になりますので
近々時間みつけて頑張ろうと思います

ありがとうございました!超ハッピー!
538デフォルトの名無しさん
2022/06/27(月) 01:59:55.53ID:YAQt7RYR
馬鹿は二度と来るなよ
539デフォルトの名無しさん
2022/06/27(月) 08:41:44.29ID:yeeW9wqV
VBAでやらなくてもテーブルimportで出来るやろ
無駄な努力だな
540デフォルトの名無しさん
2022/06/27(月) 11:56:31.55ID:LR8Jvthl
>>539
ブック数が多いから VBA でやりたいんじゃないの?
インポートでできる量だったら手でコピペの方が早いだろ
541デフォルトの名無しさん
2022/06/27(月) 15:59:24.18ID:jKYPD+Yx
対象のExcelファイルが固定なのか、頻繁に入れ替わるかどうかにもよるわな
542デフォルトの名無しさん
2022/06/27(月) 20:22:09.19ID:UdQiWAN3
どなたか教えてください。

売掛金消し込みのマクロを作成しています。VBAでソルバーを自動化したいと思っています。

目的セル、制約条件の参照セルの開始行が40行ごとに下がっていき、指定値は数値ではなく、セルを指定したいです。

とりあえず、全部の変数をvariant型にしてますが、なかなか上手くいきません。
543デフォルトの名無しさん
2022/06/27(月) 20:42:56.65ID:NFVjaUBh
なんでAccessVBAスレにまで書いてるんだよ
544デフォルトの名無しさん
2022/06/28(火) 12:01:23.56ID:W8L8uteA
こんな奴が作るプログラムで金勘定とか笑えるわ
己を知らないって馬鹿の特徴なんだよな
545デフォルトの名無しさん
2022/06/28(火) 12:08:16.40ID:S7aFTH1N
>>542
Access VBAスレでExcelの質問するなよ
546デフォルトの名無しさん
2022/06/28(火) 12:53:23.92ID:illrnTHm
EXCELで記録したVBAをACCESSで実行するとEXCELはXlmxにしなくても良いからじゃないの?
ソルバーは使い方わからんのでなんにも言えなくてスマン。
547デフォルトの名無しさん
2022/06/28(火) 13:14:48.17ID:v0i+TmEN
>>546
Excel VBAスレみればなにがあったのか分かるよ
548デフォルトの名無しさん
2022/06/28(火) 21:08:59.28ID:i28fB/zi
昨日アホな質問した541です。

accessスレにexcel VBAについて投稿してしまい、すみませんでした。

VBA初心者なので、よくわからずに投稿してしまいました。
549デフォルトの名無しさん
2022/06/29(水) 10:01:41.27ID:Es0nfTu8
初心者を言い訳にする香具師は同じ失敗を繰り返す
550デフォルトの名無しさん
2022/06/29(水) 12:18:55.14ID:C7zOwXa/
狭量にすぎる
551デフォルトの名無しさん
2022/06/29(水) 12:31:17.45ID:WL8L6KaP
スレを間違ったことではなくマルチが問題なのだがな
552デフォルトの名無しさん
2022/06/29(水) 13:27:42.53ID:tPok425v
>>551
それだけ焦ってたんでしょ。Excel VBA で反応がなければ藁をもすがる気持ちで アクセス VBA で聞いたんじゃない。
広い気持ちで
553デフォルトの名無しさん
2022/06/29(水) 13:50:40.09ID:Es0nfTu8
x VBA初心者
o 5ch初心者
o パソコン初心者
o コミュ障入門者(上級)
554516
2022/06/30(木) 01:00:46.93ID:1OP/W/CA
DoCmd.OpenReport "レポート名", acViewPreview
DoCmd.PrintOut acPrintAll, , , acHigh, 枚数

新規レポートにラベルを貼っただけものだと希望どおりの枚数が印刷される.
しかし,別のレポートだと常に1枚しか印刷されない.
ネットでも同じ報告を確認した.バグ説もある.

皆さんはどうですか?やっぱりバグですかね?
555516
2022/06/30(木) 16:01:17.27ID:1OP/W/CA
解決した.
デコンパイルとコンパクトしたらいつの間にか設定した枚数が印刷されるようになった.
accessはマジで面倒くさいなあ.
デコンパイルとコンパクトの待ち時間をを返して欲しいよ
556デフォルトの名無しさん
2022/06/30(木) 19:00:33.50ID:PX9/MxY9
デコンパイル、知りませんでした。
557デフォルトの名無しさん
2022/06/30(木) 20:22:38.17ID:1+oYjPxt
デコンパイル、昔は割と鉄板の解決方法だったんだけどね
それでだめなら新規作成して全モジュールインポートとかもあったな

最近は必要性が減ったけど、まだたまにはあるんだな
558516
2022/06/30(木) 22:53:16.59ID:1OP/W/CA
コンパクトだけでも良かったのかも知れないが,習慣で両方やることにしている
ついいましがたも.Docmd.OpenReportのOpenArgsがレポートに渡らなくて困っていたが,コンパクトをしたら作動した.
終了時にコンパクトするオプションがあるくらいだから頻繁にやるべきなんだろうね.
コード書いているときは非常に頻繁に破損するからね.
559デフォルトの名無しさん
2022/06/30(木) 23:46:30.14ID:1+oYjPxt
あれはデータ領域を圧縮するのが主で、コード部分にはあまり影響しなかった気がするが
最近のアクセスでコードが破損するのはだいぶ減ったと思うが
VBEからコンパイルするだけで解決してたんじゃないか?
560516
2022/07/01(金) 00:40:02.55ID:SILFs/Ha
くわしいことはわからないが,挙動不審が治ることがあるんだよねえ
とにかく,試行錯誤していると必ずと言っていいほど,壊れるよねえ.
メモリーが不足していますとか出始めると,その日のうちに全フォーム消失とか起こるからなあ.
561デフォルトの名無しさん
2022/07/01(金) 10:45:11.72ID:x9gnk4T5
試行錯誤の過程のほとんどを貯め込むからな 設定で「終了時に最適化」で、都度終了を心掛けるか
大幅な改修の度にコンパイルのクセを付けるか ファイルサイズに気を付けて、「こんなサイズのはずは無い」ってな時は要注意
 で、それは、お道具の使い方が雑、間違ってるってだけで、すぐAccessのせいにする連中はお里が知れる ってこと
562516
2022/07/07(木) 15:33:38.95ID:9tJXVGoG
下のコードで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
563デフォルトの名無しさん
2022/07/07(木) 16:12:50.20ID:N4ENiOaQ
>>562
mdb/accdbファイルの場所が欲しいのなら
CurrentProject.Path
を使おう
CurDir$や>>562の例なんかで返されるカレントディレクトリはファイルダイアログとかで開いたフォルダになるっぽい
その辺の仕様に関する資料は知らんけど
564デフォルトの名無しさん
2022/07/07(木) 19:57:05.70ID:V/fQnZ1U
そもそも、
>vbsならscriptの存在するディレクトリ
が間違ってる気がするが

カレントディレクトリの概念って最近は説明されてるの見ないなぁ
GetFolder(".")が返してるのはカレントディレクトリ(からの相対パスで自分自身)
カレントディレクトリはACCESS.EXEの場所や.MDBファイルの場所とは別に存在する

まあMDB開くときはそこをカレントにする場合が多いけどな
つねに一致してるとは限らん
565516
2022/07/07(木) 20:26:42.06ID:9tJXVGoG
>>564
> そもそも、
> >vbsならscriptの存在するディレクトリ
> が間違ってる気がするが

VBSで稼働していたスクリプトをVBAに移植している際に気づいたので、正しいと思います。
スクリプトを任意のフォルダにコピーしてそのフォルダ内のファイルを一括処理するのに使っていましたので。
566デフォルトの名無しさん
2022/07/07(木) 20:31:06.22ID:ty1oWU7C
chdirで変えられちゃうけど
567516
2022/07/07(木) 20:55:49.31ID:9tJXVGoG
ユーザはおいら1人だからいいのです。
568デフォルトの名無しさん
2022/07/07(木) 21:30:15.27ID:V/fQnZ1U
いやだから、scriptの存在するディレクトリじゃなくて、
カレントディレクトリが表示されてるって話なんだがな
たまたまそれが同じだっただけだ

ここ理解しないと思ったディレクトリが表示されない理由が理解できないぞ
569デフォルトの名無しさん
2022/07/07(木) 22:24:24.15ID:rKn8i4wF
馬鹿に何を言っても無駄な例だぞ
570デフォルトの名無しさん
2022/07/08(金) 10:33:00.73ID:aHYxM19P
>>565
そのスクリプトをショートカットにして、
作業フォルダを変えて動かしてみたい
571デフォルトの名無しさん
2022/07/08(金) 12:10:02.96ID:/znuHP85
カレントディレクトリみたいな、あやふやなものを使ってはいけない。
これが使えるのは、絶対に変化しない場合だけ

起動時に、特定のフォルダを指定するとか、
あらかじめ定数などに保存しておく
572デフォルトの名無しさん
2022/07/08(金) 12:16:33.93ID:/znuHP85
例えばデスクトップに、以下のショートカットを作ると、

WSL2 で、Ubuntu 18.04 を起動して、
その /home/ユーザー名/test ディレクトリを、VSCode で開く

リンク先
C:\Windows\System32\wsl.exe code .

作業フォルダ
\\wsl$\Ubuntu-18.04\home\ユーザー名\test
573デフォルトの名無しさん
2022/07/08(金) 12:30:53.39ID:PreZKXp3
もはやAccess VBAとは関係ない話になってるし、元質問者は聞く耳持たないみたいだから
これ以上続ける意味無いよ
574デフォルトの名無しさん
2022/07/11(月) 11:04:56.16ID:1W23UOpt
>>562
fso使ってるんだから当たり前
575デフォルトの名無しさん
2022/07/12(火) 17:20:09.84ID:xDQ7ywi9
>>574
なぜ「fsoを使うと」なにが、「当たり前」なんだい?
576デフォルトの名無しさん
2022/07/13(水) 18:08:17.37ID:sooqvjiy
7月12日のWindows Updateを実施した端末で軒並み「要求されたタイプ ライブラリまたはウィザードは VBA プロジェクトではありません。」
というエラーが出てAccessで作ったものが起動できない症状が出てるんだけど、何か知ってる?
ちなみにAccess Runtimeを再インストールすると直る。修復ではダメ。
577デフォルトの名無しさん
2022/07/13(水) 18:15:29.57ID:sooqvjiy
>>576 書き忘れたけど手元で問題が発生しているのはAccess Runtime 2013 32bitの端末。
OSはWin8.1とWin10の両方で発生してる。
578デフォルトの名無しさん
2022/07/13(水) 19:12:40.99ID:PtV2v+lq
うちの環境とほぼ同じですね、まだ発生してないけど明日あたり起きるのかな。
runtimeの入れ直しですね、了解っす。
579デフォルトの名無しさん
2022/07/14(木) 09:57:45.69ID:gGJjrJSy
>>576
特定した。
KB5002121を入れると症状が発生する。
Access Runtimeを再インストールしても再度Windows Updateを実施すると元に戻るから
KB5002121をブロックしないとダメだ。
58044
2022/07/14(木) 12:52:21.90ID:Fq9OF9ol
迷惑な話ですねえ。
MSのプログラマーがアホなのは今に始まったことじゃないけど
581デフォルトの名無しさん
2022/07/14(木) 18:41:39.80ID:Zi9qyvS+
昔EXCELのVBAで似たような話が合った気がするな
その時はテンポラリディレクトリの掃除したら起動するようになったはずだから
いちど試してみては
582デフォルトの名無しさん
2022/07/18(月) 12:31:42.55ID:1omE+gQa
MSは自社製品のテスト駆動開発すらしてない
テストが面倒になるとサポート打ち切り
583デフォルトの名無しさん
2022/07/18(月) 13:02:03.33ID:dNd6yRIh
>>582
それソースあるの?
584デフォルトの名無しさん
2022/07/19(火) 13:18:07.18ID:4mWHj4S5
2022年7月パッチで「Microsoft Access」に問題、バージョンが異なるとファイルが開けない
https://forest.watch.impress.co.jp/docs/news/1425748.html
>異なるバージョンの「Microsoft Access」で作成されたデータベースファイル(ACCDE/MDE)を開こうとすると、「要求されたタイプ ライブラリまたはウィザードは VBA プロジェクトではありません」というエラーが発生する場合がある
585デフォルトの名無しさん
2022/07/20(水) 10:36:39.60ID:Rwr2SDqT
Formを変数にSetするとき下の二つのやり方のどちらが速いか試したら、結構まちまちなんですよね。
後者はEarly Bindingだと思うんだけど、ループさせると前者が速いことも結構あって不思議だ。
だれかこのあたりの事情をご存じの方いますか?

Dim F As Form
Set F = Forms!FormName

Dim F As Form_FormName
Set F = Forms!FormName
586デフォルトの名無しさん
2022/07/20(水) 11:16:41.39ID:2HHkZJi9
>>584
runtime版でそれ出たな、試行錯誤でruntime2016からruntime365に変えたら動いたw事がある。
587デフォルトの名無しさん
2022/07/20(水) 15:41:40.93ID:qJwz0nM8
runtimeは糞
588デフォルトの名無しさん
2022/07/20(水) 18:29:58.22ID:BaO5YoZA
>>585
あってるかどうかは知らんが

!は実行時に列挙する気がするんだが
後者は型チェックと変換が入るから後者のほうが遅いと思う
前者も入るかもしれんが、そうなるとForm型とForm_FormName型でどっちのキャストが早いかで
結局やっぱり後者が遅い気がする

どっちにしたってFは型指定されているので事前バインドだが、
それが差に出るのはFのメンバーを使うときだぜ

まあ、なんにしても誤差レベルだと思うが
589デフォルトの名無しさん
2022/10/28(金) 11:06:17.52ID:L4jXkRvB
PC画面のスクショを撮って、印刷させたいのですが
とっかかりすら分からない初心者です
検索しても該当サイトはなかったので
よろしければご教授願いたいです
590デフォルトの名無しさん
2022/10/28(金) 12:19:16.61ID:QXDDHW1b
>>589
Windows標準の切り取り&スケッチを使えばできます
ACCESSからコントロールしたいのですか?
591デフォルトの名無しさん
2022/10/28(金) 12:33:34.88ID:L4jXkRvB
>>590
はい、ExcelかAccessでとのことで、
今後の勉強含めAccessに挑んでいます。

不特定多数が使用する環境で
(リテラシーが低い人も混在)
ボタン一つで全画面スクショ印刷と
アクティブウィンドウのみスクショ印刷
の2通りできるようにしたいです
(スクショしたデータは印刷後削除される仕様にしたい)

今のところ全画面スクショはできたのですが
アクティブウィンドウと
その後の印刷と削除で、つまづいてます。

ド初心者なので、見当違いな質問をしていたら
申し訳ありません
592デフォルトの名無しさん
2022/10/28(金) 12:48:59.54ID:14o/00kf
API経由で[PrtSc](全画面)、[Alt]+[PrtSc](アクティブウィンドウのみ)を押せばクリップボードに画面キャプチャができるだろうから
それをレポート上のImageに突っ込んで印刷すればいいんじゃないのかな?
試してないから実際にできるかは知らんけど
593デフォルトの名無しさん
2022/10/28(金) 18:23:03.59ID:ivdM6iIS
>>592
ありがとうございます
土日に試してみます!
594デフォルトの名無しさん
2022/12/09(金) 21:17:19.25ID:XI7rGRQs
サーバーから検索したいのに上手くいかない
どこか修正するとこありますか?

Private Sub CommandButton1_Click()
Const BASE_PATH = "\\L\設計\図面"Dim myPath As String, myName As String
Dim FSO As Object, oFolder As Object, oSubFolder As Object, oFile As Object
On Error Resume Next
If TextBox1.Value = ""Then Exit Sub
ListBox1.Clear
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = FSO.GetFolder(BASE_PATH)
For Each oSubFolder In oFolder.SubFolders
For Each oFile In oSubFolder.Files
If LCase(oFile.Name) Like LCase(TextBox1.Value) &"*.pdf"Then
Debug.Print oFile.Path
myPath = oFile.ParentFolder &"\"myName = oFile.Name
ListBox1.AddItem myName
ListBox1.List(ListBox1.ListCount - 1, 1) = myPath
End If
Next
Next
Set FSO = Nothing
End Sub
595デフォルトの名無しさん
2022/12/10(土) 17:10:55.98ID:HwePKFIg
何がどううまくいかないんだ?
On Error Resume Next外して、エラー内容かけ
596デフォルトの名無しさん
2022/12/11(日) 02:53:35.00ID:08xatqWx
知らんけど、コマンドプロンプトで取得した方が速いと思うぞ。
597デフォルトの名無しさん
2022/12/11(日) 14:47:06.06ID:BK2dpDEr
ネットワークだとビックリするほど遅いよね
598デフォルトの名無しさん
2022/12/21(水) 12:29:44.27ID:29nQbkr4
表形式にしたフォーム上の一行一行に対して、そのレコードのID.pdfが指定のフォルダにあれば○、無ければ空白って文字を連結したテキストボックスに入れたいんだけど。
Dir使って判定させるところまでは出来たけど、vbaを実行させるタイミングの問題なのかな?
詳細セクションの描画時選んだら代入出来ませんって出た。
試しに詳細セクションダブルクリックだと該当レコードだけは入ったけど。。

一括で全レコード対象にする方法あるんでしょうか。。?
599デフォルトの名無しさん
2022/12/21(水) 13:19:20.60ID:oTvIdtcL
データシートビューのソースの段階でクエリ使ってる?
〇や(空白)を入力するフィールドは確保されてる?
元のソースにpdfファイルがあるか無いかを画面上で比較しながらひとつずつ入力するつもり?
仮のテーブル作ってフォルダ内のpdfのファイル名をDir使ってそのテーブルに代入すれば
簡単に元のソースにも反映出来ると思うけど どうしてもデータシートビューで比較しながら入れたい?

pdfが入ってるフォルダ内がしょっちゅう追加・変更・削除がある場合だとしても、仮のテーブル使っとけば
都度最新の状況での比較が可能だと思えるし、不足してるからpdf作らなきゃ、の指針にも成るような気がする
でも、元のソースに〇のフィールド作っちゃうと、pdf削除されても〇のまま消えない可能性もあるから対策必要か

つまり、一括で全レコード対象にするなら、Dir結果をcsvなりtxtなりに落とし込んで、それと元ソースで更新クエリがいちばん早い
600デフォルトの名無しさん
2022/12/21(水) 14:08:13.72ID:29nQbkr4
>>599
ありがとうございます
一旦別のテーブルなりCSVなりにファイル一覧作ってみる事にします!
思い付きもしませんでした
601デフォルトの名無しさん
2023/03/02(木) 17:30:45.61ID:oTm0acsN
値にtrueやfalseが含まれるexcelファイルをDocmd.TransferSpreadsheetを使ってテーブルに取り込むと、
数値として反映されてしまうんですが、理論値のまま取り込む方法はありますか?
変換かけるしかないのかな
602デフォルトの名無しさん
2023/03/05(日) 12:31:16.13ID:Yb2sf8rL
>>601
取り込んだ後でクエリーで値変えれば良かろうに
603デフォルトの名無しさん
2023/03/24(金) 00:30:10.12ID:higFVnZ+
recordset.Fields.Append "フィールド名", adChar, 200
とかでフィールドを新規設定するといろいろと挙動不審になって、エラーが頻発した。
俺が気がついたのはLen関数がおかしな数字を返すこと。スペースの数を返す。
これのおかげなのか、DictionaryのKeyが変なことになり、ただしいItemが取得出来なくて2日潰したわ。
Trim関数に入れたらまともに動き出した。よけいなスペースが付加されていたため、本来の値と異なっていた。
このあたりの事情を書いたものあるのかなあ?
604デフォルトの名無しさん
2023/03/24(金) 10:46:32.87ID:pyQciQm5
Recordsetの作成(DAO編)
http://www7b.biglobe.ne.jp/~cbcnet/DAO/database.html
レコードセットの作成(ADO編)
http://www7b.biglobe.ne.jp/~cbcnet/ADO/append.html
第4話 DAOとADOの違い
https://www.r-staffing.co.jp/engineer/entry/20210806_1
同一システム内でDAOとADOを併用しないよう留意 とか?
605デフォルトの名無しさん
2023/03/25(土) 11:49:45.50ID:zs10i3Ml
エラーが出るもんだから、VarType関数使って疑わしい変数を調べたら、18が返ってきた。
しかし、そんな定数ないんだよなあ。これはどういうことだ?
606デフォルトの名無しさん
2023/03/25(土) 11:59:33.48ID:nHkGBQf7
値の合計なので、10と8とか 5と6と7とか 思い当たるのをひとつずつ潰してく
607デフォルトの名無しさん
2023/03/25(土) 13:37:32.34ID:zs10i3Ml
>>606
ありがとう。
Msgboxでそような定数の合計をしますね。
ところで、そのような知識は私の持っているVBA、VBS、Accessの本には記載されていない様な気がします。
もしかしたら、Visual Basicでは常識なのでしょうか?それとも一般的なプログラミングの世界での常識ですか?
私は仕事でVBAをいじるだけで、一般的なプログラミングはほとんど知らないのでお尋ね致します。
608デフォルトの名無しさん
2023/03/25(土) 14:20:16.26ID:nHkGBQf7
本はあくまでも全体のほんの一部を抽出して購買欲そそるタイトル付けて売ってるだけ
MSのリファレンスに頼るのが本筋 
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/vartype-function
https://learn.microsoft.com/ja-jp/office/vba/api/overview/access

ネットの情報でも、ご丁寧にスクショ混ぜて説明してるのに、すでにUI変わってて役に立たないとかも多い
紛らわしい情報が氾濫する中で、どれがじぶんの求めるお宝なのかを見極める目を養うのもだいじ
609デフォルトの名無しさん
2023/03/27(月) 19:32:00.21ID:zT0GYsm+
>>603
CHARとVARCHARの違い
まあ、SQLの型の基本なんだが、ACCESS関連であまりちゃんと解説してるのみたことないな
https://learn.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/datatypeenum
OLE DB プログラマリファレンスの第 13 章および付録 A を参照してください、らしい
610デフォルトの名無しさん
2023/03/27(月) 19:43:31.02ID:zT0GYsm+
>>607
ビットマスクって考え方があって、別にVBAに限った話じゃない
が、VarTypeで18ってリファレンス見る限りないな。
どんな変数がその値だったんだ?
611デフォルトの名無しさん
2023/03/29(水) 07:20:36.71ID:P3Zmpymz
AIに書いてほしいコードを聞くと正しく動くコードが返ってくる
bingとchatGPTは頼れる、かも
612デフォルトの名無しさん
2023/04/04(火) 10:14:28.50ID:Az13f9J9
最近の VisualStudio に搭載されたコード補完は
おせっかいなくらいにコードの続き出てくるな
613デフォルトの名無しさん
2023/04/04(火) 16:33:58.07ID:vSpSLcg3
>>611
俺はChat GPTに嘘ばかり教えられている。
用語の定義から間違えている。
Chat GPTの吐いた嘘を貼り付けるページがあったら参加したいわ。
614デフォルトの名無しさん
2023/04/04(火) 17:16:46.37ID:SG+vqM06
>>613
確かに鵜呑みには出来ないね、よく嘘を言ってくる。ある程度自力で捌けないとヤバいね
615デフォルトの名無しさん
2023/04/05(水) 00:48:28.57ID:wtS5Em1S
嘘を嘘と見抜けない人の利用はお勧めできない、か

どっかで聞いた話だな
616デフォルトの名無しさん
2023/04/05(水) 19:08:02.04ID:iYloijFa
GPTのウソ、具体例有ったら教えて
617デフォルトの名無しさん
2023/04/08(土) 23:18:08.84ID:m5gy6cDu
Excelスレに貼られていたWebview2のコードはワロタ
618デフォルトの名無しさん
2023/04/10(月) 19:36:08.19ID:YifXJ3Ct
今日も大嘘をつかれました。

質問
MS Accessのvbaで既に存在するプログラム中に宣言されていない変数があります。これを探して,宣言するvba プロシジャーを教えて。

回答
MS AccessのVBAで、プログラム中で宣言されていない変数を検出して、宣言するための手順を説明します。

MS Accessを開き、VBAエディターを起動します。
検索機能を使用して、すべてのモジュール内の未宣言の変数を検索します。
未宣言の変数を検索するには、VBAエディターで「Ctrl + F」を押して、「検索」ダイアログボックスを開きます。ダイアログボックスで「未定義の」または「未宣言の」を検索キーワードとして入力し、「検索」または「次へ」ボタンをクリックします。これにより、未宣言の変数が使用されている場所がすべて検索されます。

未宣言の変数を見つけたら、変数の宣言を追加します。
例えば、未宣言の変数「myVariable」が使用されている場合、以下のように宣言を追加できます。


Dim myVariable As DataType ' 変数の宣言

DataTypeは変数のデータ型を指定するために使用されます。例えば、myVariableが数値である場合、データ型はLong、Integer、Doubleなどになります。文字列である場合は、データ型はStringになります。

全ての未宣言の変数を宣言したら、プログラムを保存して実行してください。
これにより、未宣言の変数エラーが回避され、プログラムが正常に実行されるようになります。
619デフォルトの名無しさん
2023/04/12(水) 18:35:03.42ID:b8lcjBjc
未宣言の変数が300種類くらいあるポンコツ業務用mdbがある。Option Explicit化して手作業で未宣言変数を探すとものすごく時間がかかる。ローカル変数だけならテキストに対しての構文解析だけで出来そうだけど、誰かやり方知ってますか?

Access用の解析ツールは時間がかかりすぎるので諦めました
620デフォルトの名無しさん
2023/04/14(金) 12:20:23.58ID:ooEkRg5K
全角数字を含むフォームは普通VBEのプロジェクトエクスプローラでも全角数字で表示される。
しかし、俺の持っているmdbはなぜかフォームによってはVBEで半角の場合がある。
つまりForm1番→Form1番
というように半角になっている。
フォームのもっている名前とモジュールの名前が異なるので検索漏れが発生して何かと不便。
解決策ありますかね?
621デフォルトの名無しさん
2023/04/19(水) 15:36:15.06ID:hTeej4zs
>>620
Accessのバージョンによって全半角を同一視されるのとされないのがあったよーな
半角に統一して、置換するしかないんじゃね
622デフォルトの名無しさん
2023/04/19(水) 21:07:01.70ID:UiOYL9zn
>>621
VBEはクラスオブジェクトのリネームはできないんですよねえ

Text化してファイル名を統一してから読み込みますかねえ?それでなおるか未確認ですが。

今は検索文字列のパターンを増やして対応してますが、邪道だなあと思いながらやってます。
623デフォルトの名無しさん
2023/04/20(木) 00:39:31.09ID:Ck2wYtqO
ACCESS側で名前変更しても、VBE側が変わらないことがあるっぽいな

フォームの コード保持 を いいえ にして保存してから はい にしたら同じになったぞ
まあ、コード全部いったん消えるがな
624デフォルトの名無しさん
2023/04/20(木) 10:07:33.88ID:b7y+tf5m
>>623
テキスト化してフォームと同じ全角のファイル名にしてからLoadしたらVBEのクラスオブジェクトの名前と一致させることが出来ました。
思うに、このプログラムを書いた人はテキスト化して、お好みのエディタで書いていたんでしょうね。
だからOption Explicitなんてしてなくて、問題なく書けるので、変数のスペルミスがあります。
今回はファイル名の全角半角を間違えてままLoadしてフォーム名とクラスオブジェクト名が一致しないということになったと思います。
よほどVBEを使いたくなかったんでしょうね。
625デフォルトの名無しさん
2023/04/28(金) 05:20:11.81ID:d0ZMhP2N
やけにエラーが出るので調べたら、クラスオブジェクトの名前のカッコが前側が半角、後側が全角のものを発見。しかも複数。
俺はプロじゃないけど、このデータベースに毎月金を払っている。金取るならちゃんとしたものを作って欲しいわ。
宣言だけして読み書きしない変数が約2000個、呼び出されないプロシジャーと空のプロシジャーが100個以上がもあるし、どうなっているんだ?
戻り値のないプロシジャーをFunctionにして,呼び出すだけのために変数を使ったりしてアホかと思うことばかり
626デフォルトの名無しさん
2023/05/03(水) 21:33:01.68ID:u6AyBhT9
クエリがいくつかあってそのなかであるテーブルを使ってるかどうか検索する方法ないですか
627デフォルトの名無しさん
2023/05/03(水) 21:34:54.38ID:u6AyBhT9
これVBA関係ないな
628デフォルトの名無しさん
2023/05/04(木) 13:12:55.46ID:xnh5NJU8
関係無いけど、ヒマだから
https://www.feedsoft.net/access/tips/tips211.html
この手順でコツコツ「リレーションシップ」を出力してけば把握できる
629デフォルトの名無しさん
2023/05/04(木) 20:33:29.74ID:i/jCXYvG
QueryDefsのSQLプロパティをinstringで調べる
それをループ かな
630デフォルトの名無しさん
2023/05/10(水) 00:24:35.45ID:qaMHPguU
>>629
これがベストだね
631デフォルトの名無しさん
2023/05/12(金) 20:45:34.35ID:nGf/Bj/G
流行りのChatGPTをACCESSで使えるようにしてみた
BingやBardもレスポンス良く使えるようになったのであまり意味はなかったが面白かった
VBAコードはChatGPTに書かせたのをほぼコピペで動くようにできた
632デフォルトの名無しさん
2023/05/13(土) 09:19:13.17ID:uR6hVfud
スレの意図を無視するがAccessは出来るだけVBA使わず作成する方がバージョンアップにも対応し易い
633デフォルトの名無しさん
2023/05/13(土) 13:15:28.85ID:JkElVRfp
お客様に納品するならそういう気遣いも要りますね
自家用なので気の済むまで作り込みます
自社の50人くらいが快適なように
634デフォルトの名無しさん
2023/05/13(土) 16:13:18.44ID:74jfRr8+
どうした? 総合で同意が得られなかったから改めてコッチに書いたのか?
Accessをインストールだけして使わないでいればバージョンアップもへったくれも無いから、そうした方がいいぞ?
635デフォルトの名無しさん
2023/05/14(日) 08:52:04.69ID:UU9sI9hc
Rubberduckは大きいデータベースだとパース中にエラーが出て使い物にならないねえ

数年前よりはるかにマシになったけど。
636デフォルトの名無しさん
2023/05/16(火) 21:12:36.24ID:dmITDlP3
msgboxの戻り値を格納する変数の型をvbMsgboxResultにするかLongにするか悩んだので、
時間を計ろうと思って、古い本を引っ張り出して、二つを比較するプロシジャーを書いた。
ふと、全く同じテストをしたらどうなるのか気になったので、やってみたら、全く同じプロシジャー同士の比較なのに30%位スピードに差が出る。さっきやったら最大で37%速度差があった。
一方が速いこともあれば、もう一方が速いときもある。こんなのでスピード比較する意味あるのかなあ?

時間測定はGetTickCountを使って、変数宣言のみ100万回のループをするプロシジャーを100回呼び出すという感じ。
なんかいい測定方法ありますかね?
637デフォルトの名無しさん
2023/05/16(火) 21:52:45.08ID:Mqz2m8JL
timer使っても同じかな
638デフォルトの名無しさん
2023/05/17(水) 06:33:48.44ID:AOXlzNDq
timerが秒単位でGetTickCountはミリ秒単位と古い本に書いてあったなあ
あと、timerはそれ自体の動作が遅いって書いてあった
639デフォルトの名無しさん
2023/05/18(木) 18:57:23.27ID:8+QzSev9
ユーザーフォームが大きいんで下半分を隠す、上半分を隠す、という2つのコードを書きたいんです。下半分を隠す、はハイト プロパティを小さくすれば可能なんだけど、上半分を隠す、は不可能なんですかね。
640デフォルトの名無しさん
2023/05/18(木) 20:29:25.05ID:FTp82+/Y
>>639
何をやりたいのかイマイチ分からんけど、タブコントロールじゃだめなん?
641デフォルトの名無しさん
2023/05/18(木) 21:32:12.21ID:UaeB70YO
上半分を隠したら×ボタン無くなってにっちもさっちも行かなくなるぞ
642デフォルトの名無しさん
2023/05/18(木) 21:36:12.00ID:/q1eE0wB
>>639
2つのフォームに分けたら良いと思うの
643デフォルトの名無しさん
2023/05/19(金) 21:09:14.22ID:j+pEmA6B
>>640
>>642
ありがとう。皆さんのアイデアをためします
644デフォルトの名無しさん
2023/05/23(火) 14:00:02.22ID:MnQDcyxi
質問です。
Excelファイルを読み込んで、加工してからテーブルとして保持したいんですが、
Excelファイルのまま編集してinsertするのと、
一度テーブルとして読み込んでから編集してinsertするのはどちらが高速でしょうか?
645デフォルトの名無しさん
2023/05/23(火) 14:42:54.35ID:3uLTyIP1
insert ? inport の手順なら下記リンク先を参考に
https://hamachan.info/win8/access/import.html 
Excelファイルをリンクでもいけるし 同作業を何度も繰り返すとかでも、操作を保存しとけば楽だし
データのボリューム次第とかマシンスペックとかも兼ね合いがあるから、どちらとも
ウィザードの途中画面をよく見て、事前にExcel側を整えて置けば inport も楽だし
編集内容がより細かく設定できるのはExcelなのかAccessなのかを知る事でも、どちらの方法を採るかの判断になる
646デフォルトの名無しさん
2023/05/23(火) 15:03:14.67ID:MnQDcyxi
いろいろありがとございます、しかしimportではなくinsertです
内容を見て既存のテーブルに1行ずつinsert(もしくはupdate)していく形になります。
647デフォルトの名無しさん
2023/05/23(火) 15:26:17.99ID:3uLTyIP1
んーと、Access側のテーブルはあくまでもデータストック用な立ち位置?
事前にExcelでの編集が伴うなら、Accessのテーブルとしてから編集するのはムダなような
https://tonari-it.com/excel-vba-access-add-records/ コッチのが参考に成るかも 実行速度の検証もしてる様子
648デフォルトの名無しさん
2023/05/23(火) 16:47:55.53ID:MnQDcyxi
ありがとうございます!
いまさらっとですが見てみたところ、速度比較などもしていて参考になりそうです。
見てみます!

中間テーブルを作成してから編集した方がいいよ、という声を聞いたんですが
いちいち使わないテーブルに投入する必要はないのでは?と思い質問いたしました。
事前編集方式でやってみます!
649デフォルトの名無しさん
2023/05/23(火) 18:12:18.40ID:3uLTyIP1
Excelの元データと、何をどう編集したいかも判らないから、中間テーブルの必要性は当人しか判断不能
上でも書いたけど、編集内容がExcelの方が楽で早いのかAccessの方なのかでも手順は変わるような
速さを第一に求めているように読めるけど、「一行ずつ」って書かれた部分で「おや?」と
スムースにデータを移行させるには、最初のリンク先の「データクレンジング」も読んでおいてもムダには成らない
アチコチに目を配らなければならない様子でお疲れ でもそれがじぶんの糧に成る
650デフォルトの名無しさん
2023/05/24(水) 08:46:04.47ID:AU7HKxhu
>>644
ExcelインポートしてAccessで加工する方が速いよ
ExcelでVBAでデータ加工するなんて愚の骨頂
651デフォルトの名無しさん
2023/05/24(水) 10:26:10.15ID:eouMPy16
みなさまいろいろありがとうございます
自分の説明不足&理解不足ですみません。

ACCESSに入っている一覧情報を定期的に更新しなければならず、
その更新情報がExcelで来るのでそれを読み込んで…とやる感じです。
ACCESS側で固有に更新している情報もあるのでまるっと上書きではなく、
一行ずつ確認して該当の列のみ追加や上書きをしなくてはいけません。

それを、いまはAccessVBA内でExcelファイルを開いて
一行ずつ読み込んで内容確認して内容によってSQL流して…とやっているのですが、
もしかしてExcelファイルを中間テーブルにimportしてから
操作した方が早いのかな??と悩んで書き込んだ次第です。

「ExcelインポートしてACCESSで加工」と言ってくださってるのは
後者の場合を指しているのですかね?
今はとりあえずサンプルを作って動かして比較しようかと思っています。
652デフォルトの名無しさん
2023/05/24(水) 10:50:21.63ID:l+gVJ33A
そういうことなら中間テーブルに取り込んで、テーブル同士の差分をチェックかな
https://tasukete-access.com/2022/11/28/accessintro_table_comparison/
[フィールド単位での差分をチェックする] この方法のが近いのか
653デフォルトの名無しさん
2023/05/24(水) 23:16:20.24ID:CzWxWRtY
返信遅れてすみません!ありがとうございます!
こんなやり方ができるんですね!
全部SQL書こうと想ってましたがクエリで楽に作れるかもしれず嬉しいです。
参考に書いてみます、本当にありがとうございます!
654デフォルトの名無しさん
2023/05/26(金) 17:24:59.84ID:sT8UcBqC
500以上のモジュールにOption Explicitが書いてない。
当然、宣言されていない変数が何百もある。
ここにOption Explicitを書くと、宣言されていない変数を見つけるたびにコンパイルが止まるので面倒。
一括して発見する方法を知ってる人いますか?
VBEが発見できるので、その方法が分かればユーザにも分かるはずだと思うが、検索しても見つからない。

Cのコンパイラを自作する技術があれば、文法解析の手法が使えると思って調べたけど、全余暇時間をコンパイラ自作に割り当てても6ヶ月かかったと言ってる人がいて、踏み出せない。
655デフォルトの名無しさん
2023/05/26(金) 19:16:13.82ID:+AT6wCCw
こんなん見付からはりました
https://stabucky.com/wp/archives/6297  実際に検証はしてないんで、自己責任 ←重要!!
現物mdb(そんなのはAccdbでは無くmdbだと勝手に決め付けてる)では無く、コピーしたファイルで
尚且つネットから切り離しスタンドアロンで、更に30秒後に発火するかも知れないので消火器用意してから
試してみてください 結果報告が期待されます

VBE上でCtrl + Spaceで入力支援機能(サジェストっつーの?)を出して、いっこずつTABで拾いだす案を
提案しようと思いつつぐぐってたら出てきた代物 宣言してなかったら自動メンバー表示(どの名称が正式か知らん)
にも出てこないのか!?と、ようやく気付いたレベルの人間のレスなので、眉唾しながら(若しくはスルー推奨)

VBAでJavaScriptを使うには?という場合は : https://extan.jp/?p=10611 とか
あと、『なお「unique」という自作の関数を使っています』とあるので、それも併せておかないと動作しないかも(きっと)
656デフォルトの名無しさん
2023/05/29(月) 16:07:15.09ID:AvjLnKXj
>>655
ありがとう。
少しずつ試してみます。

いろいろ調べて、いまはFlexとbisonという奴でもやってみたくなっています。
657デフォルトの名無しさん
2023/06/08(木) 22:05:58.45ID:tPqYzYSn
配布したaccdbを365runtimeで動かしてて、今朝突然レポートが開かなくなった
ほぼ午前中すったもんだして2013runtimeならレポートの印刷やプレビューが問題無い事がわかってruntime差し替えた
こんな目にあったひと他にいない?
658デフォルトの名無しさん
2023/06/09(金) 03:25:01.10ID:i6Y59lYy
>>657
はい、います
365で突然、帳票の罫線が消えた事があります
その時はAccessのバージョンを1つ前にロールバックして解決しました

方法は以下のURL参照
■Office - Microsoft コミュニティ
https://answers.microsoft.com/ja-jp/msoffice/forum/all/office/67665e18-c4c7-4c1c-b5d1-3ff6e6cd8334

今だと一つ前はバージョン 2304 (ビルド 16327.20248)ですかね
それでダメならもう一つ前へ
659デフォルトの名無しさん
2023/06/09(金) 04:50:51.47ID:uT9lsXlY
ロールバック、覚えときます
ありがとう
660デフォルトの名無しさん
2023/06/09(金) 12:36:00.93ID:G8Vh+N8B
それって、MSからバグフィックスや修正が為されたのを察知するにはどうしたらいい?
ロールバックしっ放し? 勝手にアプデされてまだ直らなかったら二つ前にロールバック?
ずっと修正されなかったらロールバックバックバックとかに成らん?
661デフォルトの名無しさん
2023/06/09(金) 16:09:51.45ID:XhtkwaOO
>>660
察知は毎月リリースページを確認していました
バグが修正されるまでは Office の自動更新を止めます
なのでロールバックは最初の1回だけです
バグが修正されたら自動更新を有効に戻して最新版にする感じでした

更新は重大バグ修正の時のみ、原則自動更新は使わないという運用もあります
これに関してはお客さん次第ですかね
662デフォルトの名無しさん
2023/06/09(金) 16:20:24.73ID:G8Vh+N8B
そうだよね 委託を請けてる業者さん目線だよね
エンドのユーザーはそんなのに目を通さないしね 見てもどれが自分の不具合に当て嵌まるか解かり辛いしね
じゃあ内製のユーザーはロールバックバックバックし続けるしか無いよね
アプデを停め続けるひとも居るかも知らんけど、そうすると1年分とか溜まってそれはそれで地獄を見るしね

やっぱこういう場所で症状とかを意見交換するのは貴重なんだ、と再認識
663デフォルトの名無しさん
2023/06/09(金) 17:23:51.20ID:XhtkwaOO
>>662
はい、開発委託業者です
確かにエンドユーザーさんにリリースページは無縁ですよね
一応システム担当者さんにはお知らせしましたけど、こちらで随時チェックという感じでした
また修正されてもリリースページに載らない細かい不具合修正も多いです
レポートの罫線不具合はまさにそれでした

■最新チャネル リリースのリリース ノート - Office release notes | Microsoft Learn
https://learn.microsoft.com/ja-jp/officeupdates/current-channel
664デフォルトの名無しさん
2023/06/10(土) 18:20:00.00ID:u0MJNtiG
あと、マクロだと screen.active.control とか出来ないよね
665664
2023/06/10(土) 18:20:16.44ID:u0MJNtiG
誤爆
666デフォルトの名無しさん
2023/06/11(日) 17:21:05.93ID:/gnEKRu3
sleep をどんだけにするかどうやって決めるの?
667デフォルトの名無しさん
2023/06/13(火) 15:38:15.16ID:bu7CkXDV
VBAで自作のクラスモジュール作成したんですが、
それを引数で渡す関数の書き方がわかりません

Sub test(ByVal hoge As Hoge)

みたいな感じで書いたのですがうまくいきません。
(As Hogeが自動でAs hogeと変換されるし、エラーになります)
どなたか教えていただけませんでしょうか?
668デフォルトの名無しさん
2023/06/13(火) 19:34:42.68ID:d6Pomi9y
>>667
引数hogeに引っ張られるVBAの仕様です
VBAでは変数にクラス名を使うのは避けた方が良いですよ
プロジェクト内に変数hogeが存在している時も同様です
669デフォルトの名無しさん
2023/06/14(水) 11:24:04.63ID:3Eu4F25u
>>667
VBAでクラスモジュールなんて不要
670デフォルトの名無しさん
2023/06/15(木) 16:26:17.40ID:VlP0x+zk
>>669
流石にそれはない。クラスモジュールがある方が便利だよ。
671デフォルトの名無しさん
2023/06/15(木) 19:09:52.15ID:y9q9PTdn
bindってのでクラスモジュールの有り難みを知りました
672デフォルトの名無しさん
2023/06/15(木) 20:42:35.42ID:RAXKxz4R
俺もクラス使いたい派
保守性が全然違う
673デフォルトの名無しさん
2023/06/15(木) 22:46:38.48ID:VlP0x+zk
クラス使わないと同じようなコードが量産されて面倒くさすぎる
674デフォルトの名無しさん
2023/06/15(木) 22:47:32.53ID:VlP0x+zk
ただでさえポンコツな言語なんだから、クラスぐらい使おうよ。
675デフォルトの名無しさん
2023/06/16(金) 20:25:21.43ID:cjNqE8A3
>>673
そのせいだったのか、クラス使えば良かった
676デフォルトの名無しさん
2023/06/21(水) 20:54:02.92ID:b8UND1s3
ADOでCSVからテーブルを作ろうとしたらレコードが大きすぎますって怒られるんですよ!
1レコード2000バイトも無いのにですよ!
400列くらいあるのがダメなんですか?
2013なんですが。
677デフォルトの名無しさん
2023/06/21(水) 21:15:42.66ID:gk5UG/Z5
フィールド数の上限は255だからかな
678デフォルトの名無しさん
2023/06/23(金) 13:04:47.47ID:pHYUvccd
フィールド数上限は実は罠
679デフォルトの名無しさん
2023/06/23(金) 15:26:54.30ID:X84KLwiQ
過去最大のフィールド数は500
テーブル分割して収納した
680デフォルトの名無しさん
2023/06/23(金) 15:42:34.83ID:jhieer6M
分割したらフィールド数じゃないな
681デフォルトの名無しさん
2023/06/23(金) 16:07:44.83ID:/GlO4XTI
メモ型にコンマ付で格納
682デフォルトの名無しさん
2023/06/24(土) 09:17:24.69ID:5hQB8dV1
>>681
それに意味有るの?
683デフォルトの名無しさん
2023/06/26(月) 19:43:31.70ID:nvUGoLmX
Access2019でリボン非表示にするのは、どうするの?
684デフォルトの名無しさん
2023/06/26(月) 20:17:04.89ID:nvUGoLmX
>>683
細工されないようにXMLで記述したい
685デフォルトの名無しさん
2023/06/26(月) 21:25:45.94ID:Ezf4n+79
XML???
VBAでなら
DoCmd.ShowToolbar "Ribbon", acToolbarNo
ってのがあるが
686デフォルトの名無しさん
2023/06/27(火) 08:56:44.60ID:5UYjwK7S
それだと使用者に解除されちゃうので、XMLで空のカスタムリボン作って、オプション→現在のデータベース→リボンとツールバーのオプションに設定したいんよ
Access2019だとスクラッチからリボン作ってもファイルボタンが残っちゃうのが解ったので、それで我慢する
687デフォルトの名無しさん
2023/09/14(木) 09:18:05.95ID:t/htNvkA
サブフォームをもつフォームにおいて、
親フォーム側から
Me.サブフォーム.Requery
を実行すると、サブフォームのCurrentイベントが2回発生するんだけど、なんでなんだろ?
688デフォルトの名無しさん
2023/09/14(木) 10:41:11.21ID:UPFEbPP4
大抵はそう組まれているからそう動作する
親フォームからひとつずつチェックしてみれば「あぁ、ここか」が出てきたりする
689デフォルトの名無しさん
2023/09/14(木) 10:50:23.10ID:t/htNvkA
>>688
検証のために、メインフォーム上ににサブフォームとサブフォームをRequeryさせるだけのボタンの最小限の構成にしても
687で書いた現象が発生している(サブフォーム側はCurrentイベントにdebug.printを書いただけ)

私は何か根本的な勘違いをしているのだろうか?それともAccessの仕様なのだろうか?
690デフォルトの名無しさん
2023/09/14(木) 12:58:11.51ID:UPFEbPP4
フォームをデザインビューにした時に出て来るプロパティシート
おおむかし、あの枠が狭くて知らぬ間に二行に記載していたことは稀によくあった
Excelで言う、セル内改行をやってしまっていた 見た目はいっこなので気付きにくい
或いは、サブフォームをよりシンプルなものでテストするとか
仕様なら同様の質問疑問がてんこ盛りに投稿されるはず
 と思って探ってみたら、こんなのが・・
http://yamav102.cocolog-nifty.com/blog/2015/05/from_current-96.html  これ系?
691デフォルトの名無しさん
2023/09/14(木) 13:40:41.27ID:t/htNvkA
>>690
サブフォームは新規作成した状態のものにCurrentイベントにdebug.print書いただけのものでも2回発生してるのよ

提示していただいたページはこちらで調べたときに見ていますが、そのページで書かれてるのは自分自身に対するRequeryのようなのでちょっと事情が違うようです

frmMain
------------------
Option Compare Database
Option Explicit

Private Sub btnRequery_Click()
Debug.Print "clicked ------"
Me.frmSub.Requery
Debug.Print "--------------"
End Sub
--------------------

frmSub
--------------------
Option Compare Database
Option Explicit

Private Sub Form_Current()
Debug.Print "frmSub Form_Current"
End Sub
---------------------
こんなかんじの検証用のを用意
692デフォルトの名無しさん
2023/09/14(木) 13:41:20.11ID:t/htNvkA
んで、実行結果(イミディエイトウィンドウ)が

clicked ------
frmSub Form_Current
frmSub Form_Current
--------------
693デフォルトの名無しさん
2023/09/14(木) 14:52:05.24ID:UPFEbPP4
イメージだけで応答してたから、どうにもとっ散らかってた 現物当たって真似してみた
https://learn.microsoft.com/ja-jp/office/vba/api/access.form.current
  このイベントは、フォームが開いたときと、フォーカスがレコード間を移動したときの
  いずれの場合にも発生します。
複数回発生して当たり前だった 
Form_Load (読み込み時) 或いは Form_Abtivate (アクティブ時) に変えればおk
どうしてもForm_Current (レコード移動時)に設定したい場合は見て見ぬ振りをするしか
694デフォルトの名無しさん
2023/09/14(木) 15:04:03.08ID:t/htNvkA
>>693
loadやactivateではrequery時にイベントが発生しないので、本来の目的を達成できません
また、最初にフォームが開かれたときにはcurrentは一度しか発生していません
695デフォルトの名無しさん
2023/09/14(木) 16:54:04.40ID:UPFEbPP4
btnRequery をクリックしても Requery できない?という意味?
Me.frmSub.Requery を Me!frmSub.Form.Requery にしてみては?
Me. か Me! かでも変わって来るし、.Form を付ける付けないでも挙動が変わったような

あと、frmMain を開いただけでも frmSub Form_Current が発生するのも違う気がするし
frmMain でパラメータ変えて frmSub を Requery させたいとかなら
https://teratail.com/questions/123328 このhatenaさんの回答を参考にしてみたり
Docmd.Requery でやっつけてみたり Requeryの使い方もクセがあるので切磋琢磨が
必要だったり
696デフォルトの名無しさん
2023/09/14(木) 17:08:38.96ID:t/htNvkA
>>695
frmSubはfrmMainに貼り付けられているのでfrmMainを開くと当然frmSubも開かれるので、
Open, Load, Current等のイベントはひととおり発生します(仕様通り)
これについては特に問題ではありません

問題にしているのはbtnRequeryをクリックしたときに、Me.frmSub.Requeryを一度しか呼んでいないのに
frmSubのCurrentイベントが二度発生していることです

紹介いただいたteratailのページを参考にあれこれ試してみたいと思います
697デフォルトの名無しさん
2023/09/14(木) 21:20:00.47ID:dY8DD9uu
AccessにGROUP_CONCATみたいなのなかった?
698デフォルトの名無しさん
2023/09/14(木) 23:10:56.65ID:kQn+Df7T
サブフォームのレコードソースにテーブル指定して >>691 やってもカレントは一回しか表示されんけどな
レコードソース無ければ2回カレントは表示される

サブフォームにレコードソース指定してる?
699デフォルトの名無しさん
2023/09/15(金) 08:38:48.79ID:cxAk3WqI
>>698
たしかにレコードソースはしていしていません
なるほど理由はよく分からないけれど、原因は分りました
ありがとうございます
700デフォルトの名無しさん
2023/10/03(火) 11:54:07.91ID:BE4+HOMv
ちょっと不思議な話
よくある数値の切捨て処理のfunctionとして
Function RoundDownDec(decNum as Currency, intPlace as Integer) as Currency
 RoundDownDec = Fix(decNum * 10 ^ intPlace) / 10 ^ intPlace
End Function
処理したいデータの都合で与える数値も戻り値も十進型としています
(正負の処理などは今回の本題から外れるので例からは省いています)
RoundDownDec(33.6, 2) としたときに、33.6が返ってくるのを期待しますが33.59が返ってきます
不思議!
functionの中身を
Dim tmp As Currency
tmp = Fix(decNum * 10 ^ intPlace)
Debug.Print tmp
RoundDownDec = tmp / 10 ^ intPlace
と段階を踏ませるとイミディエイトウィンドウに3359が出るので更に
tmp = decNum * 10 ^ intPlace
tmp = Fix(tmp)
と分解すると、期待通りの結果(33.6)が得られます
Fix()の引数はdoubleなんで、暗黙的な型変換が行われているせいなんだろうけれど、微妙に納得がいかない不思議な話でした
701デフォルトの名無しさん
2023/10/03(火) 11:59:45.89ID:BE4+HOMv
ちなみに蛇足ですが、普通に
Function RoundDown(dblNum As Double, intPlace As Integer) As Double
とdoubleを引数にした場合は、特別なことをしなくても RoundDown(33.6, 2) の結果は33.6となります
702デフォルトの名無しさん
2023/10/04(水) 10:07:17.16ID:e9fui2Qq
浮動小数点を経由するので誤差から免れることはできません(以下はイミディエイト ウィンドウでの実行と結果)
? Fix(33.6 * 10 ^ 2), Fix(33.6@ * 10 ^ 2), Fix(33.6! * 10 ^ 2)
3360 3359 3359
単精度でも同様

? Fix(33.6@ * 10 ^ 2) / 100, Fix(CCur(33.6@ * 10 ^ 2)) / 100, Fix(33.6@ * 100) / 100
33.59 33.6 33.6
べき乗を使うことが誤差を生む原因の一部でもあったりするので、CCur()で一度補正?したりで影響を減らすとかも考えられます。
703デフォルトの名無しさん
2023/10/04(水) 10:57:33.10ID:95ZKO4kH
検証ありがとうございます

浮動小数点を経由するので誤差がでるのは理屈としては理解できるのですが、
わざわざ十進型を使ってるのに…というのや、Fix()に渡される式の結果ではなく、
渡された段階で暗黙的な型変換が行われているっぽいのが腑に落ちなさの一因なのでしょう
704デフォルトの名無しさん
2023/10/04(水) 14:52:16.68ID:e9fui2Qq
? Fix(33.6@ * 10 ^ 2) , Fix(33.6@ * 100)
3359 3360
の結果からもわかるように、今回の場合は 10 ^ 2 の値が浮動小数点であり ≠100 である
ということです
なので「33.6@ * 浮動小数点」は33.6@を浮動小数点として計算する(はず)ので、その結果が
許容できない値になってしまったと
対策として CCur(33.6@ * 10 ^ 2)で本来の値に近くなるように書きましたが、
べき乗の部分を一度整数変数に代入してから「33.6@ * 整数変数」の形にしてもいいと思います(未検証)
この場合、通貨型は内部整数 * 整数なのでここまでの計算結果に誤差はでません。(乗数マイナスは別)

RoundDownDec()を大量に使用する場合はパフォーマンスも考慮しないといけませんが、乗数を整数変数経由に
する方が CCur()関数使うより早いのではと思います(昔、関数使うと遅いなと思った経験)。
100万回くらい(適当)ループして検証してみてください。
705デフォルトの名無しさん
2023/10/04(水) 15:22:35.37ID:95ZKO4kH
更なる解説ありがとうございます

? TypeName(10^2)
Double
正直これは盲点でした
原因がはっきりわかりすっきりしました
ありがとうございます
706デフォルトの名無しさん
2023/10/04(水) 21:35:38.35ID:GiHPLbjK
VBAの内部計算につかう型は結構複雑な変換をする
33.6@ * 整数変数の結果は、Currency型だぜ
多くの関数や演算子で、より精度の高い型を使おうとするんだが、べき乗はDoubleしか返さん仕様っぽいな
自分でCurrencyかDecimalでべき乗する関数作れば解決
707デフォルトの名無しさん
2023/10/04(水) 23:36:55.88ID:hn2MViTp
OpenArgsってなんて読んでますか?
何の単語の略なんでしょうか
ご存じのかた教えてください
708デフォルトの名無しさん
2023/10/05(木) 01:14:56.61ID:6f6nA7M7
>>706
CurrencyかDecimalでべき乗する関数ってどのような?
709デフォルトの名無しさん
2023/10/05(木) 04:00:15.23ID:xIPl72Do
>>708
こまかい条件省くとこんな感じじゃね
Function pow(x As Currency, y As Integer) As Variant
Dim i As Integer
Dim ret As Variant
ret = CDec(x)
For i = 1 To y - 1
ret = ret * CDec(x)
Next
pow = ret
End Function

Decimalは直接定義できないからVariantで宣言してる
710デフォルトの名無しさん
2023/10/05(木) 04:05:04.32ID:xIPl72Do
>>707
おーぷんあーぎゅめんつ
argsはargumentsの略 引数
711デフォルトの名無しさん
2023/10/05(木) 18:08:52.91ID:dRlX4TIE
>>709
そんな低レベルな関数書いて「解決っ」とか言っちゃって時点でバカにも程がある
712デフォルトの名無しさん
2024/03/24(日) 13:50:16.81ID:6zfiQZRE
業務用のmdbがポンコツコードだらけなので書き換えてるんだけど、IIFが最大4個ネストしてあった。
4個ネストしてあるのは変数の値の判定が条件になっているけど、3個以下のは関数を呼び出している。
皆さんだったらどうします?
713デフォルトの名無しさん
2024/03/24(日) 19:36:20.19ID:S7ogYjm0
将来も含めてどのレベルの人がメンテしていくかだろうな
ソースの書き方も人それぞれ
例えばコメントの書き方でも、巷では行間に書くのが多いが、私は画面内に一度に表示できるロジックの行数減って見通し悪くなるから、行末側に書きたい
画面も横長だし
とか厳密に書き方決めないと人それぞれになってしまうのよね
ネストの段数にしても固定してしまうと、ムダに外出ししてしまうとかもあったり
ソースを見やすくするか、コメントで逃げるとかはもうコーティング規則にするか、それしないなら担当者判断でしかない
iifもネストなんて場合によりどちらでもいい
714デフォルトの名無しさん
2024/03/24(日) 22:33:27.39ID:6zfiQZRE
とりあえず、測定用の簡単なVBAを作って、IIFのネストがどのくらい遅いのか確かめてみます。
変数の値の判定くらいなら差はほとんどないという記事を読んだことがあります。しかし、関数呼び出しをするとかなり違うという記事も読んだことがあります。
なので、呼び出された関数が10個、さらにそれぞれの関数が10個の関数を呼び出すようなコードでも書いて調べてみます。
昔Ken Getzの本を何冊か読んだ記憶ではOptimizationの章では揃ってIIfを避けるように書いてありましたね。
715デフォルトの名無しさん
2024/03/25(月) 10:06:54.06ID:wTe6l7XU
>>714
あぁ、それなら全ての条件を評価する(初期の判定で達しないとこも)から、遅くはなる
そういう弊害があるから一律使わなくするなんてことは、あったりするだろうね
そういうの見ると「はぁ⤵」って思うけど
716デフォルトの名無しさん
2024/03/25(月) 15:11:37.51ID:wTe6l7XU
>>715
ちなみにif~thenも全判定なので、iif禁止で問題解決になるわけでもない
717デフォルトの名無しさん
2024/03/26(火) 00:35:40.91ID:YALkMi+F
>>714
Access のIIFの問題は判定結果に関わらず
TrueパートとFalseパートの両方が評価(関数なら実行)されてしまう仕様

a = IIF(True, funcA, funcB)
funcAだけでなくfuncBもコールされる
aにはfuncAの戻り値が入る

関数の実装内容によってはパフォーマンスに影響が出るでしょうね
IFではどちらか一方のみ結果パートが評価されます
718デフォルトの名無しさん
2024/03/26(火) 12:43:56.27ID:H7z+7I0f
>>716
if thenが全判定てなにを言っているんだ
andとorがショートサーキット演算しないだけだぞ
基本vbaはショートサーキットしない
例外はif関数ぐらいか
719デフォルトの名無しさん
2024/03/26(火) 13:57:38.44ID:kj3sgFU0
>>718
日本語理解できない、省略を補完する知識もないシナのアホが飛来したな
720デフォルトの名無しさん
2024/03/27(水) 13:19:17.09ID:BmA2tbQj
Select CaseはTrueが出たところで打ち切るからTrueになりそうな条件を上の方に書くべきて読んだことがあるなあ
721デフォルトの名無しさん
2024/04/19(金) 10:08:55.39ID:uD5nyH4z
>>720
普通の人間ならそうなるだろ?
レアパターンを先に評価するやつなんて変わり者
722デフォルトの名無しさん
2024/04/19(金) 11:20:47.33ID:TeTgAng2
>>721
1、2、3……順とかにするのは普通
頻度順にまではしないことも多々ある
723デフォルトの名無しさん
2024/04/25(木) 00:00:11.21ID:SJJcBnEk
>>722
マジックナンバーかよw
724デフォルトの名無しさん
2024/04/25(木) 00:18:38.90ID:9pftPPPG
>>723
┐⁠(⁠´⁠ー⁠`⁠)⁠┌
725デフォルトの名無しさん
2024/05/07(火) 09:19:02.24ID:dcFbjZui
MT4かよ
726デフォルトの名無しさん
2024/05/26(日) 18:34:28.21ID:TVlTpabA
FileSystemObjectのDeleteFolderかFolder.Delete使うと
対象フォルダーにシンボリックリンクやジャンクションあると
リンクじゃなく参照先が削除されるから気を付けた方が良いよ
定期的に掃除するログやバックアップフォルダーに
大事なフォルダーへのリンクなんか悪戯で作成されると消えちゃう
仕込まれた日と削除される日に時間差があるので追跡難しい
Defenderも気付いてくれない
フォルダーの削除はRmDirにしとき
727デフォルトの名無しさん
2024/06/19(水) 13:39:07.69ID:Z4GWURaA
恐ろしい
そんな罠が
最近fsoの方使ってるから気をつけなければ
情報thx
728デフォルトの名無しさん
2024/06/21(金) 17:49:43.88ID:97rAWOJS
kill のが一般的だと思ってたが、そんなことは無かったのか
シンボリックリンクやジャンクション(つまりショートカット?)とかがある場合の挙動は知らないけど
比べた人が居て、ほぼおなじ動作なら kill のが楽だと
https://www.limecode.jp/entry/difference/kill-deletefile
729デフォルトの名無しさん
2024/06/21(金) 18:18:10.26ID:JmSRYM7J
削除の差異は意識してなかったからよくわからんけど、ファイルやフォルダの扱いがfsoの方が書きやすい、わかりやすいでこっち使い始めたかな…
再帰とかfsoの方が書きやすい(ソースがシンプル)はず…
730デフォルトの名無しさん
2024/06/21(金) 21:19:36.24ID:jAZYV/Wx
BASICはOSだからな
731デフォルトの名無しさん
2024/06/22(土) 08:54:35.35ID:wHSF3406
違うか フォルダの中に拡張子.lnk があるかどうか事前にチェックするべきか(他の対象外のファイルとかも
DeleteFolder や RmDir だと無条件で削除してしまうからキケンがあぶないってことか
キャベツを包丁で切ったら青虫まで一緒に切り刻んでしまいました
あらかじめ葉をむしって洗ってから切りましょう みたいなことだろうな
732デフォルトの名無しさん
2024/06/22(土) 11:29:50.78ID:n6A/NZx5
チェックするの面倒だから豆腐切れない斬鉄剣で切るんじゃないの?
733デフォルトの名無しさん
2024/06/22(土) 11:47:45.85ID:R3uDiOs/
rm -rf /
734デフォルトの名無しさん
2024/06/22(土) 13:28:14.09ID:AjNB02TK
NG🚮
735デフォルトの名無しさん
2024/06/22(土) 13:38:00.95ID:o/eWDsQ7
どっちかというとやばいのは
rm -rf *
の方だったかな
736デフォルトの名無しさん
2024/06/24(月) 00:37:34.39ID:sso3G8sO
>>730
それはBASICインタプリタが起動しているだけ
737デフォルトの名無しさん
2024/06/24(月) 15:47:37.22ID:W/0xkGee
Accessに限らんじゃん Word でも Excel でもてことだよな
Excel連中に知られたら、阿鼻叫喚の世界だな あいつら節操無いし
738デフォルトの名無しさん
2024/06/24(月) 16:26:48.42ID:F40a+XEU
知らなくても知ってたといいはるからなw

逆に知らなかったことにすることあるわ
森は大切に育てないとな
739デフォルトの名無しさん
2024/10/01(火) 09:21:59.28ID:TDdMwhQJ
Conpact & Repairを内部からVBAで命令しようと思ってAIに訊きながら何時間も格闘したあとにググったらできないことが判明した。
Claude3.5とGemini Proがここまで馬鹿とは。
何度も提案してくるけどシンタックスエラー出しまくるし。基本構文すら間違えるようでは人間プログラマーはまだまだ安泰だね。
740デフォルトの名無しさん
2024/12/03(火) 11:46:34.24ID:dxkeCahd
ファイルメニューのオプションで、閉じるときに最適化する を選んでおくだけでいいような
これをチェックしないまま使い続けて「壊れた」とか「容量が」とか大騒ぎする方々が多い気がする
気がするだけだけど ×Conpact ○Compact
741デフォルトの名無しさん
2024/12/03(火) 14:00:15.98ID:En2cnAMO
毎回圧縮してたらすぐ壊れるよ
742デフォルトの名無しさん
2024/12/03(火) 16:54:24.51ID:dxkeCahd
数十社(延べ数百台)の業務アプリこなして来たけど、そんな事例は一件たりとも経験していない
じぶんが開発用とか運用テスト用とかで仕立てて来たマシンでも、そんな事態に陥った経験は無い
圧縮と書いているけど、最適化を指定しておけば修復もするはず 修復できたものは壊れたとは呼ばない
それでも尚壊れたというなら、お作法に則って無い制作物だったとかなのかも知れない
少なくとも「すぐ壊れる」事態には陥らない

開発途中で、試行錯誤を重ねてあれこれ試してしまった ←ようなケースでも、その作業の途中で
手動で最適化する、或いは一旦閉じて最適化をさせるだけで悲劇からは回避できる
743デフォルトの名無しさん
2024/12/03(火) 21:02:10.99ID:BzSKhMhy
中身全部別ファイルにコピーしないと、なんて事も珍しくはないけどね
744デフォルトの名無しさん
2024/12/04(水) 00:01:04.29ID:hze6J6h6
運用中に壊れたことないけど、昔は開発中に度々壊れてた(壊してた)な…
昼と夜にバックアップしてた懐かしい思い出w
745デフォルトの名無しさん
2024/12/04(水) 11:09:06.60ID:oDv/ROvl
Accessが安定したのは2000くらいからだよ
746デフォルトの名無しさん
2024/12/04(水) 11:12:46.01ID:HphOCGl2
>>743
最適化は全部別ファイルにコピーしているよ
747デフォルトの名無しさん
2024/12/04(水) 17:06:47.73ID:ZnmFvaLG
ニホンゴムツカシイネ
最適化の最中は隠しファイル作ってソッチにコピーした後圧縮して、完了したら元ファイルに上書きしてる
 てことを言いたいのだろうが
(おれは)最適化(したファイル)は全部別ファイルに・・とも読めて、一瞬「無駄だろ?」とか思った
748デフォルトの名無しさん
2024/12/04(水) 20:59:10.46ID:hze6J6h6
日本語プロパティになった時は、なんて事しやがるねんて思った
特定文字列がうまく認識されなかったり(T_T)
初心者にはわかりやすかったけれども
749デフォルトの名無しさん
2025/03/28(金) 20:56:49.89ID:DlL+MxYf
ACCESSには散々、世話になったがもう要らないんでvisual studioにレポートとサブフォームの機能だけ移行して亡くなっていいよ
750デフォルトの名無しさん
2025/03/29(土) 13:14:03.44ID:vo1WPeF9
ACCESSの便利さが全くわかってない素人w
あれをvsでやろうなんて全く思わない
vsでの書き方を覚えるのは不要な労力でしかない
vsでやれと言われたら従ってね。できなくはないからw
751デフォルトの名無しさん
2025/03/29(土) 13:17:20.16ID:vo1WPeF9
>>750
ちなみに試しかけてはみたよ
ACCESS消滅するまでムダだとわかった
その頃の書き方も変わる可能性もあるし
752デフォルトの名無しさん
2025/03/29(土) 16:02:13.66ID:M3jsTRd4
ADODBですねわかります
753デフォルトの名無しさん
2025/03/30(日) 08:20:15.93ID:F3fFdGm1
>>750
>>751
何を一人でゴチャゴチャ言ってんだ?
754デフォルトの名無しさん
2025/03/30(日) 09:20:48.46ID:bJrIExL2
755デフォルトの名無しさん
2025/03/30(日) 22:12:48.36ID:GlW9emcv
何も言い返せない素人の捨て台詞
756デフォルトの名無しさん
2025/04/01(火) 08:24:46.89ID:4aIYCmIe
Visual Studio って、開発環境では?
C# + Visual Studio とか .Net + Visual Studio とかのように、言語+IDEと捉えるもののような
そこへAccessのレポート組み込め、サブフォーム(←なぜサブ?)の機能加えろとか、思い違いも甚だしい
757デフォルトの名無しさん
2025/04/01(火) 10:39:47.09ID:KG0zKw3F
昔はVSにクリスタルレポートのサブセットとかバンドルされていたからレポートほしいという要望は普通では?
自作ではページングとか面倒だし
WinFormならあるからサブなんでしょ
見せるだけならデータバインドでいいけど編集するには標準コントロールでは物足りない
Access相当の連結コントロールがタダであれば捗るとは思う
Access廃止するならコントロールライブラリを提供するぐらいやって欲しい
758デフォルトの名無しさん
2025/04/02(水) 01:27:05.55ID:JuxZeGhm
クリスタルレポートはACCESSのに似てて期待したが、全然ACCESS相当まで機能追加されなかったので結局使われなかったな
(顧客へのシステムとして)
DB使わない部分では使ってたチームあったかもしれん
759デフォルトの名無しさん
2025/04/02(水) 12:09:23.32ID:k9Y5euIy
>>758
ほんそれ
760デフォルトの名無しさん
2025/04/02(水) 12:27:12.37ID:5a/oTSSC
クリレポ、一応はDB使った納品書かなんかで使ったわ
情報が全然なくて自分で弄りながら作ったからエラい苦労した記憶しかない
761デフォルトの名無しさん
2025/04/02(水) 14:23:11.10ID:DR9S3YFG
Visual Studio の WinForms から Reportコンポーネント じゃあダメなんか?
https://www.agtech.co.jp/products/fastreport.net/online/ProgrammerManual/ja-JP/UsingReportInVS/TypicalScenario.html

True WinReports for .NET なんてのもあるけど、使えないのか?
https://www.componentsource.co.jp/product/true-winreports-net-j/about
Accessのレポートのように、微に入り細を穿つ作りはヨソのコンポーネントぢゃあ面倒 だとしても
用意されたものを使うっきゃ無いだろうに

ハナシが逸れついでにググって見ただけだから君らの一件との整合性は知らん
レポートコントロールってのも追加できるようだが、それもすでに使い物に成らんのか?
https://qiita.com/vicugna-pacos/items/80e76059af2a29d5835f サイトの情報が古いてか
762デフォルトの名無しさん
2025/04/02(水) 16:22:13.97ID:kFN7dZ5N
クリレポを買収して中身一緒なの
763デフォルトの名無しさん
2025/04/02(水) 17:44:39.81ID:DR9S3YFG
じゃあ、それで解決じゃん?困らないじゃん?
なんでわざわざAccessスレでVisual Studioのクリスタルレポートのボヤキしてるん?
764デフォルトの名無しさん
2025/04/02(水) 18:38:29.39ID:kFN7dZ5N
そもそもAccessスレはム板には相応しくないのかもしれん

引用
未だにCrystalReportの呪いがある人でそんなたいした帳票を出してない人には選択肢の一つとなると思います。
ネットで結構有名なC#等の質問サイト等に行くとすぐに「ActiveReportを導入しなさい」的な書き込みが多く見られます。
私が昔から尊敬するネットで良く質問に答えて下さる様な人たちも同じ返答をします。
ActiveReportって結構良い値段します。

なぜMicrosoftReportなのか?
無料だという事とコンポーネントの互換を気にしなくて良い事です。
765デフォルトの名無しさん
2025/04/02(水) 18:43:56.93ID:kFN7dZ5N
軒並み古いな



766デフォルトの名無しさん
2025/04/02(水) 23:12:24.47ID:1Uz6aYIb
>>764
マクロしか使ってないやつはそう考えるだろなw
767デフォルトの名無しさん
2025/04/03(木) 07:43:51.31ID:LP+5khva
結構いい値段しようが、デベロッパーなら価格転嫁できるだろうに プライベートユースで開発してンのか?
小規模向けでぜんぶ込みで安価になんでも開発できるAccess、しかももう改良の余地も無いほどに洗練されてる(w)
こんなレガシーな開発環境他に類を見ないだろ AccessのAccessたる所以ってことで、独自の地位を確立してるでいいじゃん
768デフォルトの名無しさん
2025/04/04(金) 10:57:00.22ID:22bgX6/4
AccessでマクロとかVBA使うより
MDEだけ使ってあとはVS(VC/VC#)だろこの板なら常考
769デフォルトの名無しさん
2025/04/04(金) 13:05:53.92ID:BXxq7UNx
か、かんちがいしないでよね!
サーバーなんかじゃないんだから!
って言い張るためだけに存在を許されている
770デフォルトの名無しさん
2025/04/04(金) 13:27:46.05ID:EKlY2S8w
素人が必死
771デフォルトの名無しさん
2025/04/04(金) 17:00:30.03ID:W5FNOvW3
python良いよ
https://www.microsoft.com/ja-jp/download/details.aspx?id=54920
https://github.com/gordthompson/msaccessdb
https://qiita.com/taro373/items/619e3385087279f72279
772デフォルトの名無しさん
2025/04/04(金) 17:43:27.50ID:xkW8ZkKi
vbaでないならsqliteでよくない
773デフォルトの名無しさん
2025/04/04(金) 18:11:15.64ID:VvPqqnTF
なら、ソッチで話題にしてりゃいいだけじゃんか
「DBなんか都合のいいのない?」「mdb・accdbでいいよ もしくはmde・accdeで」
っつーひと言で済む話
誰かがこの板にAccessスレ建てて、いくばくかの人達が参考にしてることの何がいけないんだか
Access単体で開発環境整ってるんだし、なぜことさら別のIDEの話題してんだか意味わからん
そのくせレポートがいいもの無いとか愚痴ボヤキはじめるし Accessだけなら一向に困らんのだが
774デフォルトの名無しさん
2025/04/04(金) 20:00:14.25ID:uy+C0MOy
>>773
勝手に一人でキレてるバカ発見(笑)
775デフォルトの名無しさん
2025/04/04(金) 22:44:01.18ID:GYnqFS+F
>>773
ほんそれ
明確にわかりやすいバカがいついてるなぁw
776デフォルトの名無しさん
2025/04/05(土) 08:22:18.61ID:o7jWaKkN
>>773
お前756と同じやつ?
777デフォルトの名無しさん
2025/04/05(土) 09:07:26.55ID:9ACWZmiM
そうです 私が756 761 763 767 773ですが、何か?
778デフォルトの名無しさん
2025/04/05(土) 13:04:26.36ID:Ur9Vw4Z1
>>773
マクロしか使ってないやつはそう考えるだろなω
779デフォルトの名無しさん
2025/04/05(土) 13:33:58.77ID:o7jWaKkN
>>777
「開発環境」の定義を自分の中で整理してから発言しろ
780デフォルトの名無しさん
2025/04/05(土) 17:37:20.26ID:9ACWZmiM
そのぐらいエディタ(VBE)の事だとアタマの中で読み替えろ
コンパイラは不要だしデバッグもできるし 重箱の隅突っ突く事しか出来んのか
いちいち呼び止めといて用事はそれだけなのか? 鬱陶しいにも程がある 巣に帰れ
781デフォルトの名無しさん
2025/04/05(土) 19:57:29.73ID:TpoqeJku
「DBなんか都合のいいのない?」「sqliteでいいよ もしくはsqliteで」
782デフォルトの名無しさん
2025/04/05(土) 21:16:47.43ID:o7jWaKkN
>>780
おい、バカ
おーい、バーカ
ベーシックの勉強よりも日本語の勉強からしましょうね
定義って日本語覚えてきてね
アクセスかじったじむやさんかなんかのあいてしてるひまはえすいーのひとにはないんですよーwww
783デフォルトの名無しさん
2025/04/05(土) 21:23:56.99ID:yx70iKi8
スレタイすら読めない馬鹿が居着いてしまったか
784デフォルトの名無しさん
2025/04/05(土) 23:24:10.62ID:d+s1BeKK
>>782
無様なバカ
785デフォルトの名無しさん
2025/04/11(金) 19:36:35.53ID:i2PY9ZNn
WIX
786デフォルトの名無しさん
2025/04/21(月) 23:53:02.62ID:CmWZglYO
私はプログラマ歴20年ですが、お客様からUTF-8形式のデータを出力してほしいと言われました。
UTF-8って何ですか?
787デフォルトの名無しさん
2025/04/22(火) 08:27:56.01ID:41LYkh+W
こないだビジネスsoft板のExcel総合相談所で話題に成った奴だな
寄せ集めの、ほぼ野良に近いデータ掻き集められたものは、文字コードがめちゃくちゃなのもあるという
TableからExcel出力とかじゃ無くて、一旦csvでUTF-8に限定して出力してみる
それを元データと比較して文字化けとかしてないことを念入りにチェックしなさいと

Excel上では見た目は見分け付かないけど、実は文字コードが全然違うものだった とかはよくあるらしい
データ入力時メイリオ使っててそれをPDF変換したものは勝手に中国語の同じ字に変換されてしまう、とか
Macで入力された文字が、Unix系で(ry とか、文字コードが勝手に変わる要因は様々らしい

http://2chb.net/r/bsoft/1728342726/600- 一応この辺から辿ってくと変遷が分かるかも
788デフォルトの名無しさん
2025/04/23(水) 09:20:24.52ID:yoO2Q6CW
〜と〜


lud20250917082742

ID:7Tyglgssのレス一覧:


389デフォルトの名無しさん
2021/06/07(月) 23:05:55.18ID:7Tyglgss
>>373
それ元がボケてるんやな
ディスプレイ買い換えるしかないな
うちは拡大してもクッキリやで
390デフォルトの名無しさん
2021/06/08(火) 00:47:30.58ID:Cnc+U0Kq
>>389
んなことないだろEIZOのFLEX Scanだし
ぼやけるって言葉の認識だと思うが
ベクターとラスターの拡大みたいなこと
Access VBA 質問スレ Part2 	YouTube動画>3本 ->画像>5枚

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

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

頭(目?)悪そうだなこいつ
392デフォルトの名無しさん
2021/06/10(木) 01:23:12.45ID:/1oHskcz
文字が
Access VBA 質問スレ Part2 	YouTube動画>3本 ->画像>5枚
こうなるのをボヤボヤといってるんだと思う

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

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

VBSはコードを見るのも書くのもサクサクだからお気に入りだよ。重たいACCESSを開かなくていいのは気が楽だよ。
でも、関数がVBAと少し仕様が違うとか面倒なことがあるのが玉に瑕だなあ。
398デフォルトの名無しさん
2021/06/15(火) 20:40:00.08ID:XJxpvmdE
>>393
mdbからaccdbにすると壊れ難くなる気がします。
399デフォルトの名無しさん
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
プロシージャーを書き換えるプロシージャーを書くのって面白い?
402デフォルトの名無しさん
2021/06/16(水) 21:11:44.71ID:ni17rAhE
>>400
共有ロックの問題はMaxLocksPerFileを増やしたらあっさり解決しました。
>>401
手作業でプロシジャーを変更していたときより遙かに楽になりましたし。仕事が楽になる過程は面白いです。
なによりもAccessと違ってサクサク動くのがVBSの最大の魅力です。
403デフォルトの名無しさん
2021/06/16(水) 21:18:57.41ID:ni17rAhE
一括でモジュールを書き換えるのすら面倒になったのでLoadFromTxtに切り替えた。
これならフォームやレポートも丸ごと移植可能だわ。
404デフォルトの名無しさん
2021/06/22(火) 11:37:45.99ID:Ug3/ZHCp
オフィス365でデーターを保存したときにウインドウの上のバーの箇所のタイトルに
「ファイル名+保存しました・・」って表示になるけど、
これ出さないように出来ないのかな?

ウインドウのタイトルが変わるとRPAが誤作動をおこすので
いらない機能をつけるなよといつも思います。
405デフォルトの名無しさん
2021/06/22(火) 11:40:11.76ID:Ug3/ZHCp
>>404
誤爆でした。ここAccessなんですね。。
406デフォルトの名無しさん
2021/06/22(火) 19:29:04.84ID:jEG7fGSr
なんでVBA使わずRPAなの?
407デフォルトの名無しさん
2021/06/22(火) 20:23:21.77ID:BN5S6vpx
そのVBAを操作する人間の操作を代行させるのがRPAなんやで
408デフォルトの名無しさん
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って、
ページ変更・ヘッダー・フッターなどでも、カウントが増えますか?

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

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

Win11のNLSってどうなってるんだろ
418デフォルトの名無しさん
2021/08/27(金) 14:57:39.16ID:2jUlNhAQ
すみません、見逃してた。
Windows10の21H1ですね。
NSLがなんの事かわかんないですが、確かに前にも経験したトラブルの様な気がします。
419デフォルトの名無しさん
2021/09/04(土) 15:37:28.00ID:s2WpiZ/S
明後日スタンダード試験だけどやばい模擬問題正答5割だわ
420デフォルトの名無しさん
2021/09/04(土) 16:34:10.88ID:JBLhGxRz
ん、まぁ、ガンガレ
421デフォルトの名無しさん
2021/09/05(日) 03:44:21.58ID:Ocn+wvkQ
外部からaccessの特定のレポートを開く方法ある?
422デフォルトの名無しさん
2021/09/05(日) 14:14:02.27ID:ICYnYWWd
外部って?
普通にCOMで操作すれば良いんじゃねえのか
423デフォルトの名無しさん
2021/09/07(火) 12:53:43.40ID:3mZ93kfX
パススルークエリのパラメータをaccess外から設定する機能教えてください。
424デフォルトの名無しさん
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
428デフォルトの名無しさん
2021/10/09(土) 23:35:10.80ID:uMcy1fPR
VBAエキスパートって取ったほうがいいでしょうか
429デフォルトの名無しさん
2021/10/10(日) 08:29:41.88ID:fy4lWk3l
資格マニアを見る世間の目は冷たい
430デフォルトの名無しさん
2021/11/02(火) 07:37:22.79ID:0Z1mhYfJ
>>428
資格より実践を積むべし
431デフォルトの名無しさん
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に、何か制限などありますでしょうか?
432デフォルトの名無しさん
2021/11/29(月) 15:15:06.43ID:MiFRCJa7
直接の返答じゃないけど、SQL一発書きじゃなきゃだめなの?
事前にレコード数チェックして分岐じゃだめなの?
433デフォルトの名無しさん
2021/11/29(月) 15:17:50.75ID:vB15GkdT
UPDATE と組み合わせて、SQL一発を考えてます
無理であれば、おっしゃるように分岐かなと
434デフォルトの名無しさん
2021/11/29(月) 16:01:33.58ID:MiFRCJa7
ちょっと気になったので手元で実験してみたけど、dummyテーブルが存在して空ではないときには
(多分)431の想定どおりの挙動をしていると思う
バッドノウハウ臭いので、おとなしく事前チェックして分岐かなぁ
まぁAccessのSQLって変だよね
435デフォルトの名無しさん
2021/11/29(月) 17:41:32.65ID:XYio4/pG
access はupdateいっぱつで初挿入もできたはず
しゅきーのヌルを上書きする感じで
436デフォルトの名無しさん
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")
じゃ駄目なの
439デフォルトの名無しさん
2021/11/30(火) 10:58:46.58ID:+NfPg838
>>438
単純にinsertするだけならそれでいいんだけど、existsを使って条件付けようとしてるのでvaluesは使えない(エラーになる)
440デフォルトの名無しさん
2021/11/30(火) 12:38:13.11ID:nsxxcWz3
それ自分でDUALという名称でテーブルを作って1レコード入れておけば出来るよ。
OracleのDUALも実体はそんな感じだったと思う。
441デフォルトの名無しさん
2021/11/30(火) 16:33:37.59ID:KirC+CSy
>>437
更新はできるけど、存在しない行を更新しようとしたとして
その行を新規追加することなんてないだろ...
と思ったけど、追加されるのか

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

SQL ServerだってFromでJoinしてUPDATEできるけど、
さすがに行が追加されることなんてないぞ
エラーの原因が分からない?
442デフォルトの名無しさん
2021/11/30(火) 16:35:34.50ID:KirC+CSy
あ、最後なんか変な行入った
443デフォルトの名無しさん
2021/11/30(火) 17:23:09.43ID:aruulzL7
あくせく働くぜ
444デフォルトの名無しさん
2021/11/30(火) 18:49:33.51ID:VsTnDahT
>>441
Access的には「更新可能クエリ」はテーブルと同等の扱いなのだろう
445デフォルトの名無しさん
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

これの更新だから行数は変わっていない
447デフォルトの名無しさん
2021/11/30(火) 23:40:10.71ID:KirC+CSy
UPDATE文で実テーブルの行数が、な
448デフォルトの名無しさん
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
もうちょっと俺を信用してもええんやないかと思ったが
出来たんならええか
451デフォルトの名無しさん
2021/12/08(水) 11:00:44.75ID:8eCyKUYS
データベースに対し、レポートを外部データの取込で追加するのですが、
この操作をGUIでなくコマンドで行う事は出来ますでしょうか。
452デフォルトの名無しさん
2021/12/08(水) 11:36:19.36ID:XFpeOKs/
mdbファイルまるごと差し替えでok
453デフォルトの名無しさん
2021/12/08(水) 14:57:00.86ID:8eCyKUYS
>>452
返信ありがとう
やっぱ基本はDBごと差し替えになるんですね・・・
最新を管理しないといけないということですか
454デフォルトの名無しさん
2021/12/08(水) 16:58:22.13ID:sRvDCOgH
>>450
レコード入れずに試してみてました
あとで確認してみます
455デフォルトの名無しさん
2021/12/08(水) 18:12:44.70ID:ixTDMdmo
>>451
access起動コマンドラインオプションに
/x マクロ名
で自動実行可能

向きが逆だけどオブジェクトのコピーでレポートをコピー出来る
456デフォルトの名無しさん
2021/12/08(水) 20:30:00.04ID:FsTgnRus
>>451
DoCmd.TransferDatabase acImport
457デフォルトの名無しさん
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って、サポート切れてんの?

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

Access VBA 質問スレ Part2 	YouTube動画>3本 ->画像>5枚

こういった線が付きました
Office2016 Proなのですが設定等でVBエディターでも表示できますでしょうか
またお恥ずかしながらこの線の一般的な名称も教えて頂けませんでしょうか
462デフォルトの名無しさん
2022/01/17(月) 17:44:28.15ID:hBkYcVxQ
>>461
何で開いたのかは知らんけど、AccessとかのVBAエディタには、そういった今どきの便利な機能は無いかと
一般名称かどうかはしらんけど、VSCodeとかの設定では Indent Guide でひっかかるんじゃないかな
463デフォルトの名無しさん
2022/01/17(月) 20:02:01.14ID:r2vXEkpI
>>462
ありがとうございます
名称のほうぐぐってみまして、確かにVS関連の情報が多く出てきました
大変便利ゆえに残念です!
464デフォルトの名無しさん
2022/01/31(月) 11:21:11.42ID:ZCY1so+a
Microsoft 365 Access Runtime ダウンロードリンクが動作してないのですが
ダウンロードできた方おられます??
465デフォルトの名無しさん
2022/01/31(月) 11:29:43.23ID:Di33df7w
>>464
見てみたけど、ダメだねぇ
466デフォルトの名無しさん
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のから操作するとうまくいきません.解決策はないでしょうか?
467デフォルトの名無しさん
2022/02/22(火) 22:38:16.30ID:h8gQU92u
間違えました。
GetOpenFilenameが開くフォルダーをGetOpenFilenameに→
GetOpenFilenameが開くフォルダーをc:\x\yに
468デフォルトの名無しさん
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
469デフォルトの名無しさん
2022/02/23(水) 10:16:59.77ID:/GeE/zJY
>>468
GetOpenFilenameでダイアログが立ち上がったときのフォルダーをc:\x\yにしたいという意味です。
470デフォルトの名無しさん
2022/02/23(水) 14:00:43.13ID:3ksW4w1X
FileDialogを使う
471デフォルトの名無しさん
2022/02/23(水) 15:58:28.79ID:noR6ud0U
https://officevba.info/filedialog/ こっちスかね
メリットもデメリットも書いてあって親切
472デフォルトの名無しさん
2022/02/23(水) 16:48:55.01ID:/GeE/zJY
>>470
ありがとうございました.
FileDialogだとカレントフォルダーで開いてくれました.
473デフォルトの名無しさん
2022/02/23(水) 16:53:30.10ID:/GeE/zJY
>>472
ありがとうございます。この説明はとても親切ですね。よくわかりました
474デフォルトの名無しさん
2022/02/24(木) 15:49:02.02ID:G5PhgONP
>>466
Excel.ApplicationのDefaultFilePathを設定していったん終了したら、
次からそこで開くっぽいぞ

Set exApp = CreateObject("Excel.Application")
exApp.DefaultFilePath = "C:\x\y"
exApp.Quit
Set exApp = CreateObject("Excel.Application")
res = exApp.GetOpenFilename("Csv Files (*.csv), *.csv")

こんな感じか
実行したらエクセルのオプション変わっちまったww
デフォルト何だっけな
475デフォルトの名無しさん
2022/02/28(月) 11:00:59.24ID:JmI4xSUc
初歩的な質問でお恥ずかしいのですが教えて下さい
面倒な計算や処理をして値を返す関数Aがあった場合

その戻り値を判定したい場合

If A = 1 or A = 2 then

と記述するとaccessは 2回処理することになるのでしょうか

それでしたら仮に変数(V)を用意して、一旦
V = A

のように格納してから
If V = 1 or V = 2 then

と記述したほうが処理的には一回で済むという解釈になりますでしょうか
すみませんがご教示頂けたらと思います
476デフォルトの名無しさん
2022/02/28(月) 11:49:10.60ID:JmI4xSUc
すみません、試してわかりました。
後者は一回で済みました。

質問することでその後すぐ簡単な確認方法を思いつくことがよくあります
お恥ずかしい。スレ汚し失礼しました;
477デフォルトの名無しさん
2022/02/28(月) 12:38:27.12ID:jOzz1fM6
どんまい 気付きや学びに成りゃ無駄じゃ無い
478デフォルトの名無しさん
2022/02/28(月) 12:41:50.52ID:frLBMESq
ちょっと違う話だけど、VBAにもOrElseやAndAlsoが欲しいなと思うときはある
479デフォルトの名無しさん
2022/03/06(日) 15:10:37.27ID:R+n9Kzax
SQLの勉強をさいきんはじめました

動的SQLによる数独の超高速解法
というのを読みました

動的にSQLを生成するため
・一つはJDBCを使う方法
・もう一つはストアド・プロシージャを用いた方法
云々って書いてあります

これらって、アクセスのSQLでもできそうなものでしょうか?
(過去に話題として出てたらごめんなさい)
できそうならやってみようかと
茨の道ならあきらめます
480デフォルトの名無しさん
2022/03/06(日) 16:34:17.90ID:TgGQVPNx
2つとも分からんけど、VBAが使える環境なら動的SQLは可能なはず
481479
2022/03/06(日) 17:10:27.06ID:R+n9Kzax
SQLとは、使用人から経営者になることだ
今まで自分で作業してたのをしなくてよくなる
使用人に、「こういうのを出してくれ」と
言うだけでよい

数独についてであれば、今まで
総当りするプログラムとか
条件判定とかを自分で考えていたが
SQLならそうしたものは自分で考えなくてよい
勝手に総当りして勝手に判定してくれる

・・・ということが書いてありました
これって、既存のプログラムの要件を
SQLで表現できれば中身は考えなくてよい
ってことですよね けっこうおもしろいかも
482デフォルトの名無しさん
2022/03/07(月) 07:14:29.39ID:xVPINsIe
経営しなくてもお金が稼げるSQLがどこかに書いてあると良いのに。
483デフォルトの名無しさん
2022/03/07(月) 12:53:13.63ID:+OeG3Wfd
>>479
JDBC Driver で Access MDB に接続できる

つまりワカラン
484デフォルトの名無しさん
2022/03/07(月) 13:11:37.42ID:3lxJ/2QX
これかな?
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で補ったりする必要はあると思う
485デフォルトの名無しさん
2022/03/07(月) 14:07:14.74ID:tjPYNfUL
各DBで使えるSQL構文一覧表
(ROLLUPは jet使えない oracleはokとか)
のページが昔あったのに
今見たら見あたらなかったわ
486デフォルトの名無しさん
2022/03/08(火) 06:28:34.40ID:fGzXxwFZ
総あたりする場合、SQLはどうやって
候補を管理してるんだろ?
ふつうにメモリ上に持ってたら
メモリが足りないような
487デフォルトの名無しさん
2022/03/08(火) 20:13:50.94ID:fGzXxwFZ
数字の書かれたパネルがあります
このパネルのマスをいくつか
ぬりつぶし、残った数字の積が、
たて・横のどの列も12になるように
してください

2523
6257
5262
2334

これぐらいの規模の問題で
練習したほうがいいかも
ぬりつぶしは1に置き換える
488デフォルトの名無しさん
2022/03/09(水) 11:17:27.88ID:wDARNtYc
動的SQLっていうから

DBエンジンにSQL投げる

その結果を受けて自分を書き換えて
再度新しいSQL投げる

望む結果になるまで繰り返す

みたいな話を期待したら
拍子抜けだった
489デフォルトの名無しさん
2022/03/10(木) 18:36:45.22ID:y/Xk/sN2
>>487
SELECT 解答
FROM すべてのあり得る盤面
WHERE 今回の条件
だから
まず盤面を1行にして
2523625752622334
と表す

すべてのあり得る盤面は
2523625752622334
2523625752622331
2523625752622314
2523625752622311
 〜
1111111111111111
だけどこれをどうSQL文の中で
表現すればいいのかわからん
490デフォルトの名無しさん
2022/03/11(金) 12:30:05.01ID:+z9vFN5I
>>489
>>484の記事を1から読んでこい
491デフォルトの名無しさん
2022/05/01(日) 00:28:53.70ID:uZ+uV6s8
VBAのコード内の文字を置換するプログラムをVBAで行うことはできるでしょうか?
置換の組合せが複数あるので一つずつCtrl+Hで操作すると間違いそうなので,
置換前文字列と置換後文字列の配列を書いて,それを順に実行するようにしたいのです.

自分のコード内に当該置換文字列をがでてくるので,その回避も考えないといけないですが

よろしくお願いします
492デフォルトの名無しさん
2022/05/01(日) 07:29:11.23ID:1HGTgNe1
>>491
できるよ
493デフォルトの名無しさん
2022/05/01(日) 07:36:23.30ID:1HGTgNe1
ごめん、AccessVBAスレだった
知らん
494デフォルトの名無しさん
2022/05/01(日) 16:14:10.55ID:4P2yloMu
ACCESSにもApplication.VBEがあるっぽいから、エクセルとかと同じようにできるんじゃね
そもそもコード内をそうそう置換するって状況がよくわからんがな
495デフォルトの名無しさん
2022/05/01(日) 20:13:11.92ID:uZ+uV6s8
>>494
オブジェクト名を修正すると,名前の自動修正機能で,オブジェクト間の整合性は保たれます.
例えば,Aクエリー内でBテーブルを使用していて,Bの名前をCに変更するとA内のBテーブル名もCに自動的に修正されます.
ところが,コード内でオブジェクト名を引数に使用している場合(DoCmd.OpenQuery()やQeryDef()など)は,自動的に修正されないので
コード内の文字置換で修正するしかありません.
オブジェクト名をより統一的にしたいとか,あるルールで短くしたいなどの事情です.

でも本当にコードを使ってコード内の文字置換できますか?
「エクセルとかと同じようにできる」とのことですが,エクセルのVBAでできる方法を知りません.
496デフォルトの名無しさん
2022/05/01(日) 20:33:27.28ID:XyObubkl
>>494がApplication.VBEってヒント出してくれてるのに自分で調べる気は無いの?
497デフォルトの名無しさん
2022/05/01(日) 20:51:07.35ID:uZ+uV6s8
>>496
いままでApplication.VBEとVBAの違いをしりませんでした.
Application.VBEで検索して,オブジェクトであることをしりました.
できそうな気がしてきました.
調べます
498デフォルトの名無しさん
2022/05/01(日) 21:27:48.04ID:q0kLnjNb
>>497
お前みたいな馬鹿は、方法自体間違えていると思うよ
499デフォルトの名無しさん
2022/05/01(日) 22:36:20.05ID:uZ+uV6s8
>>498
正しい方法言ってみな。
言えなきゃ超バカ決定。
500デフォルトの名無しさん
2022/05/01(日) 23:10:31.48ID:q0kLnjNb
やっぱり馬鹿だったか
馬鹿に馬鹿と指摘すると怒りだす
501デフォルトの名無しさん
2022/05/03(火) 18:13:45.75ID:hABwtxOZ
>>494>>496
497ですが、
Application.VBE.ActiveVBProject.VBComponents(i).codemodule.ReplaceLine(j,"修正後コード文字列")
を使ってできました。
502デフォルトの名無しさん
2022/05/03(火) 21:57:49.43ID:uVFGqhpy
>>501
ありがとう。勉強になります。
503デフォルトの名無しさん
2022/05/03(火) 23:56:04.39ID:9Zz7qGMa
コードとデータは分離しなさーい!
504デフォルトの名無しさん
2022/05/04(水) 01:12:27.06ID:L2QcoKdh
>>503
オブジェクト名はデータにできない
505デフォルトの名無しさん
2022/05/04(水) 01:29:47.87ID:T57Ht3+D
名前は文字列だろ!
VBAの提供するオブジェクトは大抵コレクションで管理されているだろ!
お前の作ったオブジェクトも管理できるようにしろ!
初歩だぞ初歩!
506デフォルトの名無しさん
2022/05/04(水) 01:39:45.29ID:L2QcoKdh
つまらん
もういいよ
507デフォルトの名無しさん
2022/05/04(水) 03:22:14.79ID:bSJdUNny
やっぱり馬鹿だった
508デフォルトの名無しさん
2022/05/04(水) 08:25:20.61ID:L2QcoKdh
>>507
人のこと馬鹿、馬鹿ってほんとにうるさい奴だな

今回のアプリは俺しか使わずオブジェクト名変更も今回限りが確定しているんで、
オブジェクト名をデータ化できるCreateQueryDefなどを使う手間を省いてクエリデザイナーを使っているだけ。

そういう事情も含めて「もういいよ」と書いたんだけど、読み取れんわな。

お前は実生活で他人の事情を汲み取る力が弱くて他人から避けられてるだろう。
実生活では流石に馬鹿と面罵しないとは思うが態度にはでてると思うよ。

エクセルVBAのようにワッチョイ付きならNG登録するんだが。
509デフォルトの名無しさん
2022/05/04(水) 12:11:33.62ID:T57Ht3+D
何人登録するつもり?
510デフォルトの名無しさん
2022/05/06(金) 14:43:39.68ID:HOAU3QSN
>>508
もういいから馬鹿は黙ってろ
511デフォルトの名無しさん
2022/05/11(水) 09:14:31.47ID:+mNN1hZ/
ここはBKのあつまりでつか?
51244
2022/06/18(土) 22:47:23.35ID:yLkug1TW
味噌も糞もいるのがこういう掲示板の特徴
それが面白ければ来るし退屈なら来ない
文句言うのはカッコ悪い
513デフォルトの名無しさん
2022/06/19(日) 06:53:58.66ID:R9q2ZnJn
>>512
こういうのかっこ悪い
51444
2022/06/19(日) 07:49:57.69ID:ZfwUc+SV
>>513
いやいや本当のイケメンだろうな
515デフォルトの名無しさん
2022/06/21(火) 16:34:11.41ID:q4pJaYn5
test
516デフォルトの名無しさん
2022/06/21(火) 16:34:30.21ID:q4pJaYn5
アプリケーションタイトルについて質問です。
今使ってるmdbのタイトルが2種類あって、「Access」のものと「ファイル名:データベース-フルパス-Access」のものがあります。

全部後者のタイトルにしたいのですが、設定の仕方がわかりません。
ヤフー知恵袋の「Accessのタイトルバーにファイル名を表示させることはできますか。
Excelでは表示されるのですがAccessでは”Access”としか表示されず少し不便なので、、」
を読むと何の設定もしなくても後者のようになると書いている人がいます。
どうしたらそうなるのでしょうか?

後者のやつは別にAppTitleとかで設定していませんので不思議です。
517516
2022/06/21(火) 17:34:19.49ID:q4pJaYn5
解決しました。
518デフォルトの名無しさん
2022/06/21(火) 19:20:51.51ID:EkCiEQiW
>>517
どうやって?
知りたい
519516
2022/06/21(火) 19:44:50.71ID:q4pJaYn5
>>518
いろいろ試したけど、結論は超簡単。
ファイル→オプション→現在のデータバース→アプリケーションオプション→ドキュメントウィンドオプション→タブ付ドキュメントをon

これでファイル名とパス名が表示されて複数のmdbを起動しても混乱しなくなりました。
520デフォルトの名無しさん
2022/06/21(火) 20:23:15.71ID:QtwFSmmg
OS:win10
Ver:365 16.0

フォルダの中に複数のExcelファイルがあります
accessで全てのエクセルの同一セルの文字をテーブルにまとめたいのです
Accecc vba エクセルの特定のセル
などで検索してみましたが解決に至っていません
どうかお力添えお願いします
521デフォルトの名無しさん
2022/06/21(火) 20:46:00.64ID:kU7/2TZz
何がしたいかと、どこまで出来て何がわからないのか詳しくかけ
522デフォルトの名無しさん
2022/06/22(水) 10:12:43.83ID:N/5JiATv
>>520
Excelシート全てインポートすればクエリー加工出来ると思うが、、
523デフォルトの名無しさん
2022/06/22(水) 10:16:19.65ID:N/5JiATv
>>520
Excelシートリンクでも良いぞ
524デフォルトの名無しさん
2022/06/22(水) 10:27:56.84ID:lUHG2pSs
ネ申エクセルからデータを拾いたいとかそんな話じゃね?
CreateObject("Excel.Application")
使って対象ファイル開いて、そっからさきはExcel VBAの範疇やろ
525デフォルトの名無しさん
2022/06/22(水) 12:36:20.21ID:N/5JiATv
なんだ
Accessでテーブル化したい、のでは無いのか?
何やりたいのか分からんな
526デフォルトの名無しさん
2022/06/22(水) 15:16:59.53ID:Z6mZqai9
「AccessVBAからexcelファイルのセル参照ってどうやるの?」ていう質問でしょ
527デフォルトの名無しさん
2022/06/22(水) 20:19:24.91ID:rLKMJdnt
質問には答えられるけど
答えるとまた次の質問が来るのが予測出来るからまんどくせ
528デフォルトの名無しさん
2022/06/23(木) 06:46:56.49ID:nErcbU9U
>>527
スレに来ないと良いよ
529デフォルトの名無しさん
2022/06/23(木) 07:36:49.86ID:xe+L83Np
>>521-523
なにをやりないか再度確認してコード見直していたら不具合点見つかって前進しました…
>>525
やりたいのはこれで30個程度のエクセルがあって全てフォームは統一されています
a3とb4とw30の値をテーブルにズドンと引っ張りたいのです

もうちょっと頑張ってみます
遅くなってごめんなさい
530デフォルトの名無しさん
2022/06/23(木) 12:13:27.06ID:jwJvRDT9
ACCESS VBA EXCEL CELLでクグルと沢山出て来ますね。
ACCESSからEXCEL開いて操作できると便利です、頑張ってください。
531デフォルトの名無しさん
2022/06/23(木) 12:56:15.59ID:uoofWh9e
>>529
CreateObject("Excel.Application")でエクセルを操作できるようにする

対象とするシートからa3とb4とw30の値を取得して変数 X Y Z に格納する
変数 X Y Z の値をAccess のテーブルに追加する
この二つの処理を全てのシートにループで行う

釣りが終わったExcel オブジェクトを閉じる
Access のオブジェクトの閉じる

これでいけるんじゃね?
532デフォルトの名無しさん
2022/06/24(金) 06:07:38.19ID:X+tgL9yK
>>531-532
ありがとうございます
こう書くとすごくわかりやすいですね

テーブル追加やLOOPは調べて書き方を学べそうなのでやってみます!
533デフォルトの名無しさん
2022/06/26(日) 13:37:45.11ID:DTfGvOZF

534デフォルトの名無しさん
2022/06/26(日) 22:59:47.94ID:Ter0iV/V
たびたびすみません
ばしっとフォルダ内のファイル名を取得することはできました
>CreateObject("Excel.Application")でエクセルを操作できるようにする
これの意味がようやくわかりました ありがとうございます

C:\Users\sanae\Desktop\vba\Book1.xlsx というExcelファイルのa3を変数に入れようとしているのですが
ぐぐったところファイルパスをつける書きかたが参考にできるページがみあたらず詰まっています
(このあたりにファイルパスとかシートとかを指定して)range(3.1) みたいなやり方かなあなんて思っているのですがどれもエラーになっちゃいました
参考になるページでもご教示いただければ幸いでございます
535デフォルトの名無しさん
2022/06/27(月) 00:21:56.25ID:LR8Jvthl
>>534
http://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はクリエイトオブジェクトで作ったエクセルオブジェクトね
あと変数は適当に定義しておいてね。
536デフォルトの名無しさん
2022/06/27(月) 01:42:38.20ID:Yed1CrTu
>>535
おおお
できてきました とても進みました
・フォルダを指定してファイル名を取得
・変数XYZに特定のセルの値を取得
537デフォルトの名無しさん
2022/06/27(月) 01:45:22.88ID:Yed1CrTu
すみませんCTRL+エンターで送信になってしまいました
・フォルダを指定してファイル名を取得
・指定したシートから変数XYZに特定のセルの値を取得
・XYZの値をテーブルに追加
超進みました

後は指定したシート名を持たないファイルに遭遇した時にどんなエラーになるのかが気になりますので
近々時間みつけて頑張ろうと思います

ありがとうございました!超ハッピー!
538デフォルトの名無しさん
2022/06/27(月) 01:59:55.53ID:YAQt7RYR
馬鹿は二度と来るなよ
539デフォルトの名無しさん
2022/06/27(月) 08:41:44.29ID:yeeW9wqV
VBAでやらなくてもテーブルimportで出来るやろ
無駄な努力だな
540デフォルトの名無しさん
2022/06/27(月) 11:56:31.55ID:LR8Jvthl
>>539
ブック数が多いから VBA でやりたいんじゃないの?
インポートでできる量だったら手でコピペの方が早いだろ
541デフォルトの名無しさん
2022/06/27(月) 15:59:24.18ID:jKYPD+Yx
対象のExcelファイルが固定なのか、頻繁に入れ替わるかどうかにもよるわな
542デフォルトの名無しさん
2022/06/27(月) 20:22:09.19ID:UdQiWAN3
どなたか教えてください。

売掛金消し込みのマクロを作成しています。VBAでソルバーを自動化したいと思っています。

目的セル、制約条件の参照セルの開始行が40行ごとに下がっていき、指定値は数値ではなく、セルを指定したいです。

とりあえず、全部の変数をvariant型にしてますが、なかなか上手くいきません。
543デフォルトの名無しさん
2022/06/27(月) 20:42:56.65ID:NFVjaUBh
なんでAccessVBAスレにまで書いてるんだよ
544デフォルトの名無しさん
2022/06/28(火) 12:01:23.56ID:W8L8uteA
こんな奴が作るプログラムで金勘定とか笑えるわ
己を知らないって馬鹿の特徴なんだよな
545デフォルトの名無しさん
2022/06/28(火) 12:08:16.40ID:S7aFTH1N
>>542
Access VBAスレでExcelの質問するなよ
546デフォルトの名無しさん
2022/06/28(火) 12:53:23.92ID:illrnTHm
EXCELで記録したVBAをACCESSで実行するとEXCELはXlmxにしなくても良いからじゃないの?
ソルバーは使い方わからんのでなんにも言えなくてスマン。
547デフォルトの名無しさん
2022/06/28(火) 13:14:48.17ID:v0i+TmEN
>>546
Excel VBAスレみればなにがあったのか分かるよ
548デフォルトの名無しさん
2022/06/28(火) 21:08:59.28ID:i28fB/zi
昨日アホな質問した541です。

accessスレにexcel VBAについて投稿してしまい、すみませんでした。

VBA初心者なので、よくわからずに投稿してしまいました。
549デフォルトの名無しさん
2022/06/29(水) 10:01:41.27ID:Es0nfTu8
初心者を言い訳にする香具師は同じ失敗を繰り返す
550デフォルトの名無しさん
2022/06/29(水) 12:18:55.14ID:C7zOwXa/
狭量にすぎる
551デフォルトの名無しさん
2022/06/29(水) 12:31:17.45ID:WL8L6KaP
スレを間違ったことではなくマルチが問題なのだがな
552デフォルトの名無しさん
2022/06/29(水) 13:27:42.53ID:tPok425v
>>551
それだけ焦ってたんでしょ。Excel VBA で反応がなければ藁をもすがる気持ちで アクセス VBA で聞いたんじゃない。
広い気持ちで
553デフォルトの名無しさん
2022/06/29(水) 13:50:40.09ID:Es0nfTu8
x VBA初心者
o 5ch初心者
o パソコン初心者
o コミュ障入門者(上級)
554516
2022/06/30(木) 01:00:46.93ID:1OP/W/CA
DoCmd.OpenReport "レポート名", acViewPreview
DoCmd.PrintOut acPrintAll, , , acHigh, 枚数

新規レポートにラベルを貼っただけものだと希望どおりの枚数が印刷される.
しかし,別のレポートだと常に1枚しか印刷されない.
ネットでも同じ報告を確認した.バグ説もある.

皆さんはどうですか?やっぱりバグですかね?
555516
2022/06/30(木) 16:01:17.27ID:1OP/W/CA
解決した.
デコンパイルとコンパクトしたらいつの間にか設定した枚数が印刷されるようになった.
accessはマジで面倒くさいなあ.
デコンパイルとコンパクトの待ち時間をを返して欲しいよ
556デフォルトの名無しさん
2022/06/30(木) 19:00:33.50ID:PX9/MxY9
デコンパイル、知りませんでした。
557デフォルトの名無しさん
2022/06/30(木) 20:22:38.17ID:1+oYjPxt
デコンパイル、昔は割と鉄板の解決方法だったんだけどね
それでだめなら新規作成して全モジュールインポートとかもあったな

最近は必要性が減ったけど、まだたまにはあるんだな
558516
2022/06/30(木) 22:53:16.59ID:1OP/W/CA
コンパクトだけでも良かったのかも知れないが,習慣で両方やることにしている
ついいましがたも.Docmd.OpenReportのOpenArgsがレポートに渡らなくて困っていたが,コンパクトをしたら作動した.
終了時にコンパクトするオプションがあるくらいだから頻繁にやるべきなんだろうね.
コード書いているときは非常に頻繁に破損するからね.
559デフォルトの名無しさん
2022/06/30(木) 23:46:30.14ID:1+oYjPxt
あれはデータ領域を圧縮するのが主で、コード部分にはあまり影響しなかった気がするが
最近のアクセスでコードが破損するのはだいぶ減ったと思うが
VBEからコンパイルするだけで解決してたんじゃないか?
560516
2022/07/01(金) 00:40:02.55ID:SILFs/Ha
くわしいことはわからないが,挙動不審が治ることがあるんだよねえ
とにかく,試行錯誤していると必ずと言っていいほど,壊れるよねえ.
メモリーが不足していますとか出始めると,その日のうちに全フォーム消失とか起こるからなあ.
561デフォルトの名無しさん
2022/07/01(金) 10:45:11.72ID:x9gnk4T5
試行錯誤の過程のほとんどを貯め込むからな 設定で「終了時に最適化」で、都度終了を心掛けるか
大幅な改修の度にコンパイルのクセを付けるか ファイルサイズに気を付けて、「こんなサイズのはずは無い」ってな時は要注意
 で、それは、お道具の使い方が雑、間違ってるってだけで、すぐAccessのせいにする連中はお里が知れる ってこと
562516
2022/07/07(木) 15:33:38.95ID:9tJXVGoG
下のコードで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
563デフォルトの名無しさん
2022/07/07(木) 16:12:50.20ID:N4ENiOaQ
>>562
mdb/accdbファイルの場所が欲しいのなら
CurrentProject.Path
を使おう
CurDir$や>>562の例なんかで返されるカレントディレクトリはファイルダイアログとかで開いたフォルダになるっぽい
その辺の仕様に関する資料は知らんけど
564デフォルトの名無しさん
2022/07/07(木) 19:57:05.70ID:V/fQnZ1U
そもそも、
>vbsならscriptの存在するディレクトリ
が間違ってる気がするが

カレントディレクトリの概念って最近は説明されてるの見ないなぁ
GetFolder(".")が返してるのはカレントディレクトリ(からの相対パスで自分自身)
カレントディレクトリはACCESS.EXEの場所や.MDBファイルの場所とは別に存在する

まあMDB開くときはそこをカレントにする場合が多いけどな
つねに一致してるとは限らん
565516
2022/07/07(木) 20:26:42.06ID:9tJXVGoG
>>564
> そもそも、
> >vbsならscriptの存在するディレクトリ
> が間違ってる気がするが

VBSで稼働していたスクリプトをVBAに移植している際に気づいたので、正しいと思います。
スクリプトを任意のフォルダにコピーしてそのフォルダ内のファイルを一括処理するのに使っていましたので。
566デフォルトの名無しさん
2022/07/07(木) 20:31:06.22ID:ty1oWU7C
chdirで変えられちゃうけど
567516
2022/07/07(木) 20:55:49.31ID:9tJXVGoG
ユーザはおいら1人だからいいのです。
568デフォルトの名無しさん
2022/07/07(木) 21:30:15.27ID:V/fQnZ1U
いやだから、scriptの存在するディレクトリじゃなくて、
カレントディレクトリが表示されてるって話なんだがな
たまたまそれが同じだっただけだ

ここ理解しないと思ったディレクトリが表示されない理由が理解できないぞ
569デフォルトの名無しさん
2022/07/07(木) 22:24:24.15ID:rKn8i4wF
馬鹿に何を言っても無駄な例だぞ
570デフォルトの名無しさん
2022/07/08(金) 10:33:00.73ID:aHYxM19P
>>565
そのスクリプトをショートカットにして、
作業フォルダを変えて動かしてみたい
571デフォルトの名無しさん
2022/07/08(金) 12:10:02.96ID:/znuHP85
カレントディレクトリみたいな、あやふやなものを使ってはいけない。
これが使えるのは、絶対に変化しない場合だけ

起動時に、特定のフォルダを指定するとか、
あらかじめ定数などに保存しておく
572デフォルトの名無しさん
2022/07/08(金) 12:16:33.93ID:/znuHP85
例えばデスクトップに、以下のショートカットを作ると、

WSL2 で、Ubuntu 18.04 を起動して、
その /home/ユーザー名/test ディレクトリを、VSCode で開く

リンク先
C:\Windows\System32\wsl.exe code .

作業フォルダ
\\wsl$\Ubuntu-18.04\home\ユーザー名\test
573デフォルトの名無しさん
2022/07/08(金) 12:30:53.39ID:PreZKXp3
もはやAccess VBAとは関係ない話になってるし、元質問者は聞く耳持たないみたいだから
これ以上続ける意味無いよ
574デフォルトの名無しさん
2022/07/11(月) 11:04:56.16ID:1W23UOpt
>>562
fso使ってるんだから当たり前
575デフォルトの名無しさん
2022/07/12(火) 17:20:09.84ID:xDQ7ywi9
>>574
なぜ「fsoを使うと」なにが、「当たり前」なんだい?
576デフォルトの名無しさん
2022/07/13(水) 18:08:17.37ID:sooqvjiy
7月12日のWindows Updateを実施した端末で軒並み「要求されたタイプ ライブラリまたはウィザードは VBA プロジェクトではありません。」
というエラーが出てAccessで作ったものが起動できない症状が出てるんだけど、何か知ってる?
ちなみにAccess Runtimeを再インストールすると直る。修復ではダメ。
577デフォルトの名無しさん
2022/07/13(水) 18:15:29.57ID:sooqvjiy
>>576 書き忘れたけど手元で問題が発生しているのはAccess Runtime 2013 32bitの端末。
OSはWin8.1とWin10の両方で発生してる。
578デフォルトの名無しさん
2022/07/13(水) 19:12:40.99ID:PtV2v+lq
うちの環境とほぼ同じですね、まだ発生してないけど明日あたり起きるのかな。
runtimeの入れ直しですね、了解っす。
579デフォルトの名無しさん
2022/07/14(木) 09:57:45.69ID:gGJjrJSy
>>576
特定した。
KB5002121を入れると症状が発生する。
Access Runtimeを再インストールしても再度Windows Updateを実施すると元に戻るから
KB5002121をブロックしないとダメだ。
58044
2022/07/14(木) 12:52:21.90ID:Fq9OF9ol
迷惑な話ですねえ。
MSのプログラマーがアホなのは今に始まったことじゃないけど
581デフォルトの名無しさん
2022/07/14(木) 18:41:39.80ID:Zi9qyvS+
昔EXCELのVBAで似たような話が合った気がするな
その時はテンポラリディレクトリの掃除したら起動するようになったはずだから
いちど試してみては
582デフォルトの名無しさん
2022/07/18(月) 12:31:42.55ID:1omE+gQa
MSは自社製品のテスト駆動開発すらしてない
テストが面倒になるとサポート打ち切り
583デフォルトの名無しさん
2022/07/18(月) 13:02:03.33ID:dNd6yRIh
>>582
それソースあるの?
584デフォルトの名無しさん
2022/07/19(火) 13:18:07.18ID:4mWHj4S5
2022年7月パッチで「Microsoft Access」に問題、バージョンが異なるとファイルが開けない
https://forest.watch.impress.co.jp/docs/news/1425748.html
>異なるバージョンの「Microsoft Access」で作成されたデータベースファイル(ACCDE/MDE)を開こうとすると、「要求されたタイプ ライブラリまたはウィザードは VBA プロジェクトではありません」というエラーが発生する場合がある
585デフォルトの名無しさん
2022/07/20(水) 10:36:39.60ID:Rwr2SDqT
Formを変数にSetするとき下の二つのやり方のどちらが速いか試したら、結構まちまちなんですよね。
後者はEarly Bindingだと思うんだけど、ループさせると前者が速いことも結構あって不思議だ。
だれかこのあたりの事情をご存じの方いますか?

Dim F As Form
Set F = Forms!FormName

Dim F As Form_FormName
Set F = Forms!FormName
586デフォルトの名無しさん
2022/07/20(水) 11:16:41.39ID:2HHkZJi9
>>584
runtime版でそれ出たな、試行錯誤でruntime2016からruntime365に変えたら動いたw事がある。
587デフォルトの名無しさん
2022/07/20(水) 15:41:40.93ID:qJwz0nM8
runtimeは糞
588デフォルトの名無しさん
2022/07/20(水) 18:29:58.22ID:BaO5YoZA
>>585
あってるかどうかは知らんが

!は実行時に列挙する気がするんだが
後者は型チェックと変換が入るから後者のほうが遅いと思う
前者も入るかもしれんが、そうなるとForm型とForm_FormName型でどっちのキャストが早いかで
結局やっぱり後者が遅い気がする

どっちにしたってFは型指定されているので事前バインドだが、
それが差に出るのはFのメンバーを使うときだぜ

まあ、なんにしても誤差レベルだと思うが
589デフォルトの名無しさん
2022/10/28(金) 11:06:17.52ID:L4jXkRvB
PC画面のスクショを撮って、印刷させたいのですが
とっかかりすら分からない初心者です
検索しても該当サイトはなかったので
よろしければご教授願いたいです
590デフォルトの名無しさん
2022/10/28(金) 12:19:16.61ID:QXDDHW1b
>>589
Windows標準の切り取り&スケッチを使えばできます
ACCESSからコントロールしたいのですか?
591デフォルトの名無しさん
2022/10/28(金) 12:33:34.88ID:L4jXkRvB
>>590
はい、ExcelかAccessでとのことで、
今後の勉強含めAccessに挑んでいます。

不特定多数が使用する環境で
(リテラシーが低い人も混在)
ボタン一つで全画面スクショ印刷と
アクティブウィンドウのみスクショ印刷
の2通りできるようにしたいです
(スクショしたデータは印刷後削除される仕様にしたい)

今のところ全画面スクショはできたのですが
アクティブウィンドウと
その後の印刷と削除で、つまづいてます。

ド初心者なので、見当違いな質問をしていたら
申し訳ありません
592デフォルトの名無しさん
2022/10/28(金) 12:48:59.54ID:14o/00kf
API経由で[PrtSc](全画面)、[Alt]+[PrtSc](アクティブウィンドウのみ)を押せばクリップボードに画面キャプチャができるだろうから
それをレポート上のImageに突っ込んで印刷すればいいんじゃないのかな?
試してないから実際にできるかは知らんけど
593デフォルトの名無しさん
2022/10/28(金) 18:23:03.59ID:ivdM6iIS
>>592
ありがとうございます
土日に試してみます!
594デフォルトの名無しさん
2022/12/09(金) 21:17:19.25ID:XI7rGRQs
サーバーから検索したいのに上手くいかない
どこか修正するとこありますか?

Private Sub CommandButton1_Click()
Const BASE_PATH = "\\L\設計\図面"Dim myPath As String, myName As String
Dim FSO As Object, oFolder As Object, oSubFolder As Object, oFile As Object
On Error Resume Next
If TextBox1.Value = ""Then Exit Sub
ListBox1.Clear
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = FSO.GetFolder(BASE_PATH)
For Each oSubFolder In oFolder.SubFolders
For Each oFile In oSubFolder.Files
If LCase(oFile.Name) Like LCase(TextBox1.Value) &"*.pdf"Then
Debug.Print oFile.Path
myPath = oFile.ParentFolder &"\"myName = oFile.Name
ListBox1.AddItem myName
ListBox1.List(ListBox1.ListCount - 1, 1) = myPath
End If
Next
Next
Set FSO = Nothing
End Sub
595デフォルトの名無しさん
2022/12/10(土) 17:10:55.98ID:HwePKFIg
何がどううまくいかないんだ?
On Error Resume Next外して、エラー内容かけ
596デフォルトの名無しさん
2022/12/11(日) 02:53:35.00ID:08xatqWx
知らんけど、コマンドプロンプトで取得した方が速いと思うぞ。
597デフォルトの名無しさん
2022/12/11(日) 14:47:06.06ID:BK2dpDEr
ネットワークだとビックリするほど遅いよね
598デフォルトの名無しさん
2022/12/21(水) 12:29:44.27ID:29nQbkr4
表形式にしたフォーム上の一行一行に対して、そのレコードのID.pdfが指定のフォルダにあれば○、無ければ空白って文字を連結したテキストボックスに入れたいんだけど。
Dir使って判定させるところまでは出来たけど、vbaを実行させるタイミングの問題なのかな?
詳細セクションの描画時選んだら代入出来ませんって出た。
試しに詳細セクションダブルクリックだと該当レコードだけは入ったけど。。

一括で全レコード対象にする方法あるんでしょうか。。?
599デフォルトの名無しさん
2022/12/21(水) 13:19:20.60ID:oTvIdtcL
データシートビューのソースの段階でクエリ使ってる?
〇や(空白)を入力するフィールドは確保されてる?
元のソースにpdfファイルがあるか無いかを画面上で比較しながらひとつずつ入力するつもり?
仮のテーブル作ってフォルダ内のpdfのファイル名をDir使ってそのテーブルに代入すれば
簡単に元のソースにも反映出来ると思うけど どうしてもデータシートビューで比較しながら入れたい?

pdfが入ってるフォルダ内がしょっちゅう追加・変更・削除がある場合だとしても、仮のテーブル使っとけば
都度最新の状況での比較が可能だと思えるし、不足してるからpdf作らなきゃ、の指針にも成るような気がする
でも、元のソースに〇のフィールド作っちゃうと、pdf削除されても〇のまま消えない可能性もあるから対策必要か

つまり、一括で全レコード対象にするなら、Dir結果をcsvなりtxtなりに落とし込んで、それと元ソースで更新クエリがいちばん早い
600デフォルトの名無しさん
2022/12/21(水) 14:08:13.72ID:29nQbkr4
>>599
ありがとうございます
一旦別のテーブルなりCSVなりにファイル一覧作ってみる事にします!
思い付きもしませんでした
601デフォルトの名無しさん
2023/03/02(木) 17:30:45.61ID:oTm0acsN
値にtrueやfalseが含まれるexcelファイルをDocmd.TransferSpreadsheetを使ってテーブルに取り込むと、
数値として反映されてしまうんですが、理論値のまま取り込む方法はありますか?
変換かけるしかないのかな
602デフォルトの名無しさん
2023/03/05(日) 12:31:16.13ID:Yb2sf8rL
>>601
取り込んだ後でクエリーで値変えれば良かろうに
603デフォルトの名無しさん
2023/03/24(金) 00:30:10.12ID:higFVnZ+
recordset.Fields.Append "フィールド名", adChar, 200
とかでフィールドを新規設定するといろいろと挙動不審になって、エラーが頻発した。
俺が気がついたのはLen関数がおかしな数字を返すこと。スペースの数を返す。
これのおかげなのか、DictionaryのKeyが変なことになり、ただしいItemが取得出来なくて2日潰したわ。
Trim関数に入れたらまともに動き出した。よけいなスペースが付加されていたため、本来の値と異なっていた。
このあたりの事情を書いたものあるのかなあ?
604デフォルトの名無しさん
2023/03/24(金) 10:46:32.87ID:pyQciQm5
Recordsetの作成(DAO編)
http://www7b.biglobe.ne.jp/~cbcnet/DAO/database.html
レコードセットの作成(ADO編)
http://www7b.biglobe.ne.jp/~cbcnet/ADO/append.html
第4話 DAOとADOの違い
https://www.r-staffing.co.jp/engineer/entry/20210806_1
同一システム内でDAOとADOを併用しないよう留意 とか?
605デフォルトの名無しさん
2023/03/25(土) 11:49:45.50ID:zs10i3Ml
エラーが出るもんだから、VarType関数使って疑わしい変数を調べたら、18が返ってきた。
しかし、そんな定数ないんだよなあ。これはどういうことだ?
606デフォルトの名無しさん
2023/03/25(土) 11:59:33.48ID:nHkGBQf7
値の合計なので、10と8とか 5と6と7とか 思い当たるのをひとつずつ潰してく
607デフォルトの名無しさん
2023/03/25(土) 13:37:32.34ID:zs10i3Ml
>>606
ありがとう。
Msgboxでそような定数の合計をしますね。
ところで、そのような知識は私の持っているVBA、VBS、Accessの本には記載されていない様な気がします。
もしかしたら、Visual Basicでは常識なのでしょうか?それとも一般的なプログラミングの世界での常識ですか?
私は仕事でVBAをいじるだけで、一般的なプログラミングはほとんど知らないのでお尋ね致します。
608デフォルトの名無しさん
2023/03/25(土) 14:20:16.26ID:nHkGBQf7
本はあくまでも全体のほんの一部を抽出して購買欲そそるタイトル付けて売ってるだけ
MSのリファレンスに頼るのが本筋 
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/vartype-function
https://learn.microsoft.com/ja-jp/office/vba/api/overview/access

ネットの情報でも、ご丁寧にスクショ混ぜて説明してるのに、すでにUI変わってて役に立たないとかも多い
紛らわしい情報が氾濫する中で、どれがじぶんの求めるお宝なのかを見極める目を養うのもだいじ
609デフォルトの名無しさん
2023/03/27(月) 19:32:00.21ID:zT0GYsm+
>>603
CHARとVARCHARの違い
まあ、SQLの型の基本なんだが、ACCESS関連であまりちゃんと解説してるのみたことないな
https://learn.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/datatypeenum
OLE DB プログラマリファレンスの第 13 章および付録 A を参照してください、らしい
610デフォルトの名無しさん
2023/03/27(月) 19:43:31.02ID:zT0GYsm+
>>607
ビットマスクって考え方があって、別にVBAに限った話じゃない
が、VarTypeで18ってリファレンス見る限りないな。
どんな変数がその値だったんだ?
611デフォルトの名無しさん
2023/03/29(水) 07:20:36.71ID:P3Zmpymz
AIに書いてほしいコードを聞くと正しく動くコードが返ってくる
bingとchatGPTは頼れる、かも
612デフォルトの名無しさん
2023/04/04(火) 10:14:28.50ID:Az13f9J9
最近の VisualStudio に搭載されたコード補完は
おせっかいなくらいにコードの続き出てくるな
613デフォルトの名無しさん
2023/04/04(火) 16:33:58.07ID:vSpSLcg3
>>611
俺はChat GPTに嘘ばかり教えられている。
用語の定義から間違えている。
Chat GPTの吐いた嘘を貼り付けるページがあったら参加したいわ。
614デフォルトの名無しさん
2023/04/04(火) 17:16:46.37ID:SG+vqM06
>>613
確かに鵜呑みには出来ないね、よく嘘を言ってくる。ある程度自力で捌けないとヤバいね
615デフォルトの名無しさん
2023/04/05(水) 00:48:28.57ID:wtS5Em1S
嘘を嘘と見抜けない人の利用はお勧めできない、か

どっかで聞いた話だな
616デフォルトの名無しさん
2023/04/05(水) 19:08:02.04ID:iYloijFa
GPTのウソ、具体例有ったら教えて
617デフォルトの名無しさん
2023/04/08(土) 23:18:08.84ID:m5gy6cDu
Excelスレに貼られていたWebview2のコードはワロタ
618デフォルトの名無しさん
2023/04/10(月) 19:36:08.19ID:YifXJ3Ct
今日も大嘘をつかれました。

質問
MS Accessのvbaで既に存在するプログラム中に宣言されていない変数があります。これを探して,宣言するvba プロシジャーを教えて。

回答
MS AccessのVBAで、プログラム中で宣言されていない変数を検出して、宣言するための手順を説明します。

MS Accessを開き、VBAエディターを起動します。
検索機能を使用して、すべてのモジュール内の未宣言の変数を検索します。
未宣言の変数を検索するには、VBAエディターで「Ctrl + F」を押して、「検索」ダイアログボックスを開きます。ダイアログボックスで「未定義の」または「未宣言の」を検索キーワードとして入力し、「検索」または「次へ」ボタンをクリックします。これにより、未宣言の変数が使用されている場所がすべて検索されます。

未宣言の変数を見つけたら、変数の宣言を追加します。
例えば、未宣言の変数「myVariable」が使用されている場合、以下のように宣言を追加できます。


Dim myVariable As DataType ' 変数の宣言

DataTypeは変数のデータ型を指定するために使用されます。例えば、myVariableが数値である場合、データ型はLong、Integer、Doubleなどになります。文字列である場合は、データ型はStringになります。

全ての未宣言の変数を宣言したら、プログラムを保存して実行してください。
これにより、未宣言の変数エラーが回避され、プログラムが正常に実行されるようになります。
619デフォルトの名無しさん
2023/04/12(水) 18:35:03.42ID:b8lcjBjc
未宣言の変数が300種類くらいあるポンコツ業務用mdbがある。Option Explicit化して手作業で未宣言変数を探すとものすごく時間がかかる。ローカル変数だけならテキストに対しての構文解析だけで出来そうだけど、誰かやり方知ってますか?

Access用の解析ツールは時間がかかりすぎるので諦めました
620デフォルトの名無しさん
2023/04/14(金) 12:20:23.58ID:ooEkRg5K
全角数字を含むフォームは普通VBEのプロジェクトエクスプローラでも全角数字で表示される。
しかし、俺の持っているmdbはなぜかフォームによってはVBEで半角の場合がある。
つまりForm1番→Form1番
というように半角になっている。
フォームのもっている名前とモジュールの名前が異なるので検索漏れが発生して何かと不便。
解決策ありますかね?
621デフォルトの名無しさん
2023/04/19(水) 15:36:15.06ID:hTeej4zs
>>620
Accessのバージョンによって全半角を同一視されるのとされないのがあったよーな
半角に統一して、置換するしかないんじゃね
622デフォルトの名無しさん
2023/04/19(水) 21:07:01.70ID:UiOYL9zn
>>621
VBEはクラスオブジェクトのリネームはできないんですよねえ

Text化してファイル名を統一してから読み込みますかねえ?それでなおるか未確認ですが。

今は検索文字列のパターンを増やして対応してますが、邪道だなあと思いながらやってます。
623デフォルトの名無しさん
2023/04/20(木) 00:39:31.09ID:Ck2wYtqO
ACCESS側で名前変更しても、VBE側が変わらないことがあるっぽいな

フォームの コード保持 を いいえ にして保存してから はい にしたら同じになったぞ
まあ、コード全部いったん消えるがな
624デフォルトの名無しさん
2023/04/20(木) 10:07:33.88ID:b7y+tf5m
>>623
テキスト化してフォームと同じ全角のファイル名にしてからLoadしたらVBEのクラスオブジェクトの名前と一致させることが出来ました。
思うに、このプログラムを書いた人はテキスト化して、お好みのエディタで書いていたんでしょうね。
だからOption Explicitなんてしてなくて、問題なく書けるので、変数のスペルミスがあります。
今回はファイル名の全角半角を間違えてままLoadしてフォーム名とクラスオブジェクト名が一致しないということになったと思います。
よほどVBEを使いたくなかったんでしょうね。
625デフォルトの名無しさん
2023/04/28(金) 05:20:11.81ID:d0ZMhP2N
やけにエラーが出るので調べたら、クラスオブジェクトの名前のカッコが前側が半角、後側が全角のものを発見。しかも複数。
俺はプロじゃないけど、このデータベースに毎月金を払っている。金取るならちゃんとしたものを作って欲しいわ。
宣言だけして読み書きしない変数が約2000個、呼び出されないプロシジャーと空のプロシジャーが100個以上がもあるし、どうなっているんだ?
戻り値のないプロシジャーをFunctionにして,呼び出すだけのために変数を使ったりしてアホかと思うことばかり
626デフォルトの名無しさん
2023/05/03(水) 21:33:01.68ID:u6AyBhT9
クエリがいくつかあってそのなかであるテーブルを使ってるかどうか検索する方法ないですか
627デフォルトの名無しさん
2023/05/03(水) 21:34:54.38ID:u6AyBhT9
これVBA関係ないな
628デフォルトの名無しさん
2023/05/04(木) 13:12:55.46ID:xnh5NJU8
関係無いけど、ヒマだから
https://www.feedsoft.net/access/tips/tips211.html
この手順でコツコツ「リレーションシップ」を出力してけば把握できる
629デフォルトの名無しさん
2023/05/04(木) 20:33:29.74ID:i/jCXYvG
QueryDefsのSQLプロパティをinstringで調べる
それをループ かな
630デフォルトの名無しさん
2023/05/10(水) 00:24:35.45ID:qaMHPguU
>>629
これがベストだね
631デフォルトの名無しさん
2023/05/12(金) 20:45:34.35ID:nGf/Bj/G
流行りのChatGPTをACCESSで使えるようにしてみた
BingやBardもレスポンス良く使えるようになったのであまり意味はなかったが面白かった
VBAコードはChatGPTに書かせたのをほぼコピペで動くようにできた
632デフォルトの名無しさん
2023/05/13(土) 09:19:13.17ID:uR6hVfud
スレの意図を無視するがAccessは出来るだけVBA使わず作成する方がバージョンアップにも対応し易い
633デフォルトの名無しさん
2023/05/13(土) 13:15:28.85ID:JkElVRfp
お客様に納品するならそういう気遣いも要りますね
自家用なので気の済むまで作り込みます
自社の50人くらいが快適なように
634デフォルトの名無しさん
2023/05/13(土) 16:13:18.44ID:74jfRr8+
どうした? 総合で同意が得られなかったから改めてコッチに書いたのか?
Accessをインストールだけして使わないでいればバージョンアップもへったくれも無いから、そうした方がいいぞ?
635デフォルトの名無しさん
2023/05/14(日) 08:52:04.69ID:UU9sI9hc
Rubberduckは大きいデータベースだとパース中にエラーが出て使い物にならないねえ

数年前よりはるかにマシになったけど。
636デフォルトの名無しさん
2023/05/16(火) 21:12:36.24ID:dmITDlP3
msgboxの戻り値を格納する変数の型をvbMsgboxResultにするかLongにするか悩んだので、
時間を計ろうと思って、古い本を引っ張り出して、二つを比較するプロシジャーを書いた。
ふと、全く同じテストをしたらどうなるのか気になったので、やってみたら、全く同じプロシジャー同士の比較なのに30%位スピードに差が出る。さっきやったら最大で37%速度差があった。
一方が速いこともあれば、もう一方が速いときもある。こんなのでスピード比較する意味あるのかなあ?

時間測定はGetTickCountを使って、変数宣言のみ100万回のループをするプロシジャーを100回呼び出すという感じ。
なんかいい測定方法ありますかね?
637デフォルトの名無しさん
2023/05/16(火) 21:52:45.08ID:Mqz2m8JL
timer使っても同じかな
638デフォルトの名無しさん
2023/05/17(水) 06:33:48.44ID:AOXlzNDq
timerが秒単位でGetTickCountはミリ秒単位と古い本に書いてあったなあ
あと、timerはそれ自体の動作が遅いって書いてあった
639デフォルトの名無しさん
2023/05/18(木) 18:57:23.27ID:8+QzSev9
ユーザーフォームが大きいんで下半分を隠す、上半分を隠す、という2つのコードを書きたいんです。下半分を隠す、はハイト プロパティを小さくすれば可能なんだけど、上半分を隠す、は不可能なんですかね。
640デフォルトの名無しさん
2023/05/18(木) 20:29:25.05ID:FTp82+/Y
>>639
何をやりたいのかイマイチ分からんけど、タブコントロールじゃだめなん?
641デフォルトの名無しさん
2023/05/18(木) 21:32:12.21ID:UaeB70YO
上半分を隠したら×ボタン無くなってにっちもさっちも行かなくなるぞ
642デフォルトの名無しさん
2023/05/18(木) 21:36:12.00ID:/q1eE0wB
>>639
2つのフォームに分けたら良いと思うの
643デフォルトの名無しさん
2023/05/19(金) 21:09:14.22ID:j+pEmA6B
>>640
>>642
ありがとう。皆さんのアイデアをためします
644デフォルトの名無しさん
2023/05/23(火) 14:00:02.22ID:MnQDcyxi
質問です。
Excelファイルを読み込んで、加工してからテーブルとして保持したいんですが、
Excelファイルのまま編集してinsertするのと、
一度テーブルとして読み込んでから編集してinsertするのはどちらが高速でしょうか?
645デフォルトの名無しさん
2023/05/23(火) 14:42:54.35ID:3uLTyIP1
insert ? inport の手順なら下記リンク先を参考に
https://hamachan.info/win8/access/import.html 
Excelファイルをリンクでもいけるし 同作業を何度も繰り返すとかでも、操作を保存しとけば楽だし
データのボリューム次第とかマシンスペックとかも兼ね合いがあるから、どちらとも
ウィザードの途中画面をよく見て、事前にExcel側を整えて置けば inport も楽だし
編集内容がより細かく設定できるのはExcelなのかAccessなのかを知る事でも、どちらの方法を採るかの判断になる
646デフォルトの名無しさん
2023/05/23(火) 15:03:14.67ID:MnQDcyxi
いろいろありがとございます、しかしimportではなくinsertです
内容を見て既存のテーブルに1行ずつinsert(もしくはupdate)していく形になります。
647デフォルトの名無しさん
2023/05/23(火) 15:26:17.99ID:3uLTyIP1
んーと、Access側のテーブルはあくまでもデータストック用な立ち位置?
事前にExcelでの編集が伴うなら、Accessのテーブルとしてから編集するのはムダなような
https://tonari-it.com/excel-vba-access-add-records/ コッチのが参考に成るかも 実行速度の検証もしてる様子
648デフォルトの名無しさん
2023/05/23(火) 16:47:55.53ID:MnQDcyxi
ありがとうございます!
いまさらっとですが見てみたところ、速度比較などもしていて参考になりそうです。
見てみます!

中間テーブルを作成してから編集した方がいいよ、という声を聞いたんですが
いちいち使わないテーブルに投入する必要はないのでは?と思い質問いたしました。
事前編集方式でやってみます!
649デフォルトの名無しさん
2023/05/23(火) 18:12:18.40ID:3uLTyIP1
Excelの元データと、何をどう編集したいかも判らないから、中間テーブルの必要性は当人しか判断不能
上でも書いたけど、編集内容がExcelの方が楽で早いのかAccessの方なのかでも手順は変わるような
速さを第一に求めているように読めるけど、「一行ずつ」って書かれた部分で「おや?」と
スムースにデータを移行させるには、最初のリンク先の「データクレンジング」も読んでおいてもムダには成らない
アチコチに目を配らなければならない様子でお疲れ でもそれがじぶんの糧に成る
650デフォルトの名無しさん
2023/05/24(水) 08:46:04.47ID:AU7HKxhu
>>644
ExcelインポートしてAccessで加工する方が速いよ
ExcelでVBAでデータ加工するなんて愚の骨頂
651デフォルトの名無しさん
2023/05/24(水) 10:26:10.15ID:eouMPy16
みなさまいろいろありがとうございます
自分の説明不足&理解不足ですみません。

ACCESSに入っている一覧情報を定期的に更新しなければならず、
その更新情報がExcelで来るのでそれを読み込んで…とやる感じです。
ACCESS側で固有に更新している情報もあるのでまるっと上書きではなく、
一行ずつ確認して該当の列のみ追加や上書きをしなくてはいけません。

それを、いまはAccessVBA内でExcelファイルを開いて
一行ずつ読み込んで内容確認して内容によってSQL流して…とやっているのですが、
もしかしてExcelファイルを中間テーブルにimportしてから
操作した方が早いのかな??と悩んで書き込んだ次第です。

「ExcelインポートしてACCESSで加工」と言ってくださってるのは
後者の場合を指しているのですかね?
今はとりあえずサンプルを作って動かして比較しようかと思っています。
652デフォルトの名無しさん
2023/05/24(水) 10:50:21.63ID:l+gVJ33A
そういうことなら中間テーブルに取り込んで、テーブル同士の差分をチェックかな
https://tasukete-access.com/2022/11/28/accessintro_table_comparison/
[フィールド単位での差分をチェックする] この方法のが近いのか
653デフォルトの名無しさん
2023/05/24(水) 23:16:20.24ID:CzWxWRtY
返信遅れてすみません!ありがとうございます!
こんなやり方ができるんですね!
全部SQL書こうと想ってましたがクエリで楽に作れるかもしれず嬉しいです。
参考に書いてみます、本当にありがとうございます!
654デフォルトの名無しさん
2023/05/26(金) 17:24:59.84ID:sT8UcBqC
500以上のモジュールにOption Explicitが書いてない。
当然、宣言されていない変数が何百もある。
ここにOption Explicitを書くと、宣言されていない変数を見つけるたびにコンパイルが止まるので面倒。
一括して発見する方法を知ってる人いますか?
VBEが発見できるので、その方法が分かればユーザにも分かるはずだと思うが、検索しても見つからない。

Cのコンパイラを自作する技術があれば、文法解析の手法が使えると思って調べたけど、全余暇時間をコンパイラ自作に割り当てても6ヶ月かかったと言ってる人がいて、踏み出せない。
655デフォルトの名無しさん
2023/05/26(金) 19:16:13.82ID:+AT6wCCw
こんなん見付からはりました
https://stabucky.com/wp/archives/6297  実際に検証はしてないんで、自己責任 ←重要!!
現物mdb(そんなのはAccdbでは無くmdbだと勝手に決め付けてる)では無く、コピーしたファイルで
尚且つネットから切り離しスタンドアロンで、更に30秒後に発火するかも知れないので消火器用意してから
試してみてください 結果報告が期待されます

VBE上でCtrl + Spaceで入力支援機能(サジェストっつーの?)を出して、いっこずつTABで拾いだす案を
提案しようと思いつつぐぐってたら出てきた代物 宣言してなかったら自動メンバー表示(どの名称が正式か知らん)
にも出てこないのか!?と、ようやく気付いたレベルの人間のレスなので、眉唾しながら(若しくはスルー推奨)

VBAでJavaScriptを使うには?という場合は : https://extan.jp/?p=10611 とか
あと、『なお「unique」という自作の関数を使っています』とあるので、それも併せておかないと動作しないかも(きっと)

レス:1-200 201-400 401-600 601-800 801-1000 ALL

このスレへの固定リンク: http://5chb.net/r/tech/1544620479/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「Access VBA 質問スレ Part2 YouTube動画>3本 ->画像>5枚 」を見た人も見ています:
Excel VBA 質問スレ Part80(ワッチョイあり)
【JVM】プログラミング言語Groovy #2.0.1【Grails】
豚野郎_集合(コードガール)
疑似乱数2
JavaScript 4
プログラミングを勉強したいんだけど
ねとらぼのドラえもん投票のためのツール
【lgb,t-sne】カグラーたちのチラ裏【R,OpenCV】
C#は危険だ
TypeScript(MS) VS Swift(Apple)
ドットインストールについて語れ
アセンブリ言語について。
Microsoft Silverlight その9
誰かこれやってください
CORBAなら俺に聞け
【イーサリアム】Solidity本スレDAPPS】
銀行よりもゲームのほうがシステムは巨大で複雑やろ
「初心者が読むべきOSS」10選
一般的な処理を関数型の書き方をすると遅い
スマホでプログラミングできますか?
訃報: C 言語の開発者、デニス・リッチー氏が死去
カプセル化は愚かな考え★3
   TensorFlow 0.12    
普通科高校高2プログラミング系志望
どなたか助けてください(フローチャート)
新型コロナワクチン異変種セット?
ふらっと C#,C♯,C#(初心者用) Part159
トランプであらゆるアリゴリズム
Ruby 初心者スレッド Part 61
【統計分析】機械学習・データマイニング16
漫画とアニメの自動生成システムを作りたいんだけど
オブジェクト指向って自然な文法だな 3
Java入門・初心者質問スレ Part.6
アーキテクチャ設計, 処理方針, 規約設計など
【古典的モダン】Perlについての質問箱 51箱目
大量のドキュメントは本当に必要なのか?無駄だなよ
意味がないテストをするな。VERSION==1.0.0
C言語を学びたいんやが、まず何からやればいい?
Python→Juliaと進みたい【株の自動売買】
Ruby 初心者スレッド Part 64
オブジェクト指向システムの設計 173
アプリって結局全部"イベント"なんだよ
>>1が皆と一緒に超プログラマーを目指すスレ
最近のモンハンで嫌いなところ
ラダープログラムがわかりません
【PHP】下らねぇ質問はここに 9
Android開発質問スレ
Excel VBA 質問スレ Part56
arduinoがうまく動かないです助けて・・・
Javascriptの参考書を買いたいんだけど
35歳、発達障害のB型作業所通いですが 6
暗号アルゴリズムを解いてくれ
俺主催囲碁プログラミングコンテスト
ここって低レベルな質問してええんか?
electronとOnsenUIで専ブラ作りたいんだけど
JavaScriptは消滅すべきだったよな
プログラミングしているときの思考ついて話そうぜ
派閥争いする無能がソフトウェア開発失敗の原因
HTML、CSSはプログラム言語じゃない!
カプセル化の有害性、オブジェクト指向は愚かな考え
Pythonはプロのプログラマから嫌われてる言語だった
Rust part16
★★Java質問・相談スレッド184★★
既存コードの移植・流用・共有化テクニックや質問
Excel VBA 質問スレ Part82
19:44:32 up 5 days, 16:53, 1 user, load average: 101.05, 144.13, 139.23

in 0.030333042144775 sec @[email protected] on 091808