X



Access総合相談所 28

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@そうだ選挙にいこう
垢版 |
2018/08/30(木) 23:16:08.14
ACCESSに関する質問はこちらへ

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
  ・何がしたいのか
  ・どんな処理を試したか
  ・動作状況など駄目な理由
  テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません。
  図解があれば尚良し。
  聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
  大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。

▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境  】 Windows**, Access**
【 VBAが使えるか 】 はい・いいえ
【 VBAでの回答  】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード

前スレ
Access総合相談所 27
http://mevius.5ch.net/test/read.cgi/bsoft/1424828244/
0923名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 07:30:28.84
>>922
>属性を1カラム
となると営業部毎に選択クエリ作って
それぞれの属性のフィールドを追加して
(フィールド名は“属性”とかで統一)
それらをSQL文にして
Unionクエリにまとめて
営業部と属性でグループ化して集計
0924名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 08:07:14.62
>>922
統計情報で軸が違うのを一つにまとめるのは
やや心地悪い。レポートにするなら3つのサブフォームを張り付けるか
915の技を応用すれば良いのではないかと。
あるいはデータベースの基本ルールは1列に格納するものは同じ属性の情報、であるので
accessのテーブルからexcelにリンクしてピボットテーブルで軸を変えればいいのではないかと。
また、人属性情報は改変性低いのでマスターテーブル化してリレーションシップ作れるよね。
それはもうやってる?
0925名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 08:24:56.92
>>921
属性:Switch([営業部]=1,iif([性別]=0,”男”,”女”),[営業部]=2,iif([年齢]<30,”-29”,”30-“),[営業部]=3,[カテゴリ])
でもええか
ただ、もっと複数になると営業部毎に属性設定してunionクエリでまとめる方が楽かと思われ
0926名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 12:05:41.03
>>924
気持ち悪いといえば、年齢
年齢はテーブルに記録しない
生年月日を記録して演算で出す
まあ、そこら辺は説明で省略してるのだろうけどね
0927名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 12:53:23.51
>>922
>営業部ごとの特性をみたい
のなら様々な属性でグループ化して集計
更にグラフ化すべきかと

あと年齢は生年月日と販売日のDateDiffで求めてるよね?
0928名無しさん@そうだ選挙にいこう
垢版 |
2019/09/14(土) 16:26:42.01
【 システム環境  】 Windows10, Access(office365)
【 VBAが使えるか 】 はい
【 VBAでの回答  】 否
【 検索キーワード 】 access 一部だけ分岐・・・など

顧客のユニークIDの数を調べたいと思っています
グループ化してすぐにカウント、のような事は出来ますか?
クエリテーブルを二重にすれば出来ますが、なんか間違ってる気がします
0929名無しさん@そうだ選挙にいこう
垢版 |
2019/09/14(土) 16:31:52.60
すいません、返答を送信していませんでした

>>923
了解です!uniion使っていきます

>>924
試してみましたが、サブフォームだと高さがに困ってしまいました
vbaを使えれば可変の高さ調整ができそうな感じはしているのですが、なかなかそっちまで勉強している時間が無いです・・・

>>925
恐らく複雑になると思います。昨今の流れで、性別とか増えそうで戦々恐々としています

>>926>>927
入っているのは生年月日です
販売した時の年齢ではなく、現時点での年齢になりますが、そこは問題ないとします。
>>927さんの指摘には僕も上司も気づいていませんが、気づかないフリをします。
0930名無しさん@そうだ選挙にいこう
垢版 |
2019/09/14(土) 16:44:51.09
>>928
少なくとも昔は、AccessのSQL規格が古くて、他のデータベースで
SELECT COUNT(DISTINCT customer_id) FROM order_table
と書けるものも、
SELECT COUNT(customer_id) FROM (SELECT DISTINCT custoemr_id FROM order_table)
とサブクエリみたいにして呼ぶ必要があった。
いまも変わってないなら、二重にするのは変じゃないです。現状は未確認ですが。
0932名無しさん@そうだ選挙にいこう
垢版 |
2019/09/14(土) 19:09:28.19
【 システム環境  】 Windows10, Access(office365)
【 VBAが使えるか 】 はい
【 VBAでの回答  】 否
【 検索キーワード 】 access プロンプト 初期値 など

プロンプトの初期値は設定できないでしょうか

Between [開始日を入力してください:] And [終了日を入力してください:]
としているのですが、
予め前月を入れたいのです
具体的には
#2019/8/1#

#2019/8/31#
が最初から入るようにしたいのですが、vbaじゃないと無理ですか?
他にも楽に入力できそうな方法があれば教えて下さい
0933名無しさん@そうだ選挙にいこう
垢版 |
2019/09/14(土) 20:15:21.47
>>932
それはプロンプトじゃなくて既定値では?

既定値なら
テーブルのフィールドやフォームのテキストボックス等のコントロールで既定値を設定することができるので
そこに入れる。

なお、先月1日は
=DateSerial(year(Date),Month(Date)-1,1)
Dateとはシステムの日付を取得する関数で()付けても付けなくても同じ
DateAdd関数使わなくてもきちんと年またぎ出来るよ。

また先月末日は
=DateSerial(Year(Date), Month(Date), 1)-1
今月1日の前日ということ
0936名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 00:02:15.91
>>934
クエリでも>>933の式を入れるだけやろ
抽出条件に
>=DateSerial(year(Date),Month(Date)-1,1) AND <=DateSerial(Year(Date), Month(Date), 1)-1
とな

それにしても、既定値のことでないとすると、プロンプトとは何だろなと
通常、プロンプトってCUIで入力可の状態を示すサインやろ
それ以外に解釈できんのだが?
DBMS用語ではないし
0937名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 00:35:58.12
>>934
抽出条件は
Between DateSerial(year(Date),Month(Date)-1,1) And DateSerial(Year(Date), Month(Date), 1)-1
でも可
また
Like Format(DateAdd("m", -1, Date),"yyyy/mm") & "*"
でも可
0938名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 09:13:02.77
>>936
>>通常、プロンプトってCUIで入力可の状態を示すサインやろ

CUI限定じゃなくて、GUIでウィンドウを開いて入力を促す文字もプロンプトでいいと思う
VBAのInputBox関数の引数名もPromptだし
ただ、この質問での話だと既定値の間違いだと思う
0939名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 12:34:52.11
DBサーバー立てたくない時、
mdbまたはsqliteかなと思うけど、
みなさんならどうしますか
さらにいえばVBA古臭いし冗長なのでC#で+mdbが最適解なのかなと
0942名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 15:02:35.32
>>941
ランタイム入れればインストールしてなくても
Accde動かせるけどね
0944名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 19:21:43.16
>>939
sqliteという選択肢を持ってくるのは、単にAndroidアプリの開発手法に似せたいから?
それであれば、環境設定も含めたインストールパッケージを作成する必要があるから
無理にAccessで作る必要はないとおもうけど。
0945名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 20:40:46.98
>>944
VBAは要らない、Pythonで組むということではないかと
VBA抜いてもAccessはクエリの組み易さ,フォームやレポートの作り易さの利点があるから
それも活かしたいんだろうな
でもいっそDelphi上で全部設計した方が見通し良くなると思われ
0946名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 09:11:31.13
【 システム環境  】 Windows10, Access(office365)
【 VBAが使えるか 】 はい
【 VBAでの回答  】 否
【 検索キーワード 】 access フォーム テキスト 取得 クエリ など

フォームに配置したテキストボックスの情報をクエリに含めたいのですが、どのように記述すれば良いでしょうか?

抽出条件に
[フォーム1].[テキスト4]

[フォーム1]![テキスト4]
としてみましたが、駄目でした
※パラメータの入力 [フォーム1]![テキスト4] と出ます

https://imgur.com/a/4KiWTxY
0949名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 09:36:50.33
>>933
さんの
=DateSerial(year(Date),Month(Date)-1,1)


規定値に入れると
DateSerial(Year([Date]),Month([Date])-1,1)

抽出条件に入れると
DateSerial(Year("Date"),Month("Date")-1,1)

と変換されてしまい、うまく動きませんでした
date()にすると解決しました

ご報告まで
0950名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 12:21:29.79
【 システム環境  】 Windows10, Access(office365)
【 VBAが使えるか 】 はい
【 VBAでの回答  】 否
【 検索キーワード 】 access 式が正しく入力されていないか、複雑すぎるために評価できません エラー

フォームを作っていてエラーが発生し、解決しました

サブフォームを作成し、クエリを表示させ、更新を行うとエラーになりました
https://i.imgur.com/Njzkz8f.png

その下にも別のクエリがあり、こちらはエラーになりません
https://i.imgur.com/9nxg60w.png

なんとなく位置を変えた所、エラーにならなくなりました
https://i.imgur.com/6tDDSb3.png

また、再度元の位置に戻してもエラーにならなくなりました
原因は何だったのでしょうか?
0951名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 14:59:19.57
>>949
参照設定に依るかもね
Date()は関数、Dateはシステム変数だったかな
0953名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 16:19:28.16
>>950
そのエラーの原因は様々ある
AccessのJITコンパイラが解釈に失敗すると出る
大きな原因のひとつはリレーションシップをしていないこと
コントロールの位置をいじって直ったとしても
再発の可能性は高い
JITコンパイラが何処まで解釈出来るのかははっきりとしないが
経験上、メッセージにある通り
一つのクエリでアレもコレもとやらないで
クエリを元にクエリを作るなどしたり一つのクエリでの処理を単純化したり
テーブルや選択クエリ同士の関係をリレーションシップできちんと定義したりすれば発生は抑えられるようだ
なお、親の非連結単票フォームから子の帳票フォームへと値を受け渡してるように見えるけど
どんな設定なのか?

サブフォームコントロールで受け渡したり
親フォームのコントロールの値で子フォームのレコードソースをフィルターして絞り込んだり
親フォームのコントロールをクエリの選択条件にしたり
いろいろと方法がある
0955名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 17:15:06.47
>>953
DBから吐き出されたデータを元に、収支の集計を行っています

・元データは40000行、50カラムほどあります(小売の売買データです。様々なテーブルをjoinした後の一覧データが吐き出されています)
・もうひとつ、販売の種類を表すテーブルがあります。2フィールドで10行、「通常販売」「ネット販売」「社内販売」など。最後にjoinします
※リレーションで繋ぐフィールドは両方「数値型」になっていました

・クエリの流れ。一行が1クエリです
フォームの日付を元にフィルタ
キャンセルデータ(キャンセルフラグフィールドが1だと除外)、お試し商品を除外(あるフィールドが「2」だと除外)、
営業部でフィルタ(営業部ごとに3種類、>>919のように分類・集計します)
顧客IDでグループ化
顧客IDをカウント
販売の種類を表すテーブルとリレーションで繋いでjoinします

・もうひとつ、合計確認用に全体の合計を出すクエリも作成し、Excelに貼り付けています

何が原因でしょうか。再発は自分ならまだ良いのですが、他の方が使っている時に発症してしまうのは、困ります
また、主キーを設定していないのですが、これも原因になるのでしょうか
0956名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 20:53:51.07
読めないくらいややこしいw
フィルターって、なんとなく重いから個人的には使わないこと多いかな。
パラメーター仕込んでおいて、vbaのquerydefのパラメーター代入してrequeryしたりする。
あとinner join inner joinを何個も繋げてると自分でもワケわからなくなるのでクエリー何個かにわけて
段階を踏む作り方する。
0958名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 00:10:21.63
>>955
>>957
主キーは設定すべきでしょう。
そうすれば1対多の関係が明確になります。

>もうひとつ、販売の種類を表すテーブルがあります。2フィールドで10行
>※リレーションで繋ぐフィールドは両方「数値型」になっていました
販売の種類を表すテーブルのそのフィールドを主キーに設定

>>956
段階を踏んだ方が、作るのも、機能の追加による修正も楽なんですよね。
大本のクエリから派生とかできますからね。
0959名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 00:38:53.44
>>955
エラーの原因はおそらく主キーを設定していなかったことでしょう。
それ以外は段階を踏んでいるから問題無いです。
0960名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 01:07:03.27
アクセスで高度なものを作っても単体アプリケーション化できないのが一番駄目なところだね
ランタイムもイマイチだし
アクセスからだとデータベースを直接書き換えられるリスクがあるしかっこ悪い
0961名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 06:33:29.51
>アクセスからだとデータベースを直接書き換えられるリスクがあるしかっこ悪い
それはDBをいじれるどんなアプリでも同じでは?
0962名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 06:52:53.56
>>960
それ、アクセス制御での完全性の問題ではないか?
どのアプリがという問題ではないのでは?

ランタイムがイマイチという意味も分からない。
どうイマイチなんだろう?

俺の場合、単体アプリを作るためにAccess使ってる訳じゃなくて
日常の事務作業を楽にするために使ってるだけ
無論だけど、俺には権限が無いから、会社の基幹システムのDBを直接干渉したりは出来ないが、
そこから取り出したデータを元に報告書を作ったりはしている。
0965名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 12:03:58.20
>>963
余計な事とは?
それが仕事なんだが?
何が言いたいのか?
0966名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 12:12:16.83
>>964
それシステム管理として失敗してるやん
そんな愚痴をこのスレで言われてもな
0970名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 13:02:11.55
>>967
テーブルを完全に隠せよ
俺が5年くらい前に書いてやった手法を使え
0971名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 13:06:29.07
知らんけど、そこまで嫌なら他DBへお引越しすればいいだけで
ここでぐだぐだ文句言って改善するものでも無し

早い・安い・うまい がうたい文句の外食産業も有りゃ、
高級食材を四ツ星シェフがお料理して、最高級グレードのお持て成しをしまっせも有る
ミソクソ一緒に比較したって何の意味も無い 時間の無駄

データベースファイル自体にパスワード付けられるんだし、セキュリティだの改竄だの
気が気で無いなら、それなりのセキュリティに注力するだけのこと
レコードの必要な部分にだけアクセスできるようにするとか、無闇に接続しようとする輩が
居るような環境なら、そこをブロックできるように改善するだけのこと Access の問題では無い  個人の感想やけど
0972名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 13:34:53.10
まあまあ二人ともそんなに熱くならないで。
accessはreadonly権限を与えるのが逆にマイナーな技になってしまうのは事実だし。
一方で、「私だけが欲しい集計軸」のためにシステム管理の手を煩わせないことも大切だとも思うし。
私は、一般的なスキルを信用してる社内ユーザーには、sqlserverのビューからexcelにreadonlyの接続詞つけて
一覧貼っておき、「更新は右クリックで「更新」押せ、あとは好きに集計しろ」といったことをやってるけど。
0975名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 02:00:25.75
>>974
ははは、ニュース見てこのスレに来てしまった
これってマーフィーの法則でトラブルの可能性のあるものは必ずトラブルを起こす、っていうやつ。
すべてのケースに対応できるようにしておかないとな。
経理のスタッフとかめちゃくちゃ機嫌悪くなるというかまともに話してもらえなくなる
0977名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 05:09:42.29
周知不足でネットで騒がれちゃって後手に回ってしまったやらかし
内税積み上げ方式のまま軽減税率に対応することができたのに外税に切り替えちゃったやらかし

7payとか時短営業の案件レベルではないけど、だからこそこれくらいきっちり詰めとくべきでは
0979名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 07:12:16.64
問題の次元としてはどうでもいいっちゃどうでもいいけどね
違法とかではないし


でも個人的にはせっかく10%という切りのいい税率のくせに1円単位の端数が出てしまうのは欠陥だと思ってる
スーパーみたいにどうあがいても1円単位の端数が出るような店なら分かるけど
0980名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 12:56:02.97
>>979
端数切捨てで税務署もええと言ってるんだから
それでええねん
世文はまた顧客に嫌われることをやったな
0981名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 12:58:42.44
>>979
こういうのってさ
いくつかの計算方法をやって
ゴールシークで最適なの求めれば
済むんけどね
そういう発想すらしなうのかよと
どんだけ無能なのか
0982名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 16:37:47.44
なぜ総合計を再計算するんだ。内税計算するなら総合計は単純合計で、そこから「うち消費税」を整えて表示、差し引きを本体価格にすれば良いものを。
0983名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 17:33:29.50
>>982
世文が無能だから
0984名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 17:37:36.05
違法でなければ良いという浅はかな考えで
計算方法を変えて
1円でも値上がりしたら、客離れを起こすという事態を想定出来ない無能経営者
0987名無しさん@そうだ選挙にいこう
垢版 |
2019/09/21(土) 11:41:16.89
>>986
みずほ
システム統合に失敗してるのが
経営陣の方針がコロコロ変わって
仕様が確定できんためだとか
結局 無能やったんやな

なんでそんな屑を引き抜いたんか
みずほから押し付けられたんちゃう?
0989名無しさん@そうだ選挙にいこう
垢版 |
2019/09/21(土) 15:04:46.17
掻き混ぜられようと、クズが上に居ようと、ムダな会議で時間が取られようともだ
実務は止まらない 待ってくれない 粛々と実績を積み上げるしか無い  個人の感想やけど
0991名無しさん@そうだ選挙にいこう
垢版 |
2019/09/21(土) 21:08:25.03
みずほはシステム統合自体、それまでPL/Iで動いてた銀行有るからCOBOLで統一するしか無かった
勘定系は未だにメインフレームだよ
OpenCOBOL導入すら出来て無い
0994名無しさん@そうだ選挙にいこう
垢版 |
2019/09/23(月) 14:04:49.21
なにをどうしたいのかを書かないと >>952 お願い ったって、何が何だか
フォーム内の情報を、「どこ」から読みたいんだか
そのフォーム自体はどういう構造なんだか コチラには何にも伝わらないよ

データベースの中身を他のアプリから読みたい ってんなら、フォームなんか要らないし
フォームのソースがクエリとかで整えられたデータだ ってんなら、デザイン状態じゃ読めないし
おまえの挙動が良く判らんわ
0997名無しさん@そうだ選挙にいこう
垢版 |
2019/09/23(月) 18:00:08.12
居る
スレタイに、"桐にしとけ" って入れてね
0998名無しさん@そうだ選挙にいこう
垢版 |
2019/09/23(月) 18:04:51.20
>>992
そう
フォームビューかレイアウトビューで開いておけばバックグラウンドで起動する
閉じた状態では既定値だろうがなんだろうが取得できない
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 388日 22時間 53分 10秒
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況