2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Access総合相談所 29

1 :名無しさん@そうだ選挙にいこう:2019/09/23(月) 20:02:25.84 .net
ACCESSに関する質問はこちらへ
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ 質問内容は具体的に書いてください。
  業務上の守秘義務も大事ですが、貴方の所属組織を特定できるほど、特異な業務・システムは滅多にありません。
 作りたいものの内容を隠しすぎないようにし、列名、データ値を適当に変更して例示するなどしましょう。
★ 事前にGoogle等で調べられる範囲は調べてください。
★ 完全初心者はまず、新規作成テンプレから「NorthWind」を開いて、一通り触ってみてください。ACCESSの概念を理解する
もっとも簡単な方法です。
★ お金の管理でシステム設計ミスが会社経営に重大な支障が予見される場合は、パッケージソフトに誘導する場合があります。
格安なソフトもあるので設計に取りかかってから悩む前に、市場調査も行なってください。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。
▼━初心者用質問テンプレ ━━━━━━━━━━━━━━━━━
【Windows】 7, 8,10 【Access】 365,2013,2016,2019
【作りたいものの業務分野】
販売管理,買掛管理,営業予算管理,営業実績管理,生産管理,
財務管理,労務管理,学術研究統計,文字格納を主体としたDB,その他()
【あなたのスキル】
LV1:完全初心者,
LV2:ACCESSの基本要素(テーブルやクエリーなど)の役割を知っている
LV3:VBAが打てる
【どのオブジェクトに関する質問か】
テーブル,クエリー,フォーム,レポート,サブフォーム(サブレポート),リレーション,VBA
【やりたいこと】
(質問によっては各テーブル名と列名を例示)
(クエリーの場合は、左上の「表示」を押し”SQLビュー”に変更して表示される”SQL文”を貼り付けると回答者がわかりやすい)
(得たい出力結果や挙動)
【エラーメッセージに関する質問】
・エラーメッセージの内容 ・windowsは32bit版か64bit版か
前スレ
Access総合相談所 28
https://mevius.5ch.net/test/read.cgi/bsoft/1535638568/

552 :名無しさん@そうだ選挙にいこう:2020/08/28(金) 21:56:49.23 .net
エプソンのインクジェットで印刷したやつ。
ラベル貼り忘れたけどいちばん上が黒の実線 細線ね。
点線はaccessだと、どうやらそのまま点線になるのでダメだな。
excelの一番細かい破線を会社の複合機で印刷すると細い直線になるのでよく使うんだけど。

黒から一段二段グレーに傾けると
存在感のない線になる。
手間かけないならこれが一番手っ取り早いんじゃない?
https://i.imgur.com/pAqooeP.jpg

553 :名無しさん@そうだ選挙にいこう:2020/08/28(金) 23:54:28 .net
>>552
手持ちのブラザーのモロクロレーザープリンタでは細線はほぼ印刷されませんねえ(600dpiで印刷)

>>551
一般的に詳細の高さってフィールドよりは少し高くするものですかね?

554 :名無しさん@そうだ選挙にいこう:2020/08/28(金) 23:55:30 .net
>>551
どこにテキストボックスがあるか判断するために透明ではなくデフォルトで試していました

555 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 08:00:25 .net
Accessレポートの罫線はVBAで引くんじゃないの?
Lineメソッドだっけ

556 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 13:01:05.72 .net
>>551 のケースで、極端な例で言うならテキストボックスの高さを0.8cmにして
直線の位置は上から0.7cmとかなら多分ズレは見なくなると思う
システムの特性でインチ基準なので、端数で設定しないと思い通りの位置に成らない
ことはままある
印刷済み用紙に位置合わせする時などはテキストボックスの内部余白を調整して
合わせるとかまである

557 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 13:11:50.91 .net
>>556
MS的にはレコードごとに線を引く、とかいう自体がイレギュラーって認識なんだろうか
調べてたら質問掲示板に
VBAで

https://i.imgur.com/0aLCOcX.png
(改行多すぎてコード貼れなかった)
としてレコードごとに引くというのがあったが
それでもずれるとかかいてあった

・ヘッターとの仕切り線の左端の下部分がかけてしまう
・詳細の奇数レコードと偶数レコードで線の幅が変わってしまう(微妙に詳細の一番下にラインがない)
・レコードの仕切り線の太さを50にしてみたら顕著に太さが違う(太くなっている線は支点の左上がかけている)
画像をアップしました
https://imgur.com/vKXKqky

らしい

558 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 13:13:30.14 .net
>>556
詳細の高さって配置したフィールドぴったりじゃなくて
無駄な余白がでても上下1mmほど広めにしたほうがいいの?

559 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 13:51:37.46 .net
いや、それはお好みでとしか レコードの内容次第もあるだろうし
文字だらけでごちゃごちゃしそうなら余白は大目にとかもあるし
大体が、アメリカ人の書類っていちいちレコードごとに横罫線引かんだろ
テンプレートとか参考にしてもそんな例はほとんど無いんじゃね?
無駄なところに余計な労力は費やさないようにしましょう
イギリス人がどうだかは知らん

因みにテキストボックス高さ0.42cmフォントサイズ10.5でもなんとか読めるんで
それ基準でどこまで高く・大きくするか見繕ってる 要件のうちでその書類に
要するボリューム等々もあるんで、これがベストってのは中々決めらんない

560 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 13:59:48.11 .net
>>559
俺はフォントサイズ8でやるときもある
ドコモとかヨドバシとかの明細もそんなもんだから

そうしないと用紙に収まらなくなるってほど多いのあるからな

561 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 14:00:11.79 .net
>>559
海外のってないよね

562 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 14:08:13.93 .net
>>559
わかる。作文用紙の影響からか
日本人、升目大好きだよね。
稟議書がexcelとか、どうかしてる。
古くは障子を使って計算してた史実もあったそうで。
accessのレポートのレイアウトは基本的にはアバウトに考えたほうがいい。
いちおう、連帳伝票の印字を割り付ける程度の精度はあるけど。

563 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 14:46:51.94 .net
欧米はタイプライター文化だから文字のラインが揃ってるのがデフォで、罫線って何?

564 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 21:07:03.47 .net
興味を持ったんで軽くググってみた キー・パーソンは「アラン・シャンド」
幕末にイギリスから横浜の英国銀行の支店長代理として来日している
高橋是清とか渋沢栄一とかに師事したのか影響を与えた のか なんかそんな立場
江戸期の大福帳から帳簿に変化させていった最大功労者 と思えた

で、英国は当時すでに赤青黒罫線の見慣れた帳簿形式を確立してた
と成ると派生したアメリカでも当初はそれを踏襲してたはず だし、資料も残ってる
それをアメリカ人気質でどんどん簡略化してっての現在なんだろな
イギリスの現状はどうなんだか気には成る 似たような苦労してるのか?果たして  スレチでごめんなさい

565 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 21:18:43.58 .net
>>564
おもしろいな

566 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 22:25:15.84 .net
Accessにファイル名のテーブルがあって、フォームか何かを使ってその中から手動で選んで、ボタンを押すとそのファイルがダブルクリックされるという動作をさせることはできますか?

567 :名無しさん@そうだ選挙にいこう:2020/08/29(土) 23:17:43.52 .net
>>566
なんでダブルクリックするの?
一応、私が作るやつはだいたいファイルパスをハイパーリンク記述で格納してるけど。

568 :名無しさん@そうだ選挙にいこう:2020/08/30(日) 02:42:15.13 .net
俺がいつも気になるのは
https://i.imgur.com/GMZ1754.jpg
こういう下に小計が飛び出してるやつ
上に請求書書いてるならそこにもろもろ書けよ、と思ってしまう
こうしろ、と
https://i.imgur.com/0qS9NtP.png

レコードの下に小計なんかが記載される携帯明細なんか場合によってはこの小計のために次の用紙になったりしてるし

569 :名無しさん@そうだ選挙にいこう:2020/08/30(日) 14:19:21.47 .net
電卓叩いて検算してた頃の名残り ってのもある
相手を信用しないという訳では無いけれど、仕事ならそれはして当たり前の作業
コンピュータ出力だからと安直に鵜呑みには出来ないのは
昨今の軽減税率導入時にもアチコチで散見された 小数点の丸目が間違ってたり

もう一つは、それこそその例に書いた通り、次ページがあるのに気付かずに
一枚目だけを封入して送付してしまったり、生憎丁度プリンタの用紙切れだったのに
気付かない方まま提出してしまったりのケアレスミス予防とか  まあ、いずれにしろどっちでもいい

570 :名無しさん@そうだ選挙にいこう:2020/08/30(日) 17:51:28.26 .net
>>568
accessだとどっちにしろフッターに合計算埋めるから飛び出してようが、
明細と同じ枠を作ろうが、どっちでもいいんだよ。
それより大事なのはヘッダー欄で、ヘッダー欄専用のテーブルは必要になる。
締め業務の設計はやたら面倒くさいのでaccessで納品書、請求書は作るな、というのが私の基本スタンス。
売掛がない主に個人向け販売や、買掛の管理用ならいいけど。

571 :名無しさん@そうだ選挙にいこう:2020/08/30(日) 18:46:42.08 .net
>>570
専用のテーブルって?

ACCESSはオススメできないなら何がオススメなんですか?
締ってそんなに大変だったっけ?
売上入力するときに計算してどの請求書にいれるかの日付を格納させてるからそれで抽出してたが

572 :名無しさん@そうだ選挙にいこう:2020/08/30(日) 19:32:23.03 .net
>>567
ハイパーリンクでもいいんですが、全データにフルパスのハイパーリンクをテーブルに格納するのは手間なので、
ボタンを押したときにファイル名からパスを生成して叩きたいんです
元テーブルにハイパーリンクフィールドがないと無理ですかね?
クエリの段階で生成してもいいんですが

573 :名無しさん@そうだ選挙にいこう:2020/08/30(日) 20:24:37.80 .net
>>572
そこまで詳しいなら特に言うべきことはないです。結局何がしたいのかさっぱりわからんし。
フルパスを入れるのが面倒?検索で容易にヒットするファイルダイアログをコールしてフルパスを登録する方法も嫌?
全てが面倒なら実はデータベースに登録する必要すらない要件なのでは?
その場合、ブラウザコントロール使って「files」から始まる疑似urlでファイルビューア的に使うこともできるけど。

574 :名無しさん@そうだ選挙にいこう:2020/08/31(月) 01:11:38.79 .net
>>571 自作することに、それなりにリスクがあると言いたいだけ。
売掛金を請求する、しかも少額ではない金額、というのは大きな責任が伴うので。
ベンダーのERPの構造を真似して作ったものは
締めの指示を入れる時に、得意先ごとの締日から対象期間を抽出、
明細を請求明細にコピーするか、売り上げ明細に請求番号埋めて、
本体価格の積算を「請求のヘッダー用テーブル」に格納、
前月の売掛金のサイトが1か月以内、全額支払いとは限らないので前月残高を
計算、今月の最終請求額を確定。

さらに軽減税率対象品を扱ってる関係で、最近は8%と10%をそれぞれ集計する、
という手間も増えた。
請求書の保全性を保証するという意味では、売り上げ明細をただSUMしたフィールド
を設置して、「請求書でございます」は
あんましお勧めしないかな。

個人零細で、1見積もり、1受注、1請求、すぐに支払い、みたいな感じなら
簡易的な設計でもいいと思うけど。

575 :名無しさん@そうだ選挙にいこう:2020/09/01(火) 14:07:24 .net
>>572
そういやおまけで付いてくるNorthWindデータベースにそんなような機能付いてたな
と思って2019でサンプルDLしてみたら全部英語だった
だけどやっぱしディテールフォーム上からそのレコードに添付したい画像を選択できた
しかも今のは複数画像をどんどん追加する事さえできる(頁めくりボタンみたいのも出る)

どうやってんだろ? とチラと見てみたが・・ よく分らん orz マクロはあんまし
関係無さそうだった さりとてVBAっぽくも無いような、なんだこれ?

ここが解析できれば画像だけじゃ無く拡張子変えて他のファイル形式も可能な気がする
自分もハイパーリンクでいいじゃん派だったけど、この機能使ってスマートにしたい
以前のもこれ使って改良できる気がしたから、様子見て分析してみる

576 :名無しさん@そうだ選挙にいこう:2020/09/01(火) 15:11:37.85 .net
くだらん テーブルのフィールドのデータ型を添付ファイルにすれば出てくるダイアログだった
解析だの分析だのアホかと
どんなファイルでも添付できるが、画像以外を添付すると中身は開かないと判らん
ダイアログ内にはファイル名出るからそれで判断ってことか

577 :名無しさん@そうだ選挙にいこう:2020/09/01(火) 19:45:07.04 .net
>>576
私が匙投げ掛けたのをせっかく別の角度で言ってくれてるのを頭ごなしに否定するかね。
あんたブレインストーミングに向いてないね。
mariaDBなどの汎用でいうところのblobみたいなもんだから、アプローチとしては間違ってないと思うけど。あとはデータ壊れがちaccessがどこまで堪えられるかってだけで。
おーい、質問者でてこーい。
何がしたいんだね。

578 :名無しさん@そうだ選挙にいこう:2020/09/01(火) 20:47:56.71 .net
ちがう、ちがうw 昼間の二件は両方じぶんが書いた 気負い込んだけど腰砕けだったって話
なんせ、最新の添付ファイル形式なんか使ったこと無かったから、ちょっと惑乱したと

ハイパーリンク、OLE、添付ファイル形式どれでもいいんだろうけど
Accessの仕様上 OLE > 添付ファイル形式 > ハイパーリンク で容量を食うらしい
どんなファイルをリンクさせたいのか詳細は不明だけど、建設業で現場写真や図面の整理が目的
とかだとしたら、昨今の画像ファイルは巨大だからすぐさま仕様の上限に迫るだろうから上の左二つは
使わない方がいいだろうな
大した容量が無いファイルだらけなら添付ファイル形式がいちばん楽な気がした

どうしてもリンクをテキストで保存したい理由があるとかなら、VBAで良けりゃコードぐらい出すのはやぶさかでない

余談だが、そのフォームの左側でドロップダウンリストボックス内にチェックボックス付きでリストを見せてた
へぇ、今のはこんなことも出来るんだと感心した ?付けた分だけリストに併記できるだなんて
これも応用でファイル添付に役立てることは出来そうだな とは思った

579 :名無しさん@そうだ選挙にいこう:2020/09/01(火) 21:06:05.80 .net
>>578
それは失礼しました。
1個1Mくらいまでのファイル張り付けるなら有りかなと思う。
先日、画像用にoleオブジェクト欄作ってあったのが、いつのまにかデータ壊れてたので
添付ファイル形式に変えた。
ドラッグ&ドロップが使えず、登録の仕方にややクセがあるのが難点だけど。
accessDBは時々わけわからん壊れ方するから、dbサーバーを立てる、添付ファイルの元ファイルは完全に保全しておく、大人しくハイパーリンクを使う
のいずれかでしょうね。

580 :名無しさん@そうだ選挙にいこう:2020/09/05(土) 23:14:28.71 .net
フォームってVBエディタで書き出せるのはVBAのコードだけで、VB6のフォームみたいにソースコードで書き出せないんですね
エクスポートして、テキスト編集でコード直して、インポートしたかったんですけどね

581 :名無しさん@そうだ選挙にいこう:2020/09/05(土) 23:32:08.38 .net
印刷用のレポートって細い作り込みできないよね?
フィールドの文字を正確に中央揃えとか
高さのあるフィールドの横にそれの中央に合わせてフィールドを配置するとか

582 :名無しさん@そうだ選挙にいこう:2020/09/06(日) 11:20:23.85 .net
使うフォントやサイズにも依るだろうけど、テキストボックス内の上下左右の余白を駆使するとか
試しに□(四角)で印刷してみてその余白値を微調整だろうな
VBAでやりたかったら、hatena chips さんの AutoFontSize とかをお借りするとか Formでも使える
とは言え、等幅やプロポーショナルとかメイリオ・遊ゴシックとかが影響するから微妙な時も有り得る

583 :名無しさん@そうだ選挙にいこう:2020/09/06(日) 19:32:55.74 .net
せめて中央揃えはほしいよな
というか1とかにしても1.03とかにされるのも困る
作品じゃないんだから読めればいいだろ、というスタンスなんだろうが

584 :名無しさん@そうだ選挙にいこう:2020/09/06(日) 20:12:39.90 .net
何度も書くけど、インチ(inch)基準 ヤードポンド法

585 :名無しさん@そうだ選挙にいこう:2020/09/06(日) 20:26:13.15 .net
>>584
どういうこと?
どうやれば入れた通りの数値になる?

586 :名無しさん@そうだ選挙にいこう:2020/09/06(日) 21:03:51.13 .net
MS日本のAccess部隊が追いやられてるので、そこまで手が回らない
一部キチンと入るプロパティもあるだろうけど、殆どはcmで入れてもinch換算されてしまう
誤差が出ても諦める そういうもんだと軽く流すしかない
0.97 と 1.00 と 1.03 をそれぞれ見極められる読み手も少ないだろ CAD屋なら兎も角
或いは全部inchで揃えたらきれいに成るのかも知れない やったこと無いから知らんけど

ま、Excelだって10cm四方の正四角形の図形を描いてからモニターに定規充ててもズレてるし
印刷しても9.xxcmだったりするから一緒だな

587 :名無しさん@そうだ選挙にいこう:2020/09/06(日) 22:16:27.36 .net
シビアにtwipを取得して
レポートのテキストボックスの高さを再指定する関数作ったけど
それでもうまく行かないこともある。

588 :名無しさん@そうだ選挙にいこう:2020/09/06(日) 23:00:52.40 .net
SELECT * FROM Hoge WHERE Col1 = 'AA' AND Col2 NOT LIKE 'BB*'

こんな単純なクエリで結果が空になります…。
WHERE の条件を個別に試すとそれぞれちゃんと動くんだけど…。
もちろん2つの条件を満たす行はちゃんとあります。

どうしてこうなるのかサッパリ分かりません。
分かる方、よろしくお願いします。

589 :名無しさん@そうだ選挙にいこう:2020/09/07(月) 02:29:10.31 .net
>>588 andの前後をかっこでくくってみたら。
デザインビューで自動生成したやつだから、やたら()多いけど
一応動いたけど。
col1 col2
aaa bbba
aaa ccc

SELECT [テーブル1].col1, [テーブル1].col2
FROM テーブル1
WHERE ((([テーブル1].col1)="aaa") AND (([テーブル1].col2) Not Like "bbb*"));

590 :名無しさん@そうだ選挙にいこう:2020/09/07(月) 07:32:30.19 .net
そうだね
WHERE以下の条件をANDで結合するときはカッコが必要

591 :名無しさん@そうだ選挙にいこう:2020/09/07(月) 21:15:06.66 .net
>>589-590
アドバイスありがとうございます。

原因が分かりました。
改めてテーブル定義を調べたところ、
「NULLは可、空文字列不可」
でした。

そりゃ 空に見える NULL値相手に LIKE は効かないですわ…
(頭がおかしいですけど富〇通のシステム)
で、LIKE で引っかかったと思っていたレコードも「何故か半角スペースが入っていた」というのが真相でした。

〇士〇は死んだ方がいと思いました。

592 :名無しさん@そうだ選挙にいこう:2020/09/07(月) 21:16:12.76 .net
>>590
WHERE 以下の条件を AND 結合する時のカッコはとくに必要ありません。

593 :名無しさん@そうだ選挙にいこう:2020/09/08(火) 01:41:47.17 .net
>>587
教えて下さい

594 :名無しさん@そうだ選挙にいこう:2020/09/08(火) 03:23:17.45 .net
例えば10行ほどのレポートで
ずらりと等間隔に置きたいんですよね
フィールドの中でもずれるし、小数点でもずれるしで
いびつになっていく

エクセルでは余裕だがあるフィールド群にたいして真ん中に寄せるとかもないからなあ
ファイルメーカーではとっくになるのに

595 :名無しさん@そうだ選挙にいこう:2020/09/08(火) 06:41:51.57 .net
>>591
わからない。 >>588 のクエリーはNULLも空白も関係ないじゃないの

596 :名無しさん@そうだ選挙にいこう:2020/09/08(火) 12:07:22.59 .net
Excel や FileMaker なら得意だが というAccess 貶めの意図は通じた
己の状況を見知らぬ他人に伝える能力は劣ってるのも伝わった

小数点でも・・と書いてるから、左右の位置ズレなんだろうなとは思うが
フォントの種類・サイズ、フィールドの書式設定、上下左右位置決め、内部余白
ここらを見直しても直らないならスクショ撮って載せなきゃわかり辛い

ずらりと等間隔に置きたい  なんだろ? 左右均等揃えとかの意味かな?

597 :名無しさん@そうだ選挙にいこう:2020/09/08(火) 12:20:12.02 .net
>>594
そんなことってあります?
プロポーシャルでもそういう経験ないかも。
一応、msゴシックpならmsゴシックにしてみるとか。

598 :名無しさん@そうだ選挙にいこう:2020/09/08(火) 19:54:13 .net
>>595
NULL は特殊な値だから = や LIKE は通じない。
また、条件をバラして実行してみて、LIKE で空文字列が引っかかったと思っていたら実は半角空白が入れてあった、ということ。

599 :586:2020/09/08(火) 19:55:19 .net
http://wkubota.はてなブログ.com/entry/2014/02/18/004047
こんな感じだった。

600 :名無しさん@そうだ選挙にいこう:2020/09/09(水) 07:52:03.77 .net
>>598
なんとなく解り申した。WHERE条件式の書き方がわかってよかったですね。

601 :586:2020/09/09(水) 21:13:36.63 .net
>>600
良くはないです。
一応そこそこのSQLは書けるし書いてきた。

「テーブル設計がクソ過ぎ。だけど変更できないから生データに触るのも一苦労」
という地獄ですこれは。予想の斜め90度行っちゃってた。

ちなみに日付型や数値型やブーリアン型にすべきところも文字列型。狂ってる。

602 :名無しさん@そうだ選挙にいこう:2020/09/09(水) 22:23:54.38 .net
【Windows10 Access 2016】

Dim C配列 As Variant
C配列(1, 1) = "AAA"



C配列(10, 3) = "ZZZ"

Range("A1:C10") = C配列

Excelでは上記例のように、
配列に格納したデータを一発でセルに代入できますが
Accessでも同じように配列に格納したデータを
一発でテーブルに代入する方法はありますか?

603 :名無しさん@そうだ選挙にいこう:2020/09/10(木) 02:23:52.88 .net
>>602
現状ではたぶん無いと思います
・エクセルのセル(基本的に何でも格納可能)
・テーブルのフィールド(一致する型のみ格納可能)
大から小への変換は困難、小から大への変換は楽、と同じ理屈です
例えるなら、配列(大)→エクセル(大)、配列(大)→テーブル(小)

604 :名無しさん@そうだ選挙にいこう:2020/09/10(木) 04:07:31.41 .net
>>602
一発の目的は何なんだろう
コードを短く書きたいってだけなら
配列をデータセットに代入とかならできたんじゃないか
エンジン内部ではレコード数分ループしてるかもしれないけどね
クリップボードにコピーしたデータをAccessに張り付けると複数のインサートだよね
.NetとかだとLINQとか使って代入してたんじゃないかな
VBAでも探せばありそうだけどどんな使い方をするかによるんじゃないの
SQL1命令で複数レコードインサートする命令はかけるわけだから、探せば関数があるかもね

605 :名無しさん@そうだ選挙にいこう:2020/09/10(木) 23:54:45.81 .net
データの加工ってアクセスで行うよりもエクセルとかでやった方が早くない?

アクセスは加工じゃなくてデータの新規入力と抽出、分析のためのソフトだと思う。
 

606 :名無しさん@そうだ選挙にいこう:2020/09/12(土) 09:57:17.31 .net
データ件数によるでしょ

607 :名無しさん@そうだ選挙にいこう:2020/09/12(土) 13:00:41.29 .net
Accessで楽観的排他を行いたいです。
変更時間を持っているので、表示した時と更新時の時間が変わっていたらキャンセルしたいです。
(1人が使用していましたが、複数人使うことになったので改修することになりました。)

データシートビューで直接値を変更できるようになっており、
変更日付も保持しています。

私が変更した時に、変更日付が変わっていたら反映しないようにしたいです。

以下が分からないので、ご教示お願いします。

1.データシートビューなので、複数レコードがありカレントレコードの変更日付(表示した時点)の取得方法がわかりません。
  (更新時に変更日付を取得すると、誰かが更新していた時には他の人の更新時間が入っています。)
2.変更をキャンセルするには、レコードのbeforupdateに処理を書けばよいのでしょうか。
3.この方法を行うには、DaoやAdoでトランザクションをかける必要があるのでしょうか。

608 :名無しさん@そうだ選挙にいこう:2020/09/12(土) 13:00:41.39 .net
Accessで楽観的排他を行いたいです。
変更時間を持っているので、表示した時と更新時の時間が変わっていたらキャンセルしたいです。
(1人が使用していましたが、複数人使うことになったので改修することになりました。)

データシートビューで直接値を変更できるようになっており、
変更日付も保持しています。

私が変更した時に、変更日付が変わっていたら反映しないようにしたいです。

以下が分からないので、ご教示お願いします。

1.データシートビューなので、複数レコードがありカレントレコードの変更日付(表示した時点)の取得方法がわかりません。
  (更新時に変更日付を取得すると、誰かが更新していた時には他の人の更新時間が入っています。)
2.変更をキャンセルするには、レコードのbeforupdateに処理を書けばよいのでしょうか。
3.この方法を行うには、DaoやAdoでトランザクションをかける必要があるのでしょうか。

609 :名無しさん@そうだ選挙にいこう:2020/09/12(土) 15:30:27.35 .net
>>608
私が解釈しているトランザクションは
複数テーブルを同時に書き換えるときや、大量処理で数秒以上要するときに使うもんだと思ってます。
Aさんが更新した情報を上書きしてはいけない状況なのでしょうか。(一部、重複的な更新入力になったとしても)
accessの親切なんだかよくわからん設計で、他人の更新が画面に反映されるのは確かです。
レコードポインタを合わせた時刻をパブリック変数に入れて
更新前イベントで、更新時刻フィールドと変数を比較して
変数より大きい値ならアラートの一つでも出してundo処理でしょうね。
(コマンド忘れたけど)

610 :596:2020/09/13(日) 10:15:30.73 .net
>>609
間違い防止のため、上書きしたくないみたいです。

ご教示頂いた内容で対応したいと思います。
ありがとうございました!

611 :名無しさん@そうだ選挙にいこう:2020/09/22(火) 03:30:47.77 .net
POWER APPSでつくればACCESSのレコードなどをスマホやタブレットで閲覧することはできますか?

612 :名無しさん@そうだ選挙にいこう:2020/09/22(火) 14:49:14.37 .net
余裕

613 :名無しさん@そうだ選挙にいこう:2020/09/23(水) 21:35:16.14 .net
古くて申し訳ないですが、Access2002です
フォームを作って、コンボボックスでデータ一覧(ID:数値が入っている)を表示させました
マクロを作って、アプリケーションの実行を設定して、コマンドラインにアプリケーションのありかと開くファイル名を入れました
開くファイル名に固定文字列を入れるとうまく開くのですが、そこにコンボボックスの数値IDを渡したいんです
コンボボックスダブルクリックでマクロが呼び出されるようにはしたので、あとは数値を渡すだけなんですが、
コマンドラインにどのように記述すれば目的の数値を含むコマンドを実行できるでしょうか?

614 :名無しさん@そうだ選挙にいこう:2020/09/24(木) 08:54:18.59 .net
イベントプロシージャでVBAでやった方が楽やで

615 :名無しさん@そうだ選挙にいこう:2020/09/24(木) 09:09:40.96 .net
Private Sub データ一覧_DblClick(Cancel As Integer)
Dim strPath As String
strPath = "notepad.exe C:\test" & Me![データ一覧] & ".txt"
Call Shell(strPath)
End Sub

616 :名無しさん@そうだ選挙にいこう:2020/09/24(木) 10:28:01.02 .net
>>615
できましたありがとう

617 :名無しさん@そうだ選挙にいこう:2020/09/24(木) 12:19:18.37 .net
フォームでリストボックスをつけてみたのですが、列が1列しか表示されません。
表示されたものをクリックすると複数行複数列が出てくるのですが、最初から全部表示させたいです。
フォームを開くだけで複数の列を表示させるにはどうしたらいいでしょうか?

618 :名無しさん@そうだ選挙にいこう:2020/09/25(金) 15:04:21.17 .net
VBAで質問です
フォームのリストをダブルクリックすると発生する同じようなイベントプロシージャがいっぱいあるので、
標準モジュールのSubにまとめて記述することにしました
イベントプロシージャの中でMe![id]というのを使っていたのですが、そのままコピーしてもMeのところで使用方法が不正だとエラーが出ます
各プロシージャからオブジェクトの名前をStringで渡しても、対象はコレクションでなければなりませんとエラーが出ます
何をどのように記述すればいいか教えてください

619 :名無しさん@そうだ選挙にいこう:2020/09/25(金) 15:13:30.79 .net
>>618
Me は自身のフォームオブジェクトを示すので、標準モジュールからはどのフォームか解らないんよ

620 :名無しさん@そうだ選挙にいこう:2020/09/25(金) 16:13:44.44 .net
>>619
どうやって渡せばいいんでしょうか?
フォーム名をString引数で渡してもだめなんです

621 :名無しさん@そうだ選挙にいこう:2020/09/26(土) 08:32:07.09 .net
Currentdb.Containers!forms(0)
Currentdb.Containers!forms("")

622 :名無しさん@そうだ選挙にいこう:2020/10/08(木) 11:36:15.75 .net
どなたか教えて下さい。
accessのグラフに目盛りの最小値、最大値の設定があるのですが、VBAからその値をセットできないものでしょうか?

ずっと調べ続けて、徹夜になってしまった。

623 :名無しさん@そうだ選挙にいこう:2020/10/08(木) 12:46:47.65 .net
できるよ
マクロの記録を押してから手動であれこれ操作すればマクロにどう書けばいいか自動で記述してくれるからそれをいじればいい

624 :名無しさん@そうだ選挙にいこう:2020/10/08(木) 15:08:27.93 .net
>>623
ありがとうございます。

accessとEXCELだと、グラフオブジェクトって別物だとおもっていたのですが、、、

試してみます。

625 :名無しさん@そうだ選挙にいこう:2020/10/08(木) 21:47:38.64 .net
>>624
やはりaccessにマクロの記録はありませんでした。

626 :名無しさん@そうだ選挙にいこう:2020/10/09(金) 08:01:19.59 .net
>>625
ワロタ

627 :名無しさん@そうだ選挙にいこう:2020/10/09(金) 16:27:00.30 .net
・Win10
・Access2019

Docmd.RunSQL "UPDATE Table1 SET 数量 = 5 WHERE ID = 11"
Docmd.RunSQL "UPDATE Table1 SET 数量 = 2 WHERE ID = 3"
Docmd.RunSQL "UPDATE Table1 SET 数量 = 3 WHERE ID = 8"

上記のように複数のSQL処理を1行1行処理するのではなく、
下記のようにつなげたSQL文を1度で処理する方法はありますか?

strSQL="UPDATE Table1 SET 数量 = 5 WHERE ID = 11 " & _
"UPDATE Table1 SET 数量 = 2 WHERE ID = 3 " & _
"UPDATE Table1 SET 数量 = 3 WHERE ID = 8"

628 :名無しさん@そうだ選挙にいこう:2020/10/09(金) 18:33:08.44 .net
>>627
たぶん、vbaもsql記述も条件分岐噛ませないのであれば、方法はない。マクロにする必然性がようわからん。
この手の作業は、過去の古いデータに手を加えたり、「あ、変だ」の修正だったりするので
クエリービルダーの中でちゃちゃっとやるけど。
恒久的にやりたいのであれば、
id 数量のテーブル作って、元のテーブルとjoinして
updateで参照埋め込みするのが
いいんじゃねーの?

629 :名無しさん@そうだ選挙にいこう:2020/10/09(金) 20:35:01.31 .net
行の終わりに;つければ

630 :名無しさん@そうだ選挙にいこう:2020/10/10(土) 17:27:14.26 .net
Accessではやったことないけど
UPDATE Table1 SET 数量=CASE
WHEN ID=11 THEN 5
WHEN ID=3 THEN 2
WHEN ID=8 THEN 3 END
WHERE ID=11 OR ID=3 OR ID=8
これは使えないかな

ログを取ってるSQLServerとかならログが一行になる意味はあるかもしれない

631 :名無しさん@そうだ選挙にいこう:2020/10/10(土) 17:28:23.25 .net
>>628
> 条件分岐噛ませないのであれば
既に書かれてましたね
失礼しました

632 :名無しさん@そうだ選挙にいこう:2020/10/11(日) 11:06:37.18 .net
ブログラム板で無視されたのでこちらにも書きますね。
最近のAccessは条件付き書式の条件数が3つまでという制限がなくなったと聞いて、vbaで4つ条件を書いたら、怒られた。
条件数の上限の件はどうなっているの?

633 :名無しさん@そうだ選挙にいこう:2020/10/11(日) 14:53:17.59 .net
3

634 :名無しさん@そうだ選挙にいこう:2020/10/12(月) 12:52:31.09 .net
↓これを見ると出来そうなんですけどねえ。
https://www.ilovex.co.jp/blog/system/access/access-6.html

635 :名無しさん@そうだ選挙にいこう:2020/10/19(月) 20:56:15.24 .net
tableテーブルにid,name,dateという項目があったとします
あるid=numにおいて最大値のdateをVBAで取り出すには
DMax("date", "table", "id=" & num)
とすればいいのですが、このdateのときのnameの値を知るにはどうしたらいいでしょうか?

636 :名無しさん@そうだ選挙にいこう:2020/10/20(火) 23:38:28.49 .net
maxdate=DMax("date", "table", "id=" & num)
dlookup("name", "table", "id=" & num & " and date=#" & maxdate & "#")
前提条件
id は重複登録がある(無いなら DMax の意味が無い)
DMax の結果に同じ date はない(1レコードに絞れないと複数 name が存在)
フィールド date は日付型(文字列ならシングルクォーテーションになる)

レコードセットも検討してね

637 :名無しさん@そうだ選挙にいこう:2020/10/21(水) 06:04:21.98 .net
>>636
できました
ありがとうございました

638 :名無しさん@そうだ選挙にいこう:2020/10/26(月) 12:09:06.54 .net
ACCESS始めようと思ってるのですが
2種類のテーブルに違うデータを取り込んで
新しくテーブルを作る際にその前に取り込んだ2種類のフィールドデータを混ぜ合わせたテーブルは可能でしょうか?
初心者すぎて概念などが間違っていたらすいません

639 :名無しさん@そうだ選挙にいこう:2020/10/26(月) 12:09:58.05 .net
可能です

640 :名無しさん@そうだ選挙にいこう:2020/10/26(月) 14:17:40.96 .net
>>639
ありがとうございます
さっそくやってみます

641 :名無しさん@そうだ選挙にいこう:2020/10/26(月) 18:17:11.66 .net
>>638
joinで検索して

642 :名無しさん@そうだ選挙にいこう:2020/10/27(火) 00:24:13.19 .net
>>641
ありがとうございます

643 :名無しさん@そうだ選挙にいこう:2020/10/28(水) 12:46:18.37 .net
初心者ですいません
Accessで株価データ1銘柄につき1レコードのフィールドに10項目を作り3000銘柄10年分を一つのテーブルに入れた場合
データ件数は前者か後者どちらになるでしょうか?
前者10×3000×365×10件

もしくは横一列を一つとする
後者3000×365×10件

調べるとデータ40万件越えから指数関数的に遅くなると書かれていましたが
例えばexcelでこの40万件数超えから特定の7300レコードを取得して分析とかはサクサク呼び出せるものでしょうか?

644 :名無しさん@そうだ選挙にいこう:2020/10/28(水) 13:07:06.41 .net
年間250日として
3000x250x10

645 :名無しさん@そうだ選挙にいこう:2020/10/28(水) 17:59:07.74 .net
Accessのテーブルはただの入れ物置き場所という立ち位置のようなので
Excel次第のような Excel側でテーブル読みに行ってデータ引っ張るカタチなら
Accessで無くとも無料のDBでもいいような
Excel 株価 分析 とかでググれば先人が山盛りアプリ提供してるし
投資板で相談した方が答えが早いと思えたり

646 :名無しさん@そうだ選挙にいこう:2020/10/28(水) 19:10:21.89 .net
Access2000で申し訳ないのですがわかる方教えてください
テーブルを開くと普通はすぐにデータが読み込まれ、右側のスクロールバーのつまみをつまんで一番下まで持っていくと一番下が表示されると思うのですが、
なぜか一番下まで持っていってマウスを離すとつまみが中央まで飛び、それをもう一度下まで持っていって離すと少し上に飛び、3回目で下まで持っていけるというテーブルがあります
何もせずに少し待ってからつまみを動かすと下まで動きます
データの量が500件あまりでそれほど多くないのですが、たぶん読み込みに時間がかかってるのだと思いますがどうしてこうなるのでしょうか?
すべてのフィールドのインデックスをいいえにしてもだめです
5500件ある別のテーブルはそんなことはなくすぐに下まで動かせます

647 :名無しさん@そうだ選挙にいこう:2020/10/28(水) 20:40:36.07 .net
>>646
最適化してみて

648 :名無しさん@そうだ選挙にいこう:2020/10/28(水) 20:43:29.74 .net
キーボード操作で HomeとかEndとかScrollUp/Downとかでも症状出る? たぶん出ないと思うけど
描画が追い付いていないだけだと思う マシンスペックに依るんじゃない? CPUとメモリーとグラボの相性とか
レコード数が10倍違うとかは、フィールドの構造に依るのかも
随分前に経験してるかも知らんけど、違うPCだと出ないとかだったような

649 :名無しさん@そうだ選挙にいこう:2020/10/29(木) 08:25:20.55 .net
>>647
だめですねえ

650 :631:2020/10/29(木) 19:41:55.58 .net
>>644
ありがとうございます
営業日だとそうなりますね
>>645
ありがとうございます
Acccessを出し入れスピードの速い入れ物と見ていたので勘違いしていたようでした
結果excelとcsvファイルのままの方がスピードが出ていますがもう少し研究してみます

651 :名無しさん@そうだ選挙にいこう:2020/11/04(水) 15:16:26.84 .net
office365のACCESSは容量制限ありですか?

総レス数 1015
360 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200