Access VBA 質問スレ Part2at TECH
Access VBA 質問スレ Part2 - 暇つぶし2ch12:デフォルトの名無しさん
19/02/20 18:39:48.45 tMuImGOR.net
会社のPCがようやく7から10に切り替わり、
ついでにofficeが2010から2016になった。
そしたら・・・・・・
Accessのシステムが壊滅状態(;_;)
一番シンプルなところで、DateTimePickerがない・・・。
Access2016で日付フィールドとリンクしてない状態で、カレンダー使うのどしたらいいの・・・
2010と互換性を維持したまま

13:デフォルトの名無しさん
19/02/20 21:54:34.71 oRzq8AWm.net
もうAccessを卒業するんだ

14:デフォルトの名無しさん
19/02/21 13:02:36.57 L3EKz/Re.net
参照設定弄ってもだめなの?

15:デフォルトの名無しさん
19/02/21 19:38:17.35 MzKG4O6f.net
>>14
情シス「VBのランタイム入れません。よくわからないから。」
(;_;)

16:デフォルトの名無しさん
19/02/21 19:55:52.51 mRRRBv2X.net
>>12
カレンダー用のOCXだかDLLだかを持ってきて入れれば動くはずけど
ライセンス的にどうだか知らない
>>14
そもそもそのコンポーネントが今のACCESSに無くなってるから
2016をクリーンインストールしてれば参照設定できない
2010とかランタイム版あったはずだから、2016入れた後からインストールできるなら
それ入れれば行ける気がする
試して報告してくれ

17:デフォルトの名無しさん
19/02/21 20:11:01.25 3prgeWcz.net
そもそもAccessって、サポートあるの?
あるとしたら、SA結んだら何回までオッケーただしおま環は知らんみたいな?

18:デフォルトの名無しさん
19/02/23 08:51:07.40 ILyuCfk+.net
>>15
それじゃどうしようもないじゃん

19:デフォルトの名無しさん
19/03/02 05:49:40.18 6x5b9DFI.net
Accessの謎の異常終了は、永久に治らないの??

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

21:デフォルトの名無しさん
19/03/04 09:50:39.88 TvaJY4yu.net
そもそも元々MS製品じゃないしなあ。

22:デフォルトの名無しさん
19/03/04 19:28:23.37 6LdJdRvZ.net
そうなの?

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

24:デフォルトの名無しさん
19/03/05 22:29:47.29 x8iA6KfG.net
止めたら影響大きいだろうな。電子カルテもあるし。

25:デフォルトの名無しさん
19/03/06 07:31:01.14 5/Lsh2ff.net
言語仕様がほとんど変わらないおかげで20年前のシステムが今も使えている
開発コストと保守コスト考えたらAccessは素晴らしいよ

26:936
19/03/06 11:17:38.29 OF16p3z1.net
ローカルでランダムアクセスできるAccessは気楽でいい

27:デフォルトの名無しさん
19/03/09 21:57:04.20 QAZD12fZ.net
excel vbaとaccess vba
どっちの方が実用的ですか?

28:デフォルトの名無しさん
19/03/09 23:04:33.82 M4mulWlp.net
>>27
必要に合わせてどっちも実用的

29:デフォルトの名無しさん
19/03/10 00:06:55.04 PvuKZe7P.net
T_商品というテーブルを用意し、そこには次の内容が入っており、
商品      材料1 材料2 材料3
卵かけご飯    卵   米
お好み焼き    小麦  卵   豚肉
ショートケーキ  卵   小麦  苺
アップルパイ   りんご 小麦  牛乳
フォームに、材料A、材料Bのテキストボックスを置き、
検索ボタンを押すと、材料AかつBを含む商品が検索されるというVBAの記述に苦慮しています。
単独の材料であれば、VBAにSQLを組み込み、
SELECT * FROM 商品テーブル WHERE 材料1 = ' & 材料A & ' OR 材料2 = ' & 材料A & ' OR 材料3 = ' & 材料A & ' ;
こんな感じでできるのですが、材料が2つ以上になるとどうすればよいか見当がつかなくなりました。
アドバイスいただけませんでしょうか?

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

31:デフォルトの名無しさん
19/03/10 01:18:29.26 W5FlChvZ.net
>>30
間違ってます。zzz

32:デフォルトの名無しさん
19/03/10 13:11:16.19 FsgNmDsH.net
>>29
悪いことは言わんから、まずテーブル設計見直せ

33:デフォルトの名無しさん
19/03/10 15:10:38.80 z6hGNEnV.net
馬鹿の次の質問
材料4を追加した時にはどうすれぱよいでしょうか?

34:デフォルトの名無しさん
19/03/10 17:44:21.19 f/eJ/LOS.net
>>27
そもそもExcelでは応用効かない

35:デフォルトの名無しさん
19/03/10 17:46:58.02 f/eJ/LOS.net
>>15
Visual Studio ExpressでDLL作れ

36:デフォルトの名無しさん
19/03/10 17:55:45.50 hFpGjFbx.net
>>29
そのテ―ブルはちょっと…
商品のテーブルと材料のテーブルで結合じゃね?

37:デフォルトの名無しさん
19/03/10 18:51:26.88 hpBR8lHx.net
accessは大昔にやってて今は持ってすらいないけど
該当行をdynasetで取り出した後
該当fieldから値を取り出して
if分で有るか調べれば出来たりしないか?

38:デフォルトの名無しさん
19/03/10 18:58:03.76 9Z3HOdWo.net
いくらでも増やしていいぞ
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:デフォルトの名無しさん
19/03/10 22:38:23.14 mPydjeZt.net
いやぁぁぁぁぁぁぁ

40:デフォルトの名無しさん
19/03/10 23:14:01.04 hFpGjFbx.net
だから、材料フィールドを横に並べるのは作りが悪いだろ。
フィールド1個にして縦に並べるべきじゃね?

41:デフォルトの名無しさん
19/03/10 23:50:20.06 CvNRnyCH.net
unionで繋げばいいんじゃね

42:デフォルトの名無しさん
19/03/11 00:08:26.31 B6nWiYCU.net
設計の問題だろ。
できるできないの問題じゃない。
なんで使い勝手の悪いもんをわざわざ作らなきゃならんのよ。

43:デフォルトの名無しさん
19/03/11 08:04:29.38 fslMg+hg.net
取り敢えず動かすなら、
材料1~4をカンマで連結した文字列の中に、AとB両方ある
と書けば人間にはわかりやすい

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

45:デフォルトの名無しさん
19/03/12 00:15:11.07 S+rkIDbC.net
普通の設計にしたとして
countが3以上の~、とかやるのが正しいの?
なんか不安なんだが

46:デフォルトの名無しさん
19/03/12 12:34:12.09 xgWEcpqA.net
なんでcountなんて話になってるの?
商品テ―ブルと材料テーブルで結合するなら、商品テーブルには材料IDのフィールドが1つしかないんだから、材料IDのフィールドに材料AのIDと材料BのIDを持つ商品を検索するだけだよ。

47:デフォルトの名無しさん
19/03/12 14:56:37.82 4U4zzI9j.net
一つの材料IDフィールドに2つの材料IDをカンマ区切りで入れるのが正解なの?
リレーショナル全否定?

48:デフォルトの名無しさん
19/03/12 21:15:05.16 0vZ7cwHu.net
リレーショナルデータベースを前提にするならどんな設計が一番使い勝手がよいんだろうかね

49:デフォルトの名無しさん
19/03/12 22:39:48.12 o5cGPdg/.net
>>46
商品テーブル、材料テーブル、商品の材料テーブルを作って、こんな感じで
SELECT [商品] FROM 商品の材料
WHERE 材料 IN (Form!材料A, Form!材料B, Form!材料C)
GROUP BY [商品]
HAVING Count([商品]) >= Form!条件数;
材料A,B,CそれぞれのサブクエリをJIONするよりは速い気がする

50:デフォルトの名無しさん
19/03/13 08:11:10.52 mGUeq4U2.net
>>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:デフォルトの名無しさん
19/03/13 11:51:37.19 SZfR/Pu+.net
仕様が解らないからアレだけど
そのhaving countだと同じ材料が複数行登録されていた場合に
フォームに設定した別々な材料で検索した時に検索しても且つ条件にならないんじゃないかな?
同じ材料を登録できないように作ってあれば問題無いと思うけど
その辺どうなんだろうか?
まぁ作りと要求次第だと思うけど
的外れだったらごめんよ
ちょっと気になったんで
複数列の場合に連結してから文字列検索で探すというのは
sqlが長く複雑になり難いかもしれないね
何にしても実現の仕方は色々有るね
その人の技量や置かれている状況次第だろうね

52:デフォルトの名無しさん
19/03/13 19:07:03.88 0FHnOJ4A.net
最初に不安だと書いているように私もCountは邪道だと思ってるんですよね
「なんでcountなんて話になってるんだ」と怒られる程度には
それで、いろいろな方法がある中で「王道」をご指導いただけないんでしょうか?

53:デフォルトの名無しさん
19/03/13 21:35:24.37 uWZ9EglX.net
>>51
基本的に、テーブルには誤りのあるデータは登録しない
逆に言うと、読み出したデータに誤りがあるかもしれないなら、全ての読み出し処理の後に全項目の妥当性チェックが必要になる

54:デフォルトの名無しさん
19/03/15 17:36:53.07 FQsGmuzT.net
製品テーブルと素材テーブルと連結用テーブルの三つつくる
あとIDいらんから消して

55:デフォルトの名無しさん
19/03/15 18:33:31.75 sIXN3DPH.net
idいらないのではってこと時々あるよね。
性別項目なんて"男"、"女"って直接入れてエエやんて思う。

56:デフォルトの名無しさん
19/03/15 18:46:17.04 sIXN3DPH.net
>>54
id使わないなら 1テーブルでええんとちゃう?

57:デフォルトの名無しさん
19/03/15 18:47:49.00 sIXN3DPH.net
>>56
余りにも近視眼でした

58:デフォルトの名無しさん
19/03/15 19:00:16.39 Yw8dh4/K.net
>>55
性別はboolでいい
ただしオカマちゃんなどに対応するため
Bool 肉体の性別
Bool 精神の性別
Bool 改造後の性別
Bool 住民基本台帳の性別
Bool 一般公開する性別
Bool セキュリティで保護された性別
などのフィールドを用意するのがベスト

59:デフォルトの名無しさん
19/03/15 20:17:51.87 GDnHo62/.net
SLC、MLC、TLC、QLCだな

60:デフォルトの名無しさん
19/03/15 21:26:19.10 dImV5MMR.net
オカマでも、男専、バイ、女専と分けないとトイレで掘られるリスクが

61:デフォルトの名無しさん
19/03/16 08:42:08.72 sYsfNqTH.net
Excel VBA質問スレが最後までいって終わったので、次スレ検索したらここが出てきた
Excel VBA質問スレの新スレはないのか?

62:デフォルトの名無しさん
19/03/16 08:43:02.89 sYsfNqTH.net
Excel VBA質問スレでもAccessの話が話題に出るので、ここと統合してもいいんじゃね?
VBAメインの話だろ

63:デフォルトの名無しさん
19/03/16 10:08:04.54 DkwCTpbs.net
>>29がダメな理由、データベースがわからない人にどう説明したら良いんだろ。
ウチの会社も、みんなこうやって作りたがるんだよな。
商品 1月売上 2月売上 3月売上 4月売上 ・・・

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

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

65:デフォルトの名無しさん
19/03/16 17:31:16.60 3KVWdS7r.net
>>54
横槍ど素人でごめん。
連結用テーブルってのは>>50みたいなのでおkってことですか?
最近ACCESS初めて同じようなことしようと思ってます。

66:デフォルトの名無しさん
19/03/16 19:49:12.47 3keflQuI.net
>>65
そそ。
あそこに並んでる表を入れておくのが連結テーブル
あれがなぜ必要かはわかると思うので略
商品、材料テーブルの内容から、自ずと連結テーブルも必要になり、そういうテーブル構成になることは別に特殊なことではありません

67:デフォルトの名無しさん
19/03/17 08:42:17.71 n1sOdbaQ.net
こんなスレがあるぞ
VBAに関する質問はこちらへどうぞ
Excel、Access、Outlook分ける必要ないだろ
VBAなんでも質問スレ Part2 [転載禁止](c)2ch.net
スレリンク(tech板)

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

69:デフォルトの名無しさん
19/03/17 13:57:54.89 2pkDyHvs.net
excelとaccessはアプリケーションとして随分違うから分けた方が良い
excelの方が進みが速いし
access相談系ってここ以外に案外質問スレが見当たらないし(自分が知らないだけで実際には有るかも知れないけど)
分量で分けるなら
excel
access,word,outlook,その他?
みたいに二つに分けた方が良い
excelは利用している人の数が段違いだろうし
上の質問みたいに
材料1,材料2,...
みたいにするのはaccessでは合い難いけど
excelでは割とそういう風に使うから
違いは大きい
それにexcelvbaの方は見てないけど
accessとexcel勢で何か悶着有ったみたいだし
基本は分けた方が良い

70:デフォルトの名無しさん
19/03/17 17:33:15.64 5mJrF7aW.net
>>63
Excelに慣れて表を想像するから。
DBはリレーションを想像すべきで表を想像すべきじゃない。
>>64
リレーションに慣れてれば自然に正規化しようとするようになる。

71:デフォルトの名無しさん
19/03/17 23:33:28.89 L17xYYyd.net
>>68
まず、製品、材料、連結テーブルの中で使用量を格納できる(格納するのがふさわしいか)のはどのテーブルかを考える。
ふさわしいテーブルがなければ新テーブルを追加するが、使用量は連結テーブルに格納すればいいのではと理論建てて考えられるようになりましょう。
書籍は近所に大きめの書店があれば、自分の好みで選びましょう。図が多いとかカラフルなのが見やすいとか。
初級本は2、3回見ればあまり出番なくなると思いますが、どんなことができるのかとか効率よく知るのに有効です。
他は、逆引きとか、テクニック本とかがいろいろな処理を書く上で有効で、長く役立ってくれるでしょう。

72:デフォルトの名無しさん
19/03/17 23:53:15.91 L17xYYyd.net
>>63
データベースに限ったことではないが、最小限の入力(手間)で最大限の結果(伝票だけでなく売上集計や分析など)を得ることが目標。
平たく言えば、楽(効率アップ)しようと思わない人、そのために努力しようと思わない人には伝わらない。
オレは説得するのは諦めた。残業代増やしたい奴ばっかりだから

73:デフォルトの名無しさん
19/03/18 00:03:45.33 01/djhoo.net
馬鹿には無理
これが真実

74:デフォルトの名無しさん
19/03/18 19:45:55.30 WjETnlu5.net
構造ならSQLとかDBのアンチパターン解説本
>>65
他にも連結用テーブルはプライマリをフィールド二つの複合にして
それぞれに元テーブルとの外部キーつくること

75:デフォルトの名無しさん
19/03/19 06:30:11.40 4N2t7FIS.net
みんなこっちにいるよ
スレリンク(tech板)

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

77:デフォルトの名無しさん
19/04/25 10:33:32.47 I6sE8Jku.net
32bitのAccess2016を使っています。
いままではinteger型で済むものはlong型にしてはいけない。メモリーの無駄遣いと思ってきました。
しかし、ベンチマークをとるとlong型の方が速いという主張を頻繁に見るようになりました。
数字は全部long型にした方がいいのでしょうかね?

78:デフォルトの名無しさん
19/04/25 11:52:04.10 vKKospK1.net
>>77
昔々はそうだった
しかし、今はあり余るメモリをたらふく使って、高速にとか、プログラム書きやすくとかになってる。
(もちろん限度ってものはある)
昔は8bitや 16bit CPUだから、長い桁は時間かかった。今は 64bitなので、それ以下に収まれば充分高速。
(数億回ループするのは稀なので、あるなら都度ベンチ取ってロジックなど決めるといい)
SIMDにより多く詰め込めるとかもあるけど、VBAでは多分使われてないから気にしなくていい
わざわざ longに直す必要はない。これからは気にせず long使っていい

79:デフォルトの名無しさん
19/04/25 15:22:48.68 I6sE8Jku.net
>>78
でも、longに直したくなりますよねw
標準モジュールは一括置換→保存で問題ありませんでしたが、
フォームでやってみたら、すぐにメモリー不足やら、フォーム破損が生じてしまいましたw

80:デフォルトの名無しさん
19/04/25 17:43:41.51 ImBWEqP9.net
馬鹿に教えるとロクなことをしない例

81:デフォルトの名無しさん
19/04/25 18:18:18.21 I6sE8Jku.net
実験用のコピーだよ。
楽しく実験するのがプログラミング上達の近道だと思うんだよね。

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

83:デフォルトの名無しさん
19/04/25 22:25:13.99 CJM7ooRn.net
>>81
後付けの言い訳乙
実験するよう連中はこんなところで質問なんかせんわ

84:デフォルトの名無しさん
19/04/26 05:09:51.54 ebeJOjHo.net
>>83
Access界隈っこういう人が多い気がするなあ。
実験用コピーじゃなかったら真っ青になってるだろうなw

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


86:デフォルトの名無しさん
19/04/26 14:38:58.61 xEyS3kHo.net
>>85
オレも最初の頃壊れ(し)まくって、Accessなんて使いもんにならんやんと思った
dbだから、排他とかできるんだし、別々のフォーム触るなら、皆で開発できるやろと 1つの共有mdbで開発やってたw
規模によるけどシステム分離はわざわざしないな
分離するのは、sqlserverとかにするときだけだ

87:デフォルトの名無しさん
19/04/28 22:30:01.14 h9q8OTE0.net
システム分離ってなんですか?
私もファイルが壊れてばかりで困ってます。

88:デフォルトの名無しさん
19/04/29 11:11:13.24 3KqibFAl.net
>>87
データベースでデ-タをどうこうする部分と、デ-タそのものを分離するということでしょ。
テーブルとクエリやフォーム、レポートを別ファイルにするという意味だと思う。

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

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

91:89
19/04/29 11:43:25.91 lr8PSWgy.net
>>89
ネットワークが遅い場合は、定数テーブルもローカルにとか、その辺は臨機応変に。

92:89
19/04/29 12:16:08.84 lr8PSWgy.net
>>90
最近は個人的な作成しかしなくなったので教えて下さい。
そのファイルはmdb、accdbどちらですか?
(拡張子が変わって壊れにくくなったかとか、何が変わってどう影響するか細かくは調べてないです)
そのdbファイルはローカル/ファイルサーバどちらに置いてましたか?
ここ数年はツール的な小さなものを、accdbをローカルで作成してますが、壊れた経験はないです。
1つのフォーム内で、各処理をフレームで分けてあり、フレーム内にはテキストボックスやボタンなどがあります。
フレーム単位で、あっちやこっちに頻繁に移動はしてます。
(それでも、過去の壊れてた経験から、数日に一回最適化とバックアップはとってます)

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

94:89
19/04/29 13:14:19.98 lr8PSWgy.net
>>93
ありがとうございます。
今でもmdbで作り込みが大きいのは壊れやすいんですね。
以前は、新mdbに全部インポートして、リフレッシュ(ゴミ除去)とかやってました。
(最適化より小さくなるから、何か効果はあるんじゃないかと思って。)
accdbに全部インポートして、参照設定修正という方法もあるけど、業務用だと完全に同じ動きするかと問われると保証できないので、難しいだろうし。
時間やお金出るなら(これからも使い続けるなら)、機能(部署)ごとに分割とか、accdbに徐々に移行(プロシージャ修正整理)とかやっていきたいところですね。

95:デフォルトの名無しさん
19/04/29 13:47:50.96 QxflDRVF.net
SQLserver使おうぜ

96:デフォルトの名無しさん
19/05/04 18:38:16.45 ZGbBU4Ge.net
Accessはフロントエンドに使う
DBはMySQLでも良い

97:デフォルトの名無しさん
19/05/05 01:45:20.23 PgstIp0W.net
一度に大量で複雑な更新をすると落ちやすかった印象は有るかなぁ

98:デフォルトの名無しさん
19/05/07 11:01:49.04 S4maxKz5.net
>>96
帳票とかからむと、手軽だもんな

99:デフォルトの名無しさん
19/05/08 19:00:39.16 PD4Nn61H.net
Accessは何たって帳票の作成が超簡単!
これがあるから離れなれない。
LibreOfficeやOpenOfficeにも帳票作成ツールはあるけど、
Accessほど使い易くはないのが、移行できずにいる大きな要因の一つなのは間違いない。

100:デフォルトの名無しさん
19/05/11 13:23:24.99 J8lUk67b.net
Office365でアプリアイコンが刷新されたがAccessは変わらない悲しみ

101:デフォルトの名無しさん
19/06/03 01:57:41.37 vn/O8vit.net
access2016使ってて2013のランタイム入れたらaccessが使えなくなってびびったわ
あわててシステムの復元して直ったけど

102:デフォルトの名無しさん
19/07/17 21:40:08.49 /Hg4fKFx.net
サブフォームのソースオブジェクトに、SQLを直接記入することはできないのでしょうか?
SQL文というものがそもそもオブジェクトでないから記入できないのでしょうか?

103:デフォルトの名無しさん
19/07/17 22:16:32.17 5Qt+TnNF.net
Formのオープン時にそのサブフォームのおソースを放り込めばできる
あとはメインフォーム上でサブフォームをいぢるイベント時に書くとか 例えばボタン押した時など
サブフォームはソース無し にしてるけど、自分は  そこへ放り込むやり方だと出来てる

104:デフォルトの名無しさん
19/07/17 22:25:51.54 eXUk1Aqq.net
>>102
ビュー定義してソースに設定したら?

105:デフォルトの名無しさん
19/09/28 01:30:49.78 XSiAgIby.net
id  部門 販売品目
1  A  りんご
2  A  バナナ
3  A  りんご
4  B  バナナ
5  B  ぶどう
6  B  ぶどう
というテーブルから、
部署と販売品目が同じレコード数
(Aかつりんご、Aかつバナナ、Bかつバナナ、Bかつぶどう の数)をカウントしたいのですがうまくいきません。
販売品目単独では
SELECT 販売品目,Count(id)
FROM テーブル名
GROUP BY 販売品目
のようにすれば思うようにいくのですが、複数条件になると思うようにいきません。
お知恵を貸していただけないでしょうか。

106:デフォルトの名無しさん
19/09/28 02:03:10.80 hdiBTyMe.net
SELECT 部門, 販売品目, Count(ID) AS IDカウント
FROM テーブル1
GROUP BY 部門, 販売品目
HAVING (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう")) ;

107:デフォルトの名無しさん
19/09/28 02:08:15.90 hdiBTyMe.net
もしくは
SELECT 部門, 販売品目, Count(ID) AS IDのカウント
FROM (
SELECT * FROM テーブル1 WHERE (((部門)="A") AND ((販売品目)="りんご")
OR ((部門)="A") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="バナナ")
OR ((部門)="B") AND ((販売品目)="ぶどう"))
) GROUP BY 部門, 販売品目

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

109:デフォルトの名無しさん
19/09/28 06:33:14.21 XSiAgIby.net
>>106
ありごとうごぞいます。
説明が不十分でした。
たしかにそのとうり記述すればできるのですが、部門や販売品目が増えていった場合に、全組合せを書き出さないでやる方法はないものかと考えております。

110:デフォルトの名無しさん
19/09/28 09:36:23.69 hdiBTyMe.net
まだ説明不足かと
組み合わせを指定しないと絞り込みはできないし
クエリビルダーでちゃちゃっと作った最小形が>>106
絞り込み条件のテーブルを他に作ってリレーションとる方法もあるけど

111:デフォルトの名無しさん
19/09/28 21:47:53.70 w31BDneZ.net
>>105
要件定義すらまともに書けない馬鹿だからSQLの基本もわかっていないのかね?
どこにも部署なんてないのだが

112:デフォルトの名無しさん
19/09/28 23:50:31.47 Bvcc+55+.net
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:デフォルトの名無しさん
19/09/29 07:32:11.18 V4rAOO4u.net
>>111
いきってないで答えてやれよヴァカw

114:デフォルトの名無しさん
19/09/29 09:35:48.11 l54OkWQk.net
AccessならGurupByしたクエリを名前を付けて保存しておくのが正解
サブクエ遅いから

115:デフォルトの名無しさん
19/09/29 19:47:04.97 mdCYdpYZ.net
普通に部門販売品目でソートしてから
dynasetからvbaでカウントしたら駄目なの?
sql文を捏ね繰り回すよりその方が簡単な気がするけど?

116:デフォルトの名無しさん
19/09/30 00:02:54.58 ELYMfL9+.net
質問者が一番馬鹿だが答える方も馬鹿ばっか

117:デフォルトの名無しさん
19/09/30 00:24:58.55 K8zar7Eh.net
なのでこのカウントの質問、ここで終了!

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

119:デフォルトの名無しさん
19/09/30 17:44:54.65 3iMPvt2Ii
難しく考え杉

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

120:デフォルトの名無しさん
19/09/30 23:29:21.37 GbU6Rrgw.net
他のリレーショナルデータベースはもっとましな言語で使うんだよ

121:デフォルトの名無しさん
19/10/05 14:25:32.14 pEFp3YWl.net
""とclearcontentsの違いが明らかになったな

122:デフォルトの名無しさん
19/10/05 14:25:47.70 pEFp3YWl.net
誤爆です

123:デフォルトの名無しさん
19/10/22 14:54:31.07 Si05vw2X.net
俺なら
SELECT [部門] & [果実] AS 式1, Count("HOGE") AS DUMMY
FROM テーブル1
GROUP BY [部門] & [果実];

124:デフォルトの名無しさん
19/10/30 06:50:33 q0119UkA.net
普通の関数を使ったSQLがコンパイルエラーで通らなくなるのは、ずっとあるバグなの?
文字列中に含まれるスペースをなくした列同士を比較したいだけなのに

125:デフォルトの名無しさん
19/10/30 08:05:14.44 QrHO4Al6.net
DBに上げる前のデータ加工はExcelとPowerBIについてくるPowerQueryで完結させる
DB自体は何でも良い
Accessはフロントエンド
こういう感じの運用が一番融通が利いて楽

126:デフォルトの名無しさん
19/10/31 14:53:16.10 3aW6/Vt0.net
>>124
通ってたのが通らなくなったなら参照設定確認が最初の一歩

127:デフォルトの名無しさん
19/10/31 16:05:52.19 IlVblaPX.net
optionala argumentについて教えてください。
URLリンク(tsware.jp) では 引数を Optional かつ バリアント型で宣言する と書いてありますが、
総本山の URLリンク(docs.microsoft.com) では
あっさりと string型 で宣言しています。どっちが正しいのでしょうか?
それと、プロパティーシートから 関数を呼び出すときに引数を省略できますか?エラーばっかり出てしまうので,不可能という気がしてきますが、実際はどうでしょうか?

128:デフォルトの名無しさん
19/10/31 16:14:24.18 IlVblaPX.net
ひとつ解決しました。
ここ URLリンク(bettersolutions.com) に Remember that IsMissing will only work with the Variant datatype. と書いてあるので、
IsMissingを使いたい場合にvariant型である必要があるだと思います。
プロパティーシートからcallするときに省略可能かどうかはまだわかりませんね。

129:デフォルトの名無しさん
19/10/31 23:30:26.82 IK0T1jez.net
>>128
プロパティシートからでも省略できると思うよ
標準で使える関数でも省略できるから

130:デフォルトの名無しさん
19/11/06 06:37:50 jiZZUv+M.net
IsNumeric 関数 VBA URLリンク(vba-auto.com)

9CF

131:デフォルトの名無しさん
19/11/06 06:37:51 jiZZUv+M.net
IsNumeric 関数 VBA URLリンク(vba-auto.com)

9CF

132:デフォルトの名無しさん
19/11/12 08:08:27.20 n8VUgOjj.net
スレチですまん。
俺はVBAをやってるが上司から言われました。(うちの部署、10名のうち、VBAを作れる人は二人だけ、、、)
AIが集計をしてくれるからEXCELは必要ない時代が来るねと言ってた。
反論出来る?

133:デフォルトの名無しさん
19/11/12 09:07:34.81 umlGYBnb.net
高度なAIにVBAとか集計なんかやらせちゃ駄目だ。他に何もできない俺たちがやらなきゃな

134:デフォルトの名無しさん
19/11/12 10:13:03.38 n8VUgOjj.net
>>132の者です。
EXCELとACCESSを間違えた、、、。
すみません。

135:デフォルトの名無しさん
19/11/12 18:47:25.82 ZiPBwNA/.net
ここって禿げのおっさん来てるの?

136:デフォルトの名無しさん
19/11/12 21:13:04.29 hnHZ9bm+.net
>>132
〉AIが集計をしてくれるからACCESSは必要ない時代が来るねと言ってた。
来ませんけど、未来のことなので証明はできません
なので、その理由を何かをしないことに最大限反論に活用するのが最も有効です
私がプログラムを始めた数十年前から、「コンピュータが発達したらプログラマーはいらなくなる」と言われていましたが、今でも慢性的に不足してますし、更には小学校(?)からプログラムを教えると
ちなみに自社でai使うことになっても、おそらく数百万円かかって、大して使い物にならないでしょう
ITに詳しくない人は、知識もないのに夢見過ぎです
複数データを組み合わせてサクッと結果求めたり、そこそこのアプリ(特にレポート活用)作るなら、今でもACCESSは最良の選択の一つだと思ってます。2.0くらいから今までそこかしこで使いまくってます

137:デフォルトの名無しさん
19/11/17 21:57:31.66 qBLyum9y.net
エクセルに比べて、アクセスは過疎ってるなあ

138:デフォルトの名無しさん
19/11/18 09:09:41.09 8BxAA3e8.net
あなたの禿にacc(ry

139:デフォルトの名無しさん
19/12/19 22:11:03.53 lRu+t2VS.net
Access2010
印刷プレビューのリボンで「PDFまたはXPS」を押した際に出てくる
「PDFまたはXPS形式で発行」のダイアログを出すVBAコード教えてください。

140:デフォルトの名無しさん
19/12/20 21:12:19.28 NX/gzbot.net
とりあえず自分でマクロの記録でそれらの操作をなぞって
それでできたブツを思う存分手直しして
そこで発生した問題を質問した方がいいかもな
Access遣いはおばーちゃんやおじーちゃん多いから
「イチからかよ」って思われると、誰も面倒がって答えたがらない

141:デフォルトの名無しさん
20/01/25 09:08:10 Ib3xGLkp.net
Windows10、Office365のAccess16なんだけど、レポートプレビュー画面にボタンでもおいて、そこにイベントプロシジャーを設定したいんだけど、どうするのかな?
Access2003では簡単にできたんだけど、リボンがでてきたAccess2007以降出来なくなった気がするんだけど、どうなんだろう?

142:デフォルトの名無しさん
20/01/25 10:20:39 lx4KYteI.net
あなたのハゲにサクセスしたい

143:デフォルトの名無しさん
20/01/25 23:41:49 Tl89GTzc.net
>>141
ちょっと2003でそれをやるコード上げてみ

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

145:デフォルトの名無しさん
20/02/06 19:57:45 djhx8w46.net
会社で役割柄ツールを作ることになりまして、アクセスに入門しました
xlsxをインポート、それと同時にテーブルを作成するVBAは組めたのですが、同時にレコードが勝手にソートされてしまい、元データとレコードの順番が異なってしまうという問題に直面しています。
この場合、テーブル作成と同時にオートナンバーを設定するようにしたいのですが、docmd~acimportdelimでは定義付けができません。
何か方法はありますでしょうか

インポートするxlsxは毎回ファイル名が異なる想定なので、保存したインポートを使うのは極力避けたいです

146:デフォルトの名無しさん
20/02/06 22:52:24.69 BV2yIT+0.net
>>145
元データに順序列付けとき

147:144
20/02/07 06:55:52 uUICGF6D.net
>>146
そうですよね…
最終手段としてはそれを考えています

148:144
20/02/07 06:56:12 uUICGF6D.net
ありがとうございます!

149:デフォルトの名無しさん
20/02/07 12:31:07 etaMDs5Y.net
>>147
最終手段というか、RDBの行の順序に意味を持たしちゃ行けないと言う基本理念

150:デフォルトの名無しさん
20/02/09 18:52:02 ISiAk6Az.net
あなたのハゲにサクセスしたい

151:デフォルトの名無しさん
20/05/03 05:34:51 oxUHZhz1.net
おはようございました
新型コロナでACCESSどころでは無いですね

152:デフォルトの名無しさん
20/05/23 05:21:27.38 GBVQ4WJe.net
jetbeensのDataGripってアクセスでも使えるの?

153:デフォルトの名無しさん
20/05/24 14:56:41.74 nvA4FLS/.net
>>152
jetbrainsでしょ

154:デフォルトの名無しさん
20/05/24 14:58:32.86 nvA4FLS/.net
>>152
URLリンク(stackoverflow.com)

155:デフォルトの名無しさん
20/06/12 10:16:26.06 wVr6YfiN.net
全然ネットにもあがっていないけれど、Access2019の最新版で、DAOでレコードセットを作成して操作しようとすると
Accesが落ちるっていう現象を経験している人っていませんか?
32ビット版も64ビット版も同じ。

156:デフォルトの名無しさん
20/06/13 00:26:56.61 0QXppYe5.net
Excelが2013というオチではなくて?

157:デフォルトの名無しさん
20/06/13 23:26:59.26 qOp00dJL.net
そうでなくて、今まで動いていたのに最新のビルドになったら突然落ちるようになった。
前のビルと番号に戻したら動くのよ。
ADOでレコードセットを作成したときはどのビルド番号でも問題なし。

158:デフォルトの名無しさん
20/06/19 09:37:07.67 N2hJl/gn.net
Application.SetOptionの引数一覧が知りたいのですが、誰か知りませんか

159:デフォルトの名無しさん
20/07/31 18:27:45 2hxJK6g2.net
ヘルプデスクがスキルアップするため、プログラミング経験積むのにAccessVBAって合ってますか?

160:デフォルトの名無しさん
20/07/31 18:46:19.97 z2KmuaKZ.net
まずヘルプデスクという職場でプログラミング経験積めるの?

161:デフォルトの名無しさん
20/08/01 22:26:21.99 kuObS2ra.net
合ってるかどうかはわからんけど、それはありだな。
DBとPG、両方の知識が増える。

162:デフォルトの名無しさん
20/08/02 01:27:11.88 S6RTQlHT.net
お前らどうやって勉強したの?
おいらADO勉強したいけどどの本読んでいいかわからないから勉強できてない。

163:デフォルトの名無しさん
20/08/02 04:08:31 dor5CoCv.net
覚えるなら実務が一番早いと思いますが
独学なら簡単なものを作ってみると良いですよ
持ち物リストとか

164:デフォルトの名無しさん
20/08/04 22:22:12.96 j2qbL1qD.net
持ち物リストですか、わかりました

165:デフォルトの名無しさん
20/08/07 09:09:10.88 QUQQ3BC/.net
>>162
Google。
本で勉強したのは20年前かな。

166:デフォルトの名無しさん
20/10/10 13:55:25.74 aicjgH/E.net
最近のAccessは条件付き書式の条件数が3つまでという制限がなくなったと聞いて、vbaで4つ条件を書いたら、怒られた。
条件数の上限の件はどうなっているの?

167:デフォルトの名無しさん
20/10/12 19:42:49.57 SLKy4GhN.net
URLリンク(hamachan.info)
なんだろ?もっかい見直してみ

168:デフォルトの名無しさん
20/10/12 20:44:51.07 XW9upEZ9.net
>>167
こんなことがかいてありましたね。
>>参考Access2010以降は、条件付き書式を3つ以上追加することができます。Access2007では、3つまでです。
もしかしたら、メニューからなら可能でVBAでは不可能なのかもしれませんね。そうだとしたら変な仕様ですね。

169:デフォルトの名無しさん
20/10/12 22:03:49.00 SLKy4GhN.net
不可能とみるか、未対応と思うか 人それぞれ
クレバーなら文句を付けてるヒマ有ったら今できるベストな対応をして次に進んでる

170:デフォルトの名無しさん
20/10/12 22:18:07.44 XW9upEZ9.net
おお、AccessとかVBAを勉強し始めた頃を思い出しますね。
ネットで誰かが質問すると必ず上から目線で罵詈雑言だったなあ。
知恵袋とかも酷かったなあ。

171:デフォルトの名無しさん
20/10/13 20:22:52.03 Jo0My/9g.net
>そうだとしたら変な仕様ですね。
これが無かったら小言書かなかったけどな MS相手にどっちが上から目線なんだか
かてて加えて減らず口叩かれるとは いやはや
チラとWeb巡ったら難問袋小路問題で以前からあった疑問なのは判った
条件付き書式をVBAで制御するときに注意すること でググれば一番上に出てくるであろうサイトでは
2013をベースに「・・・すること」とか断言してるが、どうなんだ?
hatena さんのサイトでは別問題として画面がチラつくと仰ってる
そのサイトの途中にあるリンク先 ↓ (アドレス貼ると書き込みできないから省略
YU-TANG さんは既にアーカイブでしか見られないしVerも古いが
3つしかできないのを工夫で5つまで可能にしてる(らしい 詳細は未チェック)
そのサイトの最下段にあるリンク先 ↓ (ry
で、そこから誘導されたこちらもアーカイブなLebans 氏のサンプル(らしい 詳細は未チェック)
帳票フォームをサブクラス化して 云々 悪魔の技とYU-TANGさんは大絶賛してる
驚くことにアーカイブだがファイル落とせる
自分では必要に迫られたこと無かったから無頓着だったが、なるほどね みなさん悪戦苦闘してるんですね

172:デフォルトの名無しさん
20/10/14 02:48:02.48 zZVeC8zp.net
accessは質問者に小言を言う人が多い印象。
いわゆるIT土方が多いからかねえ。
余談だけど世間に流通している商品のVBAを覗くとひどいコードの多さに驚く。そういうコードを書く人が質問者相手にがストレス発散してる気がするなあ。

173:デフォルトの名無しさん
20/10/20 06:46:57.60 RpHsdUuc.net
ACCESSは後継者が少ないから先輩面したくても出来ないって人が多いのでは。
私も後輩が欲しい。育成では無く先輩面目的で(だからダメなんだろうね)。

174:デフォルトの名無しさん
20/10/23 06:48:31.50 LIFEWQB+.net
Access2016を使っています
VBAを使いcsvファイルを取り込もうとしているのですが取り込み先のファイルの名前全てにピリオドが入っており、例1333.T.csv ピリオドが邪魔でファイル名を指定してもうまく取り込めません
何か良いアイデアはないでしょうか?

175:デフォルトの名無しさん
20/10/23 17:06:19.46 jTOWYlOX.net
csvファイルに名前付けのルールとかがあって、規則性があるなら Left Mid Right
辺りを交えて工夫  全く一貫性が無いとかなら . を ppp とかにリネームする工夫
URLリンク(soudan1.biglobe.ne.jp)  ←これってこと?
URLリンク(tsware.seesaa.net) ←ここにもヒントが

176:デフォルトの名無しさん
20/10/24 06:13:20.49 3Br09s+m.net
>>174
私はファイル選択、コピー、インポート、コピーしたファイルの削除、と言う手順でデータを取り込んでます。

177:173
20/10/24 23:19:53.94 s9oXa8gi.net
>>175
ありがとうございます
ファイル名は規則性があるのでLeft Mid Rightを使ってドットをスルーして取り込みをするやり方を探してみます
>>176
こちらはファイルコピーをしてドットのない名前に変換してからインポートといった感じでしょうか初心者すぎてまだ色々理解できていないですが道筋がみえましたありがとうございます

178:デフォルトの名無しさん
20/11/21 02:09:02.77 OkL4O3GG.net
ACCESS365?でadoの話。
昨日、テーブルメンテナンス用にプログラム書いて、テストでupdateメソッド行をコメントアウトして実行したのにレコードが更新されて焦った。幸い意図した通りの更新が出来たので問題は無かったのだが、こんな事有る?

179:デフォルトの名無しさん
20/11/21 19:58:38.03 4nufVV0K.net
通常ではあり得ない動作ですから
accdbが破損しているか
思い違いしているか
じゃないですかねぇ

180:デフォルトの名無しさん
20/11/22 23:10:13.61 DuDUZZqW.net
だよね、自分の事じゃなければ私もそう思う。明後日に追試してみます。

181:デフォルトの名無しさん
20/11/25 18:43:23.08 q3XRT9ff.net
>178
ADOだと、Updateメソッド実行しなくてもレコードが保存される条件があったはず
URLリンク(docs.microsoft.com)
>Update メソッドを呼び出すより前に追加中または編集中のレコードから移動すると、ADO によって自動的に Update が呼び出されて変更内容が保存されます。

182:デフォルトの名無しさん
20/11/26 22:16:38.24 jD11+CM5.net
>>181
これか、ありがとう。
だとしたらupdateメソッド要らなくね?よく分からんが。

183:デフォルトの名無しさん
20/11/27 16:20:14.12 j3fR6c+j.net
レコード移動しないけど変更を保存したいときに必要だろう

184:デフォルトの名無しさん
20/11/29 20:06:15.16 k+jvWZ30.net
>>183
それはそうね

185:デフォルトの名無しさん
21/01/11 16:27:04.20 HFGgd7VU.net
ACCESSのSQLでビット比較ってどうすればいいですか
(value & 0x10) == 0x10 みたいに特定のビットが立ってるか比較したいのですが

186:デフォルトの名無しさん
21/01/11 17:56:37.60 qzYYjSUA.net
できるかわかりませんが、
(value and &H10) = &H10
だとダメですか?

187:デフォルトの名無しさん
21/01/12 19:10:42.78 f1Ulh51r.net
>>186
試してみます、ありがとうございます

188:デフォルトの名無しさん
21/01/12 19:16:56.91 f1Ulh51r.net
ダメでした
andを&に変えてもダメでした

189:185
21/01/12 19:30:22.83 sGnBc5NV.net
そっか、SQLのAND演算子になっちゃうのか… &も文字列の結合演算子とみなされちゃうのかな?
&H10のビット限定なら、
(value \ 16) MOD 2
でいけそうですが、他にもパターンがあるでしょうから…

190:185
21/01/12 19:34:25.38 sGnBc5NV.net
何より分かりにくいですねw
整数除算(\)で該当のビット位置を一番右にずらして、MODでそのビットを取り出します

191:185
21/01/12 19:49:06.45 sGnBc5NV.net
16 じゃなくて &H10 と書く方が取り出すビットと一緒で分かりやすいですね(うまくゆくかはわかりませんが)
(value \ &H10) MOD 2

192:185
21/01/13 02:15:13.93 +GyFVgd4.net
連投すみません
188案は value が long型だとして、値が負数のとき正しい結果にならないことがあります
ごめんなさい

193:デフォルトの名無しさん
21/01/13 17:32:20.96 Mb95xbD5.net
>>189-192
親切にありがとうございます。
\とか使えるのは知りませんでした。
試してみます

194:デフォルトの名無しさん
21/01/13 17:50:48.61 +yZZ5ziS.net
Windows10、Access365です。
Excelファイル上のデータに対して、ADOでアクセスして、データを取り込んでいるのですが、時間がかかります。
時間を短縮する方法はないでしょうか。
データは1ヶ月分9万件程度ですが、Accessのテーブルに取り込むのに、7分程度かかります。
テーブルのレコードの追加は、データ1件1件に対して、ADOのAddNewメソッド、Updateメソッドで追加しています。
試しに手動でAccessのインポート機能を使用して1ヶ月分のデータを取り込んでみたのですが、時間はかからなかったのですが、F20、F21など、空白の列まで要求されました。
そのためこの手段はあまり良くないと思っています。
レコードセットを一気にInsertする方法とかないでしょうか。
よろしくお願いします。

195:デフォルトの名無しさん
21/01/14 01:33:57.64 yNTWs1ET.net
一件一件Updateするんじゃなくて、UpdateBatchでバッチ更新してみるとか

196:デフォルトの名無しさん
21/01/14 01:41:15.38 yNTWs1ET.net
>>188
ふつうに>>186でできるはずだけど
valueの型が数値じゃないんじゃ?

197:デフォルトの名無しさん
21/01/14 03:34:32.57 eeXKDacn.net
>>194
レコードセットで要求の動作はできないと思われます
以下はレコードセットを使わない方法になります
前提として
・現在取込時にレコードセットを編集していない
・SQL が書ける
INSERT 文で
・「IN 句」に Excel ファイルを指定
・追加先テーブルに Access テーブルを指定
これでインポートと同等のパフォーマンスになると思います
詳細は MS のリファレンスを参照
URLリンク(docs.microsoft.com)
今(.xlsx)だと EXCEL 12.0 になります

198:デフォルトの名無しさん
21/01/14 05:18:36.84 ecyWCD0F.net
知恵袋はあてにならんくて

199:デフォルトの名無しさん
21/01/14 12:53:46.92 kpvbRWbL.net
>>197
ありがとうございます
試しに1行をInsertしてみたところ、3分程度で処理できました。
ただ、.AddNewの方も、同じデータで3分-7分のくらいで処理できたので、思ったよりも処理速度は改善しませんでした。
あと、Nullだけのレコードが入ってしまうことも難点でした。
取り込みたいデータを取り込めたのと、列が30列くらいあり書き換えに時間がかかるので、一旦は今のままでいこうと思います。
ただ、今後も同じようなデータの取り込みがありそうです。
他に効率的なデータ入れ込み方法がありましたら、お教えいただけると幸いです。

200:デフォルトの名無しさん
21/01/14 16:43:18.02 eeXKDacn.net
>>199
ループ中の AddNew を SQL の INSERT に置き換えたのでしょうか?
インポート対象(9万件程度)を1度の INSERT で行います
Null レコードは Where で除外可能かと思います
現実的なのは SQL 直発行かインポート機能の2択かと思います
インポート機能も定義を固めれば使い物になります
効率というのは人によって変わります
普段からコードに触れている人なら VBA からの SQL 発行が効率的
コードは書かないが Access を使い慣れている人ならインポート機能やクエリ定義が効率的
両者の方法とも取り込み実行時間はほぼ同じです

201:デフォルトの名無しさん
21/01/14 18:14:16.61 EmIfgllR.net
>200
いえ、INSERT SELECTからの列指定をして一気に入れ込みました。実験的に1列のみを。
インポート機能とSQLでの処理は速度が違う気がするのですが本当でしょうか?
テーブルへの書き込み方が根本的に異なるような気がします。
DoCmd.TransferSpreadsheet はぜひ使えるようになっておきたいですね。
エラーがよくわからないので今まで使っていませんでした。

202:デフォルトの名無しさん
21/01/14 21:01:21.37 yNTWs1ET.net
>>201
全体で1トランザクションになるようにトランザクション張るか
UpdateBatchで更新するか試してみてくれ

203:デフォルトの名無しさん
21/01/14 23:19:32.20 KOTB1sbE.net
>>202
ありがとうございます
参考にしながらやってみます。
URLリンク(www.google.co.jp)
URLリンク(docs.microsoft.com)
あと、トランザクションの以下のコードですが、参考にしようと思うのですがこれは全体で1トランザクションになっていますか?
URLリンク(excel-excel.com)

204:デフォルトの名無しさん
21/01/15 12:06:52.83 Z+pTsb/B.net
>>200
もう一度SQLでやってみたところ、インポートと同じ時間で処理できました。
ありがとうございます
>>202
UpdateBatchでは処理時間に違いがありませんでした
レコードセットへの書き込みに時間がかかっているのかもしれません。
ありがとうございます

205:デフォルトの名無しさん
21/01/16 21:45:45.19 wM/4uvwh.net
>>162
資格をモチベにしてる

206:デフォルトの名無しさん
21/01/26 12:20:07.19 pY3ojVqI.net
ウチの社内の情報システムの制限でwindowsカメラアプリが制限されてるんだけど、VBAで無理矢理動かせないだろうか、、、
いろいろ検索してみても古い情報しかなくて、、
64bit版でも出来るようなプログラムの見本とか有れば助かる。

207:デフォルトの名無しさん
21/01/26 12:31:00.16 bIVSUY/u.net
そんな事してバレたら懲戒処分にならない?

208:デフォルトの名無しさん
21/01/26 21:32:09.76 0moyOenU.net
>>207
少し言い方が悪かったかな。
端末でWEB会議してるから、カメラを使うのは問題無いんだけど、静止画を撮るソフトが入っていないもんで、静止画を撮ってDBと紐づけたいってなると、できなくて。
小規模グループでAccess使ってるから、システムに相談しても本気でかけあってくれなくて、、
それだったらVBAでどうにかならないかと思って。

209:デフォルトの名無しさん
21/01/26 22:49:05.99 5iMVHv+0.net
>>208
より悪いんだけど

210:204
21/01/27 17:26:57.82 Nmg5vWMl.net
スタンダード受かった(^ω^)v

211:デフォルトの名無しさん
21/01/29 13:44:54.10 Xkyf+iIu.net
>>210
もめでとう!
資格は財産!
凄いなスタンダードは

212:デフォルトの名無しさん
21/01/29 16:32:16.97 SG5MocSx.net
>>211
ありがとう。マイナー資格のせいか、
テキストは悪評にも関わらず他に選択肢ないし、
そのテキストもアプリもやたら高いけど、
一発合格のために全部ちゃんと買ったわー。

213:デフォルトの名無しさん
21/01/31 10:42:42.16 /4jghnKY.net
VB自体マイナーよりなのがね。。。
参考書の著者は名のある人(武藤玄さん?)だから安心でしょ

214:デフォルトの名無しさん
21/02/01 19:30:44.14 JChayj2G.net
「課題テーブル」 の項目「ファイル:添付ファイル型(拡張子は.xlsx)」をSQLで取得して(1)、
そのファイル名を変更して保存(2)しようと思っています。
(2)の処理は問題ないのですが、肝心な(1)の処理が分かりません
SQLだと以下のような感じかと思うですが、これだと、「ファイル」の名称も取得すらできないようです。
なにかしらヒントをいただけないでしょうか。
検索にヒットするようなキーワードでもかまいません。
よろしくお願いいたします。
"SELECT ファイル  FROM 課題テーブル where ID = 1" (件数は1件)

215:デフォルトの名無しさん
21/02/01 20:47:30.12 g0s2XOHS.net
ファイルを取り出したいのか、ファイル名を変えたいだけなのか、何がしたいのかがわからない。

216:デフォルトの名無しさん
21/02/01 20:48:57.97 g0s2XOHS.net
ファイルをSELECTするとファイルが出てくるというのは奇妙な発想だな

217:デフォルトの名無しさん
21/02/01 20:52:05.66 1CLvOTQ1.net
>>215
ファイルを取り出したいんだけど、
SQLでなくクエリーでやるべきなの?
先日Access始めたから見様見真似。
添付ファイルを取得すれば、renameして保存するところはわかるんだけど。

218:デフォルトの名無しさん
21/02/01 20:58:59.00 90ziZ1xl.net
エクセルファイルはAccessには入ってないだろ
フォルダから取り出すのか?

219:デフォルトの名無しさん
21/02/01 20:59:30.52 90ziZ1xl.net
何がしたいのかマジで分からんw

220:デフォルトの名無しさん
21/02/01 20:59:46.61 1CLvOTQ1.net
Accessのテーブルの添付ファイル型の項目に入っている

221:デフォルトの名無しさん
21/02/01 21:01:37.65 90ziZ1xl.net
そのアドレスをエクセルで開いてリネーム保存すればいいじゃん

222:デフォルトの名無しさん
21/02/01 21:03:39.26 90ziZ1xl.net
Dim MyExcel As New Excel.Application
とか使って

223:デフォルトの名無しさん
21/02/01 21:12:34.68 1CLvOTQ1.net
>>222
それ使ってるんですけど添付ファイル型ってchar型とかと同じように扱えれるんですかね、
よろしければもう少しヒントを。

224:デフォルトの名無しさん
21/02/01 21:22:03.72 1CLvOTQ1.net
ファイルをディスクのどこかに保存するのは、SaveToFile メソッドですかね?
なんか使えそうに思うけどいかがですか?

225:デフォルトの名無しさん
21/02/01 21:43:47.01 FgW8bRhe.net
そんな新しいAccessなんて持ってないから知らん

226:デフォルトの名無しさん
21/02/01 21:44:43.65 90ziZ1xl.net
URLリンク(oshiete.goo.ne.jp)
添付ファイル型はレコードセットになっていて
その中のフィールドのひとつ(3つ目。つまりF(2))がファイルネームになっていて、
それを取得する。らしい。

227:デフォルトの名無しさん
21/02/01 21:45:48.50 90ziZ1xl.net
>>224
普通にSaveAsじゃあかんの?

228:デフォルトの名無しさん
21/02/01 21:48:22.88 c76bdQcs.net
ありがとうございます。
少しヒントが得られたかも。
明日試してみます。

229:213
21/02/02 11:31:56.15 UTRQGX0/.net
添付ファイル型データのデータとファイル名取得が出来たので
参考に記載します。ありがとうございました。
URLリンク(www.proton.jp)
(参考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
------------------------------------------------------------------------------------

230:デフォルトの名無しさん
21/02/02 14:27:49.60 CQc47MX2.net
それ、SQLとRSは無駄にVariantになってないか?

231:デフォルトの名無しさん
21/02/04 15:46:42.10 QbGo6q9b.net
OLEオブジェクト型はどうやってSQL(select 文)で抽出するの?

232:デフォルトの名無しさん
21/02/04 20:11:15.64 XRB3PpKu.net
select文は普通に列名とテーブル指定するだけじゃないのか?
そっからどうやってデータ取得するかはどうやってDBアクセスしてるかによるんじゃね
とりあえずDAOかADOかとバージョンぐらい書け

233:デフォルトの名無しさん
21/02/04 20:23:44.53 w6PAg1HV.net
>>229
ファイルを取得したいと言っていたのに、ファイル内のデータでよかったのか?

234:デフォルトの名無しさん
21/02/05 00:26:34.08 OHtcWSU6.net
VBSでmdbに接続してaddnewしてupdateするだけの簡単なスクリプトの挙動がおかしい。
sub や Functionにして callすると成功するくせに、subじゃなくて素のスクリプトだと何もしない。
ちなみに読込みはどっちでも成功する。
なぜ、addnewのときだけ、プロシジャーである必要があるのだろうか?

235:デフォルトの名無しさん
21/02/05 00:34:27.19 OHtcWSU6.net
vbseditがおかしいらしい。
適当なディレクトリに保存して実行したら素のスクリプトでも成功した。
わけわらん。

236:230
21/02/05 10:13:06.16 s99X7duh.net
SELECT文でOLE型のファイル(拡張子.docx)を読み込んで保存しようとしています。
処理を行ったところ、「ファイル『temp.xls』は内容に問題があるため、開けませんでした。」という
メッセージが出ますが、「開いて修復」すれば元のファイルと同じに見えるので
SELECT文で項目だして、書き出すまである程度できているようなんですが、
どこがおかしいのでしょうか、ご意見をいただけたら幸いです。
参考サイト
URLリンク(www.moug.net)
画像を読み込む(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

237:デフォルトの名無しさん
21/02/05 13:09:23.30 7kBPI4G7.net
VBS って、まだシステムで使えるのか?
保守されてる?

238:デフォルトの名無しさん
21/02/06 11:30:21.47 PohEB++t.net
bytImage() の中身は docx に直接上書き保存できるものなのか?

239:デフォルトの名無しさん
21/02/07 12:21:08.72 EDRo6Y49.net
>>237
Windows 10そのものがまだ使っています。

240:デフォルトの名無しさん
21/02/26 16:49:44.25 v+ay/MML3
70億円調達のネットショップ作成サービスhey、「我の弱い人同士の組織力」武器にEC市場シェア拡大目指す
URLリンク(www.businessinsider.jp)
【劇団ノーミーツ1】役者も客も会わないオンライン演劇で7000人動員。制作チームは全員20代、半分は会社員
URLリンク(www.businessinsider.jp)
利用、無料。日本版衛星データプラットフォーム「Tellus」がすごい理由…“宇宙の視点”でビジネスはこう変わる
URLリンク(www.businessinsider.jp)
「起業ブーム」が新たなフェーズに 大学発ベンチャーへの想い
URLリンク(forbesjapan.com)
かつて学者がやっていたことを、今は起業家がやっている
URLリンク(diamond.jp)
番号やアドレス不要の無料通話アプリRe-mo登場 ドワンゴが配信開始
URLリンク(japanese.engadget.com)
10年間使い続けた WordPress を辞めた理由  a-blog cms を選んだユーザーのお話
URLリンク(webtan.impress.co.jp)
ノロケツイートがバズって起業! カップル・夫婦向けサービス「ふたり会議」が反響を呼ぶワケ
URLリンク(www.itmedia.co.jp)
コロナで細る“起業”を手助け。クラウド会計freee、スマホアプリで設立書類を作成できるサービス
URLリンク(www.businessinsider.jp)

241:デフォルトの名無しさん
21/02/26 20:55:30.10 BHdQltm/.net
AccessからOracleに接続して、テーブル定義を取得しようとした場合、Currentdbにリンクテーブル作成してtabledefで取得するしかないですかね?

242:デフォルトの名無しさん
21/02/26 23:30:20.77 aSS4VuLP.net
>>241
そんな訳ないだろ
お前の頭には無理ってだけだ

243:デフォルトの名無しさん
21/02/26 23:38:57.64 JyNwBwDQ.net
>>242
どうやってやっているんですか?
そんなに人に偉そうにいうくらいならお詳しいんですよね?

244:デフォルトの名無しさん
21/02/27 00:39:35.09 lzDnqtNz.net
一応言っとくが、あわしろ氏は権威だぞ。

245:デフォルトの名無しさん
21/02/27 03:37:26.48 oWYDZ6ol.net
>>243
だからお前みたいな馬鹿には無理ってだけだ

246:デフォルトの名無しさん
21/02/27 09:00:35.16 kkUl7IkZ.net
わからないんだろ?
教えられないのに質問スレでマウント取って
かっこいいね!

247:デフォルトの名無しさん
21/02/27 13:52:55.39 oWYDZ6ol.net
馬鹿が聞き出そうとして必死だな
元の質問が、
「しかないですかね?」
だから、
「他にある。馬鹿にはわからないだけ」
これで完結

248:デフォルトの名無しさん
21/03/12 04:20:10.68 U5Mc6cIw.net
クライアントPC複数台にコピーしてあるaccdbの更新を自動化したいのですが、上手い方法が有ったらアドバイス下さい。
今は、終了時に更新版があればコピー専用のaccdbを開く、という方法です。
時々コピーに失敗したり、更新後の起動が出来なかったり、なんかスマートに出来ません。

249:デフォルトの名無しさん
21/03/12 07:03:59.49 bg4PRHHU.net
それぞれのPCに共有サーバーでクライアント各々に1つのものを使ってもらえば?

250:デフォルトの名無しさん
21/03/12 07:47:36.33 vZYfq0zb.net
え?

251:デフォルトの名無しさん
21/03/12 15:03:23.20 6lWZMdzy.net
>>249 コメントありがとうございます。
共有フォルダに置いたテーブルだけのバックエンドや、データベースサーバーにテーブルがあり、フロントエンドにリンクして使ってます。
各クライアントのフロントエンドを更新したいのです。
フロントエンドを共有フォルダに置いて皆んなで使うと壊れやすい、50台のクライアント全て閉じてもらわないと更新できないなどの問題があり、現在のかたちで運用しています。

252:デフォルトの名無しさん
21/03/12 16:26:24.53 ZUwUvURf.net
基本的には別ブログラム(Accessでなくてもいい)で上書きしてもらうしかないけど
タスクに登録して再起動してもらうとか
さがせばそれ用のツールとかありそうだけどな

253:デフォルトの名無しさん
21/03/12 18:43:58.19 6lWZMdzy.net
>>252
WSHで一日一回各クライアントで実行する例があったんですが、やってる事は同じなのです。なんかスマートな方法無いのかなあ。
もう少し探してみます。お騒がせしました。

254:デフォルトの名無しさん
21/03/17 08:24:13.18 o9MkZCaQ.net
他フォームや親フォームのコマンドを実行する時,
Call Forms!フォーム名.ボタン_Click
だと動かないのに,
With Forms!フォーム名
.ボタン_Click
End With
にすると動くのは私だけ?

255:デフォルトの名無しさん
21/03/17 08:27:13.40 o9MkZCaQ.net
まちがった.

256:デフォルトの名無しさん
21/03/17 08:27:40.08 o9MkZCaQ.net
With Froms!フォーム名

257:デフォルトの名無しさん
21/03/17 08:31:05.18 o9MkZCaQ.net
スレ汚しすみません、やり直し。
他フォームや親フォームのコマンドを実行する時,
Call Forms!フォーム名.ボタン_Click
だと動かないのに,
With Forms!フォーム名
Call .ボタン_Click
End With
にすると動くのは私だけ?

258:デフォルトの名無しさん
21/03/23 22:25:21.29 OYDSqGqD.net
レポートのテキストボックスが関数を呼び出すことがあるんだけど、それを検索する方法はないですかね?
VBEをいくら検索しても、ある特定のFunctionをCallしているのがなんなのかさっぱりわからなくて途方に暮れた後にレポートのテキストボックスと気づいたときの疲労感は凄かった。
スマートに一発検索する方法ありますか?

259:256
21/03/24 19:23:21.05 Oy88L6kY.net
どうも、ないようなので、for eachループを回して全部テキストにしました。
レポートの全部のコントロールを書き出したら24MBになりました。
コントロールから直接Callするのはお行儀が良くないですね。

260:デフォルトの名無しさん
21/03/24 19:53:42.42 Oy88L6kY.net
DoCmd.PrintOut
同じコードなのに、一方ではちゃんと複数枚印刷して、もう一方では常に1枚しか印刷できない。
ググると似たトラブルが見つかる。バグなんだろうか?ご存じの方いますか?

261:デフォルトの名無しさん
21/03/25 18:29:57.87 25o3kYjY.net
Access365 Windows10です。
Excel上からVBAでDAOにてAccessのクエリのレコードセットを取得しています。
Access上のクエリで表示されるレコード数と、Excel VBA DAOから取得したクエリのレコードセットのレコードの数が異なり、原因がわかりません。
それぞれのレコード一覧を出力してみると、あるフィールド(IIf(・・・,”対象外”, “督促対象”)としている部分) の値が、Access上のクエリでは「対象外」、Excelから取得したレコードセットでは「督促対象」となっているため、抽出条件が誤認識されてレコード数が異なることに気がつきました。
クエリの他の抽出条件にワイルドカード等を使っていないと思います。
クエリをDAOで取得した場合に、違いが生まれる原因を推測できる方はいらっしゃいませんでしょうか? 回避策があればお教えいただけると助かります。

262:デフォルトの名無しさん
21/03/26 12:11:20.45 x01Nq0VC.net
>>261
Accessのテーブルを、Excelからのリンクテーブルにしているものがあるのですが、クエリを開いている状態で、ExcelからDAOでレコードセットを取得すると、テーブルにしているExcelファイルが自動で開かれます。
その状態で取得したレコードセットの内容がおかしいことに気がつきました。
なぜレコードセットの値が異なるのかは、不明なのですが、テーブルにしているブックが開かれているとエラーを出力するようにして、回避しました。

263:デフォルトの名無しさん
21/03/26 12:30:39.51 9TlDuTMy.net
わからん すまん

264:デフォルトの名無しさん
21/04/04 17:14:14.07 gjYxCKFw.net
基本的なことで申し訳ないんだけど
URLリンク(www.helpforest.com)
に書いてある開いてるファイルのバックアップとるコードで
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の入れ方がわかりません

265:デフォルトの名無しさん
21/04/04 17:38:22.47 26lFIPnO.net
メッセージボックスは自動で閉じないしWSHもmessageboxtimeoutAもうまくできませんでした
通知の代わりに小さいフォームを0.5秒ほど表示させて閉じたいのですが、どのように記述したらいいですか?

266:デフォルトの名無しさん
21/04/04 21:11:55.53 3M5QmD23.net
>>264
-6は元ファイル名の".accdb"を取り除いてると予想。
"yy_mmdd_hh""h""nn""m"""で良いかな。
うまく行かない場合はグーグル先生に聞いてみて。

267:デフォルトの名無しさん
21/04/04 21:24:13.07 3M5QmD23.net
>>265
ちっさいフォームをダイヤログ形式で作成して、タイマーを500m秒に、タイマーイベントで
DoCmd.Close acForm, me.Name
だとどうかな。

268:デフォルトの名無しさん
21/04/04 22:50:03.97 gjYxCKFw.net
>>267
開くのはどうするんですか?

269:デフォルトの名無しさん
21/04/04 22:50:34.96 gjYxCKFw.net
ああこれで開いて閉じるのか

270:デフォルトの名無しさん
21/04/04 22:56:05.15 gjYxCKFw.net
>>266
取り除かないと拡張子が2つになってしまうからですね
そうしないと拡張子が2つついてしまうんですね

271:デフォルトの名無しさん
21/04/07 00:28:19.15 rJDYR4sC.net
レポートの詳細の一番下に線引くのってどうやるの?
フィールドや仕切り線だと線の真ん中が指定位置にくるようで、線の太さ分はみ出てしまう

272:デフォルトの名無しさん
21/04/07 05:48:31.03 Vznju2ao.net
詳細の最終行終わりにだけ線を引く方法が有るのか、知らんかった。
私はグループフッタの上に線を配置します。

273:デフォルトの名無しさん
21/04/07 12:38:41.43 RzHskyO4.net
>>271
VBAでEOFでVisible=trueにする

274:デフォルトの名無しさん
21/04/07 15:58:13.17 rJDYR4sC.net
>>273
図形の移動ってこう書くらしいんだけど
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
それはどう書くんですか?
太い線でもはみ出ないように一番下にくるんですか?
>>272
終わりにだけ、じゃなくて仕切り線を詳細の高さの最後に、はみ出ないようにおきたいということです

275:デフォルトの名無しさん
21/04/07 16:12:27.97 bHi8pMA7.net
>>274
それExcelじゃん
Accessのレポートの話じゃ無いの?

276:デフォルトの名無しさん
21/04/07 23:16:36.79 rJDYR4sC.net
>>275
ホントだ
ネット検索してコピペしたから間違えた
ACCESSでも似たようなので線書いたことあるんだけど
マウスで一番下にやってもラインの真ん中が一番下にくるみたいで、下半分がかけてしまう

277:デフォルトの名無しさん
21/04/08 23:29:31.27 JQVqmXIG.net
>>271
LINEで描けば自由自在
斜め線も描けるから試してみ
(あまり出番はないけど)

278:デフォルトの名無しさん
21/04/09 00:19:55.63 Gteazii/.net
いや韓国製はちょっと……

279:デフォルトの名無しさん
21/04/09 04:42:31.41 qNVyDJXN.net
ACCESSに将来はあるんだろうか
ライバルになるファイルメーカーもコロコロ社名変わってあやしいしもはや大規模事業者に焦点をあててるっぽい
mysqlとWeb系でつくるのがスタンダードになりつつあるの?
軽く勉強しようとしたけどVBA程度の知識じゃわけわからんかったというか何を勉強すればいいのかもよくわからん
sqlにhtml とcssも覚えなきゃならなくて
レポートとかどうやってつくるのかわからんし印刷関係はブラウザに依存するらしい
上記でGUIやレポートまでつくれるのかすらわからない

280:デフォルトの名無しさん
21/04/09 22:02:57.20 p4gVUybA.net
>>279
将来は分かりませんが代わりのツールは少ないですね
Officeは最低10年間はサポートされるのでスグには無くならないでしょう
たまにweb系の話が出るのはデスクトップアプリかブラウザアプリかの話ですよね
個人的にAccessの代わりにweb系というのは少し飛躍している様にも思えますが
どの基盤を使うかは用途や運用保守のし易さによって決めるものですのでその人次第です

281:デフォルトの名無しさん
21/04/10 12:39:36.27 UMFLPSSB.net
Access全盛期と違って、開発環境やDBが無償で提供されているし
htmlをテキスト出力するだけできれいなレポートも作れる
UIを自分でいじりながらデータ入力していくような人種にはいいんだが希少種だろう

282:デフォルトの名無しさん
21/04/10 14:43:14.97 UjDtjnXq.net
>>281
例えばどうするの?

283:デフォルトの名無しさん
21/04/11 09:47:57.70 5s7yLoxe.net
>>279
Accessはデータベースと言うより帳票ツールだよ
FileMakerはデータベースとしての機能が充実してるがFileMaker使うぐらいならMySQL、PostgreSQLで代替えが効く
どっちかと言うとFileMakerがライセンス料金の高さも有って残らないと思う

284:デフォルトの名無しさん
21/04/11 11:30:54.71 5s7yLoxe.net
FileMakerより(MySQL or PostgreSQL)+Accessで安くデータベース&クライアントシステムを作れると思う

285:デフォルトの名無しさん
21/04/11 17:50:34.38 X3jcs1bB.net
データベース部分よりもACCESSのフォームやレポートをつくる機能が貧弱なんだよね
>>284
MySQL or PostgreSQLに以降するのってどの規模になってから?
エクセルの延長線で使うレベルだとACCESSのままでいいですよね?

286:デフォルトの名無しさん
21/04/11 21:28:08.72 Zjk0ZDQj.net
ファイルメーカーはフォームやレポートの機能がリッチなの?
ファイルメーカーが良いかもよ。

287:デフォルトの名無しさん
21/04/11 21:33:55.74 X3jcs1bB.net
>>286
リッチどころじゃないよ
ACCESSがwin95
FMは10

288:デフォルトの名無しさん
21/04/11 22:19:59.40 Zjk0ZDQj.net
そりゃファイルメーカーに決まりだね

289:デフォルトの名無しさん
21/04/12 10:48:48.79 rGKItn7h.net
>>285
>>Excelの延長線上
Access mdbはある一定容量で破綻するからね
Excelで収まってるレベルでもMySQL Community EditionやPostgreSQLに移行した方が無料で使える訳だし
Excel,Access自体ライセンス必要だしライセンスフリーで使えるなら、それに越した事無い

290:デフォルトの名無しさん
21/04/12 10:51:16.61 rGKItn7h.net
FileMakerのメリットはWebサービス公開がし易いって所だよな
そういう使い方するにしてもLAMPとか使う方が安く簡単にWebサービス開始出来る

291:デフォルトの名無しさん
21/04/12 11:40:02.98 Ey8PGUUo.net
>>287
ファイルメーカーの45日無料評価版をインストールして少しいじってみました.
いまさら移行を考える程のメリットは感じられませんでしたが,確かにUIはシンプルで使いやすそうでした.

292:デフォルトの名無しさん
21/04/12 12:45:07.60 MyLZJXYd.net
>>291
>>いまさら移行を考える程のメリットは感じられませんでしたが,確かにUIはシンプルで使いやすそうでした.
それでライセンス料金は高い
あまりメリットが無い

293:デフォルトの名無しさん
21/04/12 16:33:34.27 Zar6nVa9.net
>>289
PostgreSQL使うとして一度設定してればACCESS使う感覚でレポートやクエリをつくれるんですか?

294:デフォルトの名無しさん
21/04/12 17:49:57.50 45/NLIkc.net
>>293
フロントエンドはAccess利用する
PostgreSQL固有のUIツールは無い

295:デフォルトの名無しさん
21/04/12 17:51:00.80 iBadv1fh.net
桐にしとけ

296:デフォルトの名無しさん
21/04/12 18:18:26.93 NqjzProv.net
>>294
ACCESSをフロントエンドで使う場合、という意味でした

297:デフォルトの名無しさん
21/04/12 18:32:01.84 45/NLIkc.net
>>296
PostgreSQLのテーブルにAccessからLinkはるだけ
そこでクエリー駆使しながらFormやレポート作れる
FileMakerより安く作れる

298:デフォルトの名無しさん
21/04/12 21:43:20.13 5xDeJx97.net
>>295
桐の価格を調べてきました
40台で使用するために1,115,400でした
機能がどうとか以前のお話しでした

299:デフォルトの名無しさん
21/04/13 07:41:55.91 b5G9r+g0.net
>>294
Accessの外部DBなら親和性の高いSQL Serverが多数だとは思います
Expressなら無料でライセンスも商用OKです
機能面もAccessで扱うDBサイズならお釣りが来ます
あえてPostgreSQLを推す理由を教えて欲しいです
無料以外のメリットはありますか?

300:デフォルトの名無しさん
21/04/13 11:23:44.71 3B0ES/zA.net
>>299
URLリンク(rainbow-engine.com)
ケースバイケースだがSQL Server Expressでも良いかも知れませんが
Linuxサーバーとかで稼働させる技術蓄積が少ない
PostgreSQL、MySQLはLinuxサーバーでの技術蓄積が多い
まさかWindowsサーバーでSQL Server Express動かすと思って無いか?
無償で構築したいからね

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

302:デフォルトの名無しさん
21/04/13 13:32:35.21 3B0ES/zA.net
>>Access案件でLinuxサーバー導入はかなりのレアケースだと思います
Linuxに明るい個人ならそれでも良いですが
>>一般的な企業では運用リスクと保守費用の面から現実的ではないのです
Access案件でその様な提案をしたらほぼ蹴られてしまいます
.NET COREとか提案したら蹴られるのか?
.NET CORE案件も相当数出てるよ
LinuxサーバーでDB,APサーバー運用するのは今や常套手段でしょ
>>技術蓄積についてもAccess+PostgreSQLよりAccess+SQL Serverの方が遥かに多いです
Windows製品ゆえ多いってだけだと思うよ
>>そもそもこのスレに相談に来ている方はLinuxサーバーを前提に話していないと思いますよ
Accessフロントエンドにした場合、サーバー側がWindowsサーバーしか前提としか無い、てのは狭量以外の何物でも無いと思うよ

303:デフォルトの名無しさん
21/04/13 13:46:56.78 LjzwNZrT.net
Access案件でのサーバーなんて、(是非は別として)テキトーなPCの共有フォルダでのaccdb(mdb)の共有で賄ってるだけなんて珍しくも無かろう

304:デフォルトの名無しさん
21/04/13 13:47:53.05 3B0ES/zA.net
中小企業にWindowsサーバー提案するってコストかかって仕方ない
CALの価格を知らないのかな?
中小企業ほどLinux導入し易いのに

305:デフォルトの名無しさん
21/04/13 13:48:51.64 3B0ES/zA.net
>>303
適当なサーバーだから無償のLinuxで十分

306:デフォルトの名無しさん
21/04/13 14:52:00.66 b5G9r+g0.net
>>302
.NET COREを挙げられてますが、Access案件での話です
Linuxサーバー自体は否定しません
実際Access外案件では昔より増えました
単純にAccessの外部DBにPostgreSQLを推す無料以外のメリットが知りたかっただけです
Linuxサーバーという予想外でしたが
長い間Access開発にも携わっており現実はほぼWindowsなんです
確かにAccessの機能自体は様々なデータソースが扱えますから
その意味では狭量と言われてしまっても仕方ありませんね

307:デフォルトの名無しさん
21/04/13 14:55:38.30 3B0ES/zA.net
>>306
CAL払える企業なら問題は何も無いよ
現実はCALで苦しんでる中小企業が多い
そこを見越して提案出来るかだと思う

308:デフォルトの名無しさん
21/04/13 20:50:49.88 b7IZM+9u.net
サーバーも含めて無料で構築したいだけなのにな
Windowsサーバー使ってCAL払い続けるなんて皆金持ってるんだなw


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch