X



Access総合相談所 29
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@そうだ選挙にいこう
垢版 |
2019/09/23(月) 20:02:25.84
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/
0526牧野 ◆Vbs7gX72NY
垢版 |
2020/08/26(水) 23:37:30.76
>>523
0.25ずつ増えていく感じで

Sub Macro1()
For i = 1 To 10
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, i * 10, 1, i * 10, 100).Select
With Selection.ShapeRange.Line
.Visible = msoTrue
.Weight = i * 0.25
End With
Next
End Sub
0527牧野 ◆Vbs7gX72NY
垢版 |
2020/08/26(水) 23:37:57.89
あーしまったエクセルとアクセス間違えた、スマン
0528名無しさん@そうだ選挙にいこう
垢版 |
2020/08/27(木) 00:14:30.31
>>526
>>527
シートの部分とかが変わるんですかね

コードは書けないので日本ので書きますが
例えば

詳細 に線を書く 太さ1
詳細 に線を書く 太さ2
詳細 に線を書く 太さ3
詳細 に線を書く 太さ4

といった感じのコードをいただければ太さを色々変えて印刷して試せそうです
太さは0.25や0.5などの指定はできず1〜(何まであるのでしょうか?)の指定になるんですよね?
0529名無しさん@そうだ選挙にいこう
垢版 |
2020/08/27(木) 01:37:08.09
ACCESSを数人の小規模で使う場合
データベースとフォームをわけて
安いNASにデータベースをおいてそれにアクセスするような感じで使うんですか?

よその会社の事務所みると3台ほどPCあってACCESSでやってるとこあるみたいですがそんな感じでしょうか?
0530名無しさん@そうだ選挙にいこう
垢版 |
2020/08/27(木) 01:40:44.06
ちなみに複数従業員で使う場合
ランタイム版を使えばライセンスの購入は不要なんですよね?

なんでACCESSだけランタイム版があるんでしょうかね
0531名無しさん@そうだ選挙にいこう
垢版 |
2020/08/27(木) 02:44:35.82
細い線に関してだが
線を二本配置してそれぞれ黒と白にする
位置を入力して任意の線にする、とかは駄目なんだろうか?
例えば1の黒線書いて1の白線を上にかぶせて0.5になるようにするとか

目が痛くなりそうで
できるかは試してないがひとつのアイデアとして

細線と書いてあるのはヘアラインといわれるやつで
太さ設定なしでプリンタの最小の細さで印刷されるらしい
0533名無しさん@そうだ選挙にいこう
垢版 |
2020/08/27(木) 18:15:42.88
うろ覚えで書いたけど、VBAで処理したのは最終段の合計枠を強調するために
一ページで終わる場合と複数ページの場合でだった スマン
複数ページの場合は他のページの合計枠を細線にしてただけの処理だった

あと、実際にレポート上に7本線引いてVBAでBorderWithに小数点使ってみたが
0 0.5 → 細線(0ポイントと同じ)
0.85 1 1.3 → 1ポイントと同じ
1.7 2.2 → 2ポイントと同じ線を引いたんで、四捨五入だか五捨六入してる
素直に0〜6ポイントで選ぶか、破線や色変えでの対応しかない?

何のデータも無いレポートに線を引くVBAは
http://www.ps-wing.com/vba/sample009.html  ここに有った
但し横罫線38cmに成ってるからA3ヨコ用 その部分を変えれば他のサイズでも応用可
縦罫線も引いてるからタテとヨコの場合で違いが出るか?とかも調べられるかも
0535名無しさん@そうだ選挙にいこう
垢版 |
2020/08/28(金) 00:19:48.78
他の掲示板にあったやつだけどこれどうやるの?
Me.Line(0,0)-(0,0)でライン書く座標を可変にするってことだろうけど


『レポートで任意の位置にこれらを配置するにはどのようにしたらよいでしょうか?
レコードがない場合は縮小印刷するフィールドを含みますがそのように細かいしては不可能ですか?


見出し
______________ 7px
フィールド1
フィールド2
______________ 1px
フィールド1
______________ 1px
フィールド1
フィールド2
______________ 1px 』
0536名無しさん@そうだ選挙にいこう
垢版 |
2020/08/28(金) 02:03:14.70
任意の線なんてEXCELでオートシェイプ書いてコピペすりゃ一発だろとおもってやってみたが
OLEサーバーがなんたらとかでてうまくできないな

0.5はエラーOK押しまくったらできるのはできた
でも0.25はなぜか長方形に変換されてしまったよ
0537名無しさん@そうだ選挙にいこう
垢版 |
2020/08/28(金) 15:32:48.25
>530
ランタイム版があるのはaccessはデータベースに入力するソフトじゃなくてデータベースを作成するソフトだからじゃないかな
そういう意味ではワードやエクセルよりもプログラミングソフトのほうが近いかと実際に高度なものはプログラミングソフトで作っていくからね
0538名無しさん@そうだ選挙にいこう
垢版 |
2020/08/28(金) 18:56:30.31
レポートでレコードごとに仕切り線つけようと思って一番下に配置しても微妙にずれるというかぴっちりならなくないですか?

交互に色が変わるやつを設定してるとそれとズレているのでよくわかります

どうやってきれいに


レコード1
______

レコード2
______

レコード3
______

とラインを引くのでしょうか?
詳細の設定などで余白ができるようになっているんでしょうか?
0539名無しさん@そうだ選挙にいこう
垢版 |
2020/08/28(金) 20:24:07.55
状況が不明だが、例えばレコードを高さ0.7cmのテキストボックスで貼り付けて
直線を上から0.7cmに配置してるけど微妙にズレる  ということかな?
テキストボックスの枠線は透明にしていて、直線は黒とかにしてるが僅かにズレてるのが判るとか?
直線を0.695とか微調整するしか無いんじゃね?
0540名無しさん@そうだ選挙にいこう
垢版 |
2020/08/28(金) 21:56:49.23
エプソンのインクジェットで印刷したやつ。
ラベル貼り忘れたけどいちばん上が黒の実線 細線ね。
点線はaccessだと、どうやらそのまま点線になるのでダメだな。
excelの一番細かい破線を会社の複合機で印刷すると細い直線になるのでよく使うんだけど。

黒から一段二段グレーに傾けると
存在感のない線になる。
手間かけないならこれが一番手っ取り早いんじゃない?
https://i.imgur.com/pAqooeP.jpg
0541名無しさん@そうだ選挙にいこう
垢版 |
2020/08/28(金) 23:54:28.52
>>540
手持ちのブラザーのモロクロレーザープリンタでは細線はほぼ印刷されませんねえ(600dpiで印刷)

>>539
一般的に詳細の高さってフィールドよりは少し高くするものですかね?
0543名無しさん@そうだ選挙にいこう
垢版 |
2020/08/29(土) 08:00:25.48
Accessレポートの罫線はVBAで引くんじゃないの?
Lineメソッドだっけ
0544名無しさん@そうだ選挙にいこう
垢版 |
2020/08/29(土) 13:01:05.72
>>539 のケースで、極端な例で言うならテキストボックスの高さを0.8cmにして
直線の位置は上から0.7cmとかなら多分ズレは見なくなると思う
システムの特性でインチ基準なので、端数で設定しないと思い通りの位置に成らない
ことはままある
印刷済み用紙に位置合わせする時などはテキストボックスの内部余白を調整して
合わせるとかまである
0545名無しさん@そうだ選挙にいこう
垢版 |
2020/08/29(土) 13:11:50.91
>>544
MS的にはレコードごとに線を引く、とかいう自体がイレギュラーって認識なんだろうか
調べてたら質問掲示板に
VBAで

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

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

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

因みにテキストボックス高さ0.42cmフォントサイズ10.5でもなんとか読めるんで
それ基準でどこまで高く・大きくするか見繕ってる 要件のうちでその書類に
要するボリューム等々もあるんで、これがベストってのは中々決めらんない
0548名無しさん@そうだ選挙にいこう
垢版 |
2020/08/29(土) 13:59:48.11
>>547
俺はフォントサイズ8でやるときもある
ドコモとかヨドバシとかの明細もそんなもんだから

そうしないと用紙に収まらなくなるってほど多いのあるからな
0550名無しさん@そうだ選挙にいこう
垢版 |
2020/08/29(土) 14:08:13.93
>>547
わかる。作文用紙の影響からか
日本人、升目大好きだよね。
稟議書がexcelとか、どうかしてる。
古くは障子を使って計算してた史実もあったそうで。
accessのレポートのレイアウトは基本的にはアバウトに考えたほうがいい。
いちおう、連帳伝票の印字を割り付ける程度の精度はあるけど。
0551名無しさん@そうだ選挙にいこう
垢版 |
2020/08/29(土) 14:46:51.94
欧米はタイプライター文化だから文字のラインが揃ってるのがデフォで、罫線って何?
0552名無しさん@そうだ選挙にいこう
垢版 |
2020/08/29(土) 21:07:03.47
興味を持ったんで軽くググってみた キー・パーソンは「アラン・シャンド」
幕末にイギリスから横浜の英国銀行の支店長代理として来日している
高橋是清とか渋沢栄一とかに師事したのか影響を与えた のか なんかそんな立場
江戸期の大福帳から帳簿に変化させていった最大功労者 と思えた

で、英国は当時すでに赤青黒罫線の見慣れた帳簿形式を確立してた
と成ると派生したアメリカでも当初はそれを踏襲してたはず だし、資料も残ってる
それをアメリカ人気質でどんどん簡略化してっての現在なんだろな
イギリスの現状はどうなんだか気には成る 似たような苦労してるのか?果たして  スレチでごめんなさい
0554名無しさん@そうだ選挙にいこう
垢版 |
2020/08/29(土) 22:25:15.84
Accessにファイル名のテーブルがあって、フォームか何かを使ってその中から手動で選んで、ボタンを押すとそのファイルがダブルクリックされるという動作をさせることはできますか?
0556名無しさん@そうだ選挙にいこう
垢版 |
2020/08/30(日) 02:42:15.13
俺がいつも気になるのは
https://i.imgur.com/GMZ1754.jpg
こういう下に小計が飛び出してるやつ
上に請求書書いてるならそこにもろもろ書けよ、と思ってしまう
こうしろ、と
https://i.imgur.com/0qS9NtP.png

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

もう一つは、それこそその例に書いた通り、次ページがあるのに気付かずに
一枚目だけを封入して送付してしまったり、生憎丁度プリンタの用紙切れだったのに
気付かない方まま提出してしまったりのケアレスミス予防とか  まあ、いずれにしろどっちでもいい
0558名無しさん@そうだ選挙にいこう
垢版 |
2020/08/30(日) 17:51:28.26
>>556
accessだとどっちにしろフッターに合計算埋めるから飛び出してようが、
明細と同じ枠を作ろうが、どっちでもいいんだよ。
それより大事なのはヘッダー欄で、ヘッダー欄専用のテーブルは必要になる。
締め業務の設計はやたら面倒くさいのでaccessで納品書、請求書は作るな、というのが私の基本スタンス。
売掛がない主に個人向け販売や、買掛の管理用ならいいけど。
0559名無しさん@そうだ選挙にいこう
垢版 |
2020/08/30(日) 18:46:42.08
>>558
専用のテーブルって?

ACCESSはオススメできないなら何がオススメなんですか?
締ってそんなに大変だったっけ?
売上入力するときに計算してどの請求書にいれるかの日付を格納させてるからそれで抽出してたが
0560名無しさん@そうだ選挙にいこう
垢版 |
2020/08/30(日) 19:32:23.03
>>555
ハイパーリンクでもいいんですが、全データにフルパスのハイパーリンクをテーブルに格納するのは手間なので、
ボタンを押したときにファイル名からパスを生成して叩きたいんです
元テーブルにハイパーリンクフィールドがないと無理ですかね?
クエリの段階で生成してもいいんですが
0561名無しさん@そうだ選挙にいこう
垢版 |
2020/08/30(日) 20:24:37.80
>>560
そこまで詳しいなら特に言うべきことはないです。結局何がしたいのかさっぱりわからんし。
フルパスを入れるのが面倒?検索で容易にヒットするファイルダイアログをコールしてフルパスを登録する方法も嫌?
全てが面倒なら実はデータベースに登録する必要すらない要件なのでは?
その場合、ブラウザコントロール使って「files」から始まる疑似urlでファイルビューア的に使うこともできるけど。
0562名無しさん@そうだ選挙にいこう
垢版 |
2020/08/31(月) 01:11:38.79
>>559 自作することに、それなりにリスクがあると言いたいだけ。
売掛金を請求する、しかも少額ではない金額、というのは大きな責任が伴うので。
ベンダーのERPの構造を真似して作ったものは
締めの指示を入れる時に、得意先ごとの締日から対象期間を抽出、
明細を請求明細にコピーするか、売り上げ明細に請求番号埋めて、
本体価格の積算を「請求のヘッダー用テーブル」に格納、
前月の売掛金のサイトが1か月以内、全額支払いとは限らないので前月残高を
計算、今月の最終請求額を確定。

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

個人零細で、1見積もり、1受注、1請求、すぐに支払い、みたいな感じなら
簡易的な設計でもいいと思うけど。
0563名無しさん@そうだ選挙にいこう
垢版 |
2020/09/01(火) 14:07:24.76
>>560
そういやおまけで付いてくるNorthWindデータベースにそんなような機能付いてたな
と思って2019でサンプルDLしてみたら全部英語だった
だけどやっぱしディテールフォーム上からそのレコードに添付したい画像を選択できた
しかも今のは複数画像をどんどん追加する事さえできる(頁めくりボタンみたいのも出る)

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

ここが解析できれば画像だけじゃ無く拡張子変えて他のファイル形式も可能な気がする
自分もハイパーリンクでいいじゃん派だったけど、この機能使ってスマートにしたい
以前のもこれ使って改良できる気がしたから、様子見て分析してみる
0564名無しさん@そうだ選挙にいこう
垢版 |
2020/09/01(火) 15:11:37.85
くだらん テーブルのフィールドのデータ型を添付ファイルにすれば出てくるダイアログだった
解析だの分析だのアホかと
どんなファイルでも添付できるが、画像以外を添付すると中身は開かないと判らん
ダイアログ内にはファイル名出るからそれで判断ってことか
0565名無しさん@そうだ選挙にいこう
垢版 |
2020/09/01(火) 19:45:07.04
>>564
私が匙投げ掛けたのをせっかく別の角度で言ってくれてるのを頭ごなしに否定するかね。
あんたブレインストーミングに向いてないね。
mariaDBなどの汎用でいうところのblobみたいなもんだから、アプローチとしては間違ってないと思うけど。あとはデータ壊れがちaccessがどこまで堪えられるかってだけで。
おーい、質問者でてこーい。
何がしたいんだね。
0566名無しさん@そうだ選挙にいこう
垢版 |
2020/09/01(火) 20:47:56.71
ちがう、ちがうw 昼間の二件は両方じぶんが書いた 気負い込んだけど腰砕けだったって話
なんせ、最新の添付ファイル形式なんか使ったこと無かったから、ちょっと惑乱したと

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

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

余談だが、そのフォームの左側でドロップダウンリストボックス内にチェックボックス付きでリストを見せてた
へぇ、今のはこんなことも出来るんだと感心した ?付けた分だけリストに併記できるだなんて
これも応用でファイル添付に役立てることは出来そうだな とは思った
0567名無しさん@そうだ選挙にいこう
垢版 |
2020/09/01(火) 21:06:05.80
>>566
それは失礼しました。
1個1Mくらいまでのファイル張り付けるなら有りかなと思う。
先日、画像用にoleオブジェクト欄作ってあったのが、いつのまにかデータ壊れてたので
添付ファイル形式に変えた。
ドラッグ&ドロップが使えず、登録の仕方にややクセがあるのが難点だけど。
accessDBは時々わけわからん壊れ方するから、dbサーバーを立てる、添付ファイルの元ファイルは完全に保全しておく、大人しくハイパーリンクを使う
のいずれかでしょうね。
0568名無しさん@そうだ選挙にいこう
垢版 |
2020/09/05(土) 23:14:28.71
フォームってVBエディタで書き出せるのはVBAのコードだけで、VB6のフォームみたいにソースコードで書き出せないんですね
エクスポートして、テキスト編集でコード直して、インポートしたかったんですけどね
0569名無しさん@そうだ選挙にいこう
垢版 |
2020/09/05(土) 23:32:08.38
印刷用のレポートって細い作り込みできないよね?
フィールドの文字を正確に中央揃えとか
高さのあるフィールドの横にそれの中央に合わせてフィールドを配置するとか
0570名無しさん@そうだ選挙にいこう
垢版 |
2020/09/06(日) 11:20:23.85
使うフォントやサイズにも依るだろうけど、テキストボックス内の上下左右の余白を駆使するとか
試しに□(四角)で印刷してみてその余白値を微調整だろうな
VBAでやりたかったら、hatena chips さんの AutoFontSize とかをお借りするとか Formでも使える
とは言え、等幅やプロポーショナルとかメイリオ・遊ゴシックとかが影響するから微妙な時も有り得る
0571名無しさん@そうだ選挙にいこう
垢版 |
2020/09/06(日) 19:32:55.74
せめて中央揃えはほしいよな
というか1とかにしても1.03とかにされるのも困る
作品じゃないんだから読めればいいだろ、というスタンスなんだろうが
0574名無しさん@そうだ選挙にいこう
垢版 |
2020/09/06(日) 21:03:51.13
MS日本のAccess部隊が追いやられてるので、そこまで手が回らない
一部キチンと入るプロパティもあるだろうけど、殆どはcmで入れてもinch換算されてしまう
誤差が出ても諦める そういうもんだと軽く流すしかない
0.97 と 1.00 と 1.03 をそれぞれ見極められる読み手も少ないだろ CAD屋なら兎も角
或いは全部inchで揃えたらきれいに成るのかも知れない やったこと無いから知らんけど

ま、Excelだって10cm四方の正四角形の図形を描いてからモニターに定規充ててもズレてるし
印刷しても9.xxcmだったりするから一緒だな
0575名無しさん@そうだ選挙にいこう
垢版 |
2020/09/06(日) 22:16:27.36
シビアにtwipを取得して
レポートのテキストボックスの高さを再指定する関数作ったけど
それでもうまく行かないこともある。
0576名無しさん@そうだ選挙にいこう
垢版 |
2020/09/06(日) 23:00:52.40
SELECT * FROM Hoge WHERE Col1 = 'AA' AND Col2 NOT LIKE 'BB*'

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

どうしてこうなるのかサッパリ分かりません。
分かる方、よろしくお願いします。
0577名無しさん@そうだ選挙にいこう
垢版 |
2020/09/07(月) 02:29:10.31
>>576 andの前後をかっこでくくってみたら。
デザインビューで自動生成したやつだから、やたら()多いけど
一応動いたけど。
col1 col2
aaa bbba
aaa ccc

SELECT [テーブル1].col1, [テーブル1].col2
FROM テーブル1
WHERE ((([テーブル1].col1)="aaa") AND (([テーブル1].col2) Not Like "bbb*"));
0579名無しさん@そうだ選挙にいこう
垢版 |
2020/09/07(月) 21:15:06.66
>>577-578
アドバイスありがとうございます。

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

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

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

エクセルでは余裕だがあるフィールド群にたいして真ん中に寄せるとかもないからなあ
ファイルメーカーではとっくになるのに
0584名無しさん@そうだ選挙にいこう
垢版 |
2020/09/08(火) 12:07:22.59
Excel や FileMaker なら得意だが というAccess 貶めの意図は通じた
己の状況を見知らぬ他人に伝える能力は劣ってるのも伝わった

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

ずらりと等間隔に置きたい  なんだろ? 左右均等揃えとかの意味かな?
0586名無しさん@そうだ選挙にいこう
垢版 |
2020/09/08(火) 19:54:13.68
>>583
NULL は特殊な値だから = や LIKE は通じない。
また、条件をバラして実行してみて、LIKE で空文字列が引っかかったと思っていたら実は半角空白が入れてあった、ということ。
0587586
垢版 |
2020/09/08(火) 19:55:19.59
http://wkubota.はてなブログ.com/entry/2014/02/18/004047
こんな感じだった。
0589586
垢版 |
2020/09/09(水) 21:13:36.63
>>588
良くはないです。
一応そこそこのSQLは書けるし書いてきた。

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

ちなみに日付型や数値型やブーリアン型にすべきところも文字列型。狂ってる。
0590名無しさん@そうだ選挙にいこう
垢版 |
2020/09/09(水) 22:23:54.38
【Windows10 Access 2016】

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



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

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

Excelでは上記例のように、
配列に格納したデータを一発でセルに代入できますが
Accessでも同じように配列に格納したデータを
一発でテーブルに代入する方法はありますか?
0591名無しさん@そうだ選挙にいこう
垢版 |
2020/09/10(木) 02:23:52.88
>>590
現状ではたぶん無いと思います
・エクセルのセル(基本的に何でも格納可能)
・テーブルのフィールド(一致する型のみ格納可能)
大から小への変換は困難、小から大への変換は楽、と同じ理屈です
例えるなら、配列(大)→エクセル(大)、配列(大)→テーブル(小)
0592名無しさん@そうだ選挙にいこう
垢版 |
2020/09/10(木) 04:07:31.41
>>590
一発の目的は何なんだろう
コードを短く書きたいってだけなら
配列をデータセットに代入とかならできたんじゃないか
エンジン内部ではレコード数分ループしてるかもしれないけどね
クリップボードにコピーしたデータをAccessに張り付けると複数のインサートだよね
.NetとかだとLINQとか使って代入してたんじゃないかな
VBAでも探せばありそうだけどどんな使い方をするかによるんじゃないの
SQL1命令で複数レコードインサートする命令はかけるわけだから、探せば関数があるかもね
0593名無しさん@そうだ選挙にいこう
垢版 |
2020/09/10(木) 23:54:45.81
データの加工ってアクセスで行うよりもエクセルとかでやった方が早くない?

アクセスは加工じゃなくてデータの新規入力と抽出、分析のためのソフトだと思う。
 
0595名無しさん@そうだ選挙にいこう
垢版 |
2020/09/12(土) 13:00:41.29
Accessで楽観的排他を行いたいです。
変更時間を持っているので、表示した時と更新時の時間が変わっていたらキャンセルしたいです。
(1人が使用していましたが、複数人使うことになったので改修することになりました。)

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

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

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

1.データシートビューなので、複数レコードがありカレントレコードの変更日付(表示した時点)の取得方法がわかりません。
  (更新時に変更日付を取得すると、誰かが更新していた時には他の人の更新時間が入っています。)
2.変更をキャンセルするには、レコードのbeforupdateに処理を書けばよいのでしょうか。
3.この方法を行うには、DaoやAdoでトランザクションをかける必要があるのでしょうか。
0596名無しさん@そうだ選挙にいこう
垢版 |
2020/09/12(土) 13:00:41.39
Accessで楽観的排他を行いたいです。
変更時間を持っているので、表示した時と更新時の時間が変わっていたらキャンセルしたいです。
(1人が使用していましたが、複数人使うことになったので改修することになりました。)

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

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

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

1.データシートビューなので、複数レコードがありカレントレコードの変更日付(表示した時点)の取得方法がわかりません。
  (更新時に変更日付を取得すると、誰かが更新していた時には他の人の更新時間が入っています。)
2.変更をキャンセルするには、レコードのbeforupdateに処理を書けばよいのでしょうか。
3.この方法を行うには、DaoやAdoでトランザクションをかける必要があるのでしょうか。
0597名無しさん@そうだ選挙にいこう
垢版 |
2020/09/12(土) 15:30:27.35
>>596
私が解釈しているトランザクションは
複数テーブルを同時に書き換えるときや、大量処理で数秒以上要するときに使うもんだと思ってます。
Aさんが更新した情報を上書きしてはいけない状況なのでしょうか。(一部、重複的な更新入力になったとしても)
accessの親切なんだかよくわからん設計で、他人の更新が画面に反映されるのは確かです。
レコードポインタを合わせた時刻をパブリック変数に入れて
更新前イベントで、更新時刻フィールドと変数を比較して
変数より大きい値ならアラートの一つでも出してundo処理でしょうね。
(コマンド忘れたけど)
0598596
垢版 |
2020/09/13(日) 10:15:30.73
>>597
間違い防止のため、上書きしたくないみたいです。

ご教示頂いた内容で対応したいと思います。
ありがとうございました!
0601名無しさん@そうだ選挙にいこう
垢版 |
2020/09/23(水) 21:35:16.14
古くて申し訳ないですが、Access2002です
フォームを作って、コンボボックスでデータ一覧(ID:数値が入っている)を表示させました
マクロを作って、アプリケーションの実行を設定して、コマンドラインにアプリケーションのありかと開くファイル名を入れました
開くファイル名に固定文字列を入れるとうまく開くのですが、そこにコンボボックスの数値IDを渡したいんです
コンボボックスダブルクリックでマクロが呼び出されるようにはしたので、あとは数値を渡すだけなんですが、
コマンドラインにどのように記述すれば目的の数値を含むコマンドを実行できるでしょうか?
0602名無しさん@そうだ選挙にいこう
垢版 |
2020/09/24(木) 08:54:18.59
イベントプロシージャでVBAでやった方が楽やで
0603名無しさん@そうだ選挙にいこう
垢版 |
2020/09/24(木) 09:09:40.96
Private Sub データ一覧_DblClick(Cancel As Integer)
Dim strPath As String
strPath = "notepad.exe C:\test" & Me![データ一覧] & ".txt"
Call Shell(strPath)
End Sub
0604名無しさん@そうだ選挙にいこう
垢版 |
2020/09/24(木) 10:28:01.02
>>603
できましたありがとう
0605名無しさん@そうだ選挙にいこう
垢版 |
2020/09/24(木) 12:19:18.37
フォームでリストボックスをつけてみたのですが、列が1列しか表示されません。
表示されたものをクリックすると複数行複数列が出てくるのですが、最初から全部表示させたいです。
フォームを開くだけで複数の列を表示させるにはどうしたらいいでしょうか?
0606名無しさん@そうだ選挙にいこう
垢版 |
2020/09/25(金) 15:04:21.17
VBAで質問です
フォームのリストをダブルクリックすると発生する同じようなイベントプロシージャがいっぱいあるので、
標準モジュールのSubにまとめて記述することにしました
イベントプロシージャの中でMe![id]というのを使っていたのですが、そのままコピーしてもMeのところで使用方法が不正だとエラーが出ます
各プロシージャからオブジェクトの名前をStringで渡しても、対象はコレクションでなければなりませんとエラーが出ます
何をどのように記述すればいいか教えてください
0607名無しさん@そうだ選挙にいこう
垢版 |
2020/09/25(金) 15:13:30.79
>>606
Me は自身のフォームオブジェクトを示すので、標準モジュールからはどのフォームか解らないんよ
0609名無しさん@そうだ選挙にいこう
垢版 |
2020/09/26(土) 08:32:07.09
Currentdb.Containers!forms(0)
Currentdb.Containers!forms("")
0610名無しさん@そうだ選挙にいこう
垢版 |
2020/10/08(木) 11:36:15.75
どなたか教えて下さい。
accessのグラフに目盛りの最小値、最大値の設定があるのですが、VBAからその値をセットできないものでしょうか?

ずっと調べ続けて、徹夜になってしまった。
0611名無しさん@そうだ選挙にいこう
垢版 |
2020/10/08(木) 12:46:47.65
できるよ
マクロの記録を押してから手動であれこれ操作すればマクロにどう書けばいいか自動で記述してくれるからそれをいじればいい
0614名無しさん@そうだ選挙にいこう
垢版 |
2020/10/09(金) 08:01:19.59
>>613
ワロタ
0615名無しさん@そうだ選挙にいこう
垢版 |
2020/10/09(金) 16:27:00.30
・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"
0616名無しさん@そうだ選挙にいこう
垢版 |
2020/10/09(金) 18:33:08.44
>>615
たぶん、vbaもsql記述も条件分岐噛ませないのであれば、方法はない。マクロにする必然性がようわからん。
この手の作業は、過去の古いデータに手を加えたり、「あ、変だ」の修正だったりするので
クエリービルダーの中でちゃちゃっとやるけど。
恒久的にやりたいのであれば、
id 数量のテーブル作って、元のテーブルとjoinして
updateで参照埋め込みするのが
いいんじゃねーの?
0618名無しさん@そうだ選挙にいこう
垢版 |
2020/10/10(土) 17:27:14.26
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とかならログが一行になる意味はあるかもしれない
0620名無しさん@そうだ選挙にいこう
垢版 |
2020/10/11(日) 11:06:37.18
ブログラム板で無視されたのでこちらにも書きますね。
最近のAccessは条件付き書式の条件数が3つまでという制限がなくなったと聞いて、vbaで4つ条件を書いたら、怒られた。
条件数の上限の件はどうなっているの?
0623名無しさん@そうだ選挙にいこう
垢版 |
2020/10/19(月) 20:56:15.24
tableテーブルにid,name,dateという項目があったとします
あるid=numにおいて最大値のdateをVBAで取り出すには
DMax("date", "table", "id=" & num)
とすればいいのですが、このdateのときのnameの値を知るにはどうしたらいいでしょうか?
0624名無しさん@そうだ選挙にいこう
垢版 |
2020/10/20(火) 23:38:28.49
maxdate=DMax("date", "table", "id=" & num)
dlookup("name", "table", "id=" & num & " and date=#" & maxdate & "#")
前提条件
id は重複登録がある(無いなら DMax の意味が無い)
DMax の結果に同じ date はない(1レコードに絞れないと複数 name が存在)
フィールド date は日付型(文字列ならシングルクォーテーションになる)

レコードセットも検討してね
0626名無しさん@そうだ選挙にいこう
垢版 |
2020/10/26(月) 12:09:06.54
ACCESS始めようと思ってるのですが
2種類のテーブルに違うデータを取り込んで
新しくテーブルを作る際にその前に取り込んだ2種類のフィールドデータを混ぜ合わせたテーブルは可能でしょうか?
初心者すぎて概念などが間違っていたらすいません
■ このスレッドは過去ログ倉庫に格納されています

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