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/
0658名無しさん@そうだ選挙にいこう
垢版 |
2020/11/16(月) 12:11:01.29
「普通のソフト」の方は、Webフォームの設計からの進化でしょ?
使用する端末の画面サイズが様々だから、ミリ単位でとか作るのは無理。
例題の三種類も全部見るだけが目的だったりしてる。
かろうじて一枚目が左側のリストに触れると右に詳細が表示されるような
作りなだけなんじゃない?
何をどうしたいか書かないと答えようが無いと思う。
0665名無しさん@そうだ選挙にいこう
垢版 |
2020/11/17(火) 01:46:17.48
>>663
枠付きのテキストボックス並べて
画面上ではキレイに罫線が繋がっているのに印刷するとズレたり
逆に画面上では微妙にズレているのに印刷するとキレイな直線になったり
拡大機能は欲しいですね
0666名無しさん@そうだ選挙にいこう
垢版 |
2020/11/17(火) 12:16:34.44
モニターとプリンターは解像度が違う  (何度も忠告せざるを得ない)
無駄な苦労はとっとと止めて、枠線を透明にして直線を駆使するとか
ACCESSスタッフがいつか改善するとは思うけど、待ってる間にやることはある
文句言うだけなら猿でもできる
0667名無しさん@そうだ選挙にいこう
垢版 |
2020/11/17(火) 12:54:14.94
機械図面の構成管理をするDBをACCESSで作ろうとしている者です。
組立部品には当然子部品がありますが、その子部品も一部は組立部品だったりします。
つまり階層構造になるわけですが、トップから順に子部品をリストアップしていく時に
それが単部品ならただ羅列していけば良いのですが、組立部品だった場合は次の子部品を
記述する前に前の子部品の子部品(孫部品)を先に記述しなければなりません。

こういうリストアップのルーチンで親部品から見て子部品が組立部品か単部品かで
処理分けをネストしていく方法が分りません。全体の階層深さはトップ部品により様々で
一定ではないため、VBAでサブルーチンを幾つも設けるのは不合理と考えます。
シンプルに再帰検索させる記述方法はないでしょうか。
0669名無しさん@そうだ選挙にいこう
垢版 |
2020/11/17(火) 14:42:40.54
組み立て部品か否かは、項目でわかるようにしとけば済むことであって
孫部品も子部品も同じ土俵にしとけ

最終的に親製品の部品でしか無いんだから
親製品名で全部リストアップされる
その中で組み立て部品だけまとめたいなら、その後いくらでもできるだろ
0670名無しさん@そうだ選挙にいこう
垢版 |
2020/11/17(火) 15:27:33.73
>>668
特定の子部品を使ってる親部品を調べることは当然出来ます。
親部品の構成部品マスタを見に行けば良いだけなので。そういうことではないんです。

>>669
勿論部品の区別は付くようにしてあり、同じ土俵での処理でどうするかの話ですよ。
機械図面というのは図中で部品の見出し番号が決まっていて(所謂風船番号)その見出し番号順に
リストも記述しないとならんのです。
だから呼び番順に処理するわけで、対象部品が組立部品か単部品かで処理分けすることに
なるんです。組立部品だったら階層を下げてその子部品を記述、その子部品が組立部品だったら
更に階層を下げてその子部品を記述・・・ という風に入れ子構造の処理をしたいんです。
聞いてるのはVBAでのそういうルーチンの書き方で構造論じゃないんです。
0671名無しさん@そうだ選挙にいこう
垢版 |
2020/11/17(火) 15:48:06.80
親部品名 階層1 階層2 階層3 部品名 
A      1     1    1   あ
A      2    1    1   2の1
A      2    1    1   2の2
A      3    1    1   い
A      3    1    1   う
A      4    1    1   4の1
A      4    1    1   4の2

DBなんだから構造が第一
それで決まる
0672名無しさん@そうだ選挙にいこう
垢版 |
2020/11/17(火) 17:25:26.05
>>671
それだと3階層限定になるから、何階層あるか分からないなら
> 孫部品も子部品も同じ土俵にしとけ
が言われるように全て同じ階層で管理して、親へのリンクを保存する方が良いでしょ
子は複数存在するから親のレコードが選択される場合、参照している子を抽出するってロジックで良いんだと思う

部品名、親部品名
A     -
B     A
C     B
D     B

これだと
Aの子はBで孫はCとDという風に管理できる
0673名無しさん@そうだ選挙にいこう
垢版 |
2020/11/17(火) 17:55:39.98
>>671
説明が足りなかったみたいですみません。
マスタは組立部品、単部品、親子関係の3つだけで階層の情報を持ってるわけではないです。
VBAで階層を構成して表を作るのです。

>>672
そうです。そういうやり方です。ただ知りたいことはAの部品展開をVBAでどうやればいいのかということです。
0676名無しさん@そうだ選挙にいこう
垢版 |
2020/11/17(火) 20:20:14.02
>>670
組立部品と単部品での処理分けを持つサブルーチンで処理することになりますね。
仮に部番と部品名だけ記述するとして、サブルーチン内で

1.単部品だったら単純にその部番と部品名を記述する
2.組立部品だったら親の部番と部品名を記述して改行し、子部品マスタを参照、
  一つ目の子部品の部番と部品名を記述。その部品が組立部品だったら
  このサブルーチン自身を呼ぶ(最初のネスト)

ネストされたサブルーチン内で再び上記1か2の処理分けがなされ幾らでもネストされます。
サブルーチンのラベルは Sub TENKAI(n) などとしてネストする際に変数nに+1して呼べば
いいでしょう。階層表示や階層に応じたインデントが必要でもnを使って出来ますね。

要は処理分けするサブルーチンの中から自身のサブルーチンを呼び出すという
やり方がミソです。
0678名無しさん@そうだ選挙にいこう
垢版 |
2020/11/18(水) 01:34:03.29
>>673
表示するならネストしたサブフォームを作るだけでVBAなんか必要ないんじゃないの?
再帰的にサブフォームが同じサブフォームを呼び出すだけじゃないかな
以前やったような気がするよ
組立部品と単部品すら分ける必要はない
表にするってデータシート形式に表示するではなく、通常のテーブル構造に展開したいってこと?
Accessじゃあまりやったことないから実績ないけど、SQLServerならSQL文だけでもかけたような気がする
作った表は何に使うの?
見せるだけなら再帰的なフォームの方がPC画面上で畳めて便利なような気がする
リレーション作ってあれば、Accessのテーブル表示でも階層表示したかもしれないね
0679名無しさん@そうだ選挙にいこう
垢版 |
2020/11/18(水) 09:31:13.54
>>667,670,673です。昨日は18時で退社したため返信遅くなりました。

>>676
なるほど!サブルーチンからそのサブルーチンを呼べるのですね。知りませんでした目から鱗です!
それなら最小限のプロシージャで際限なく処理出来ちゃいますね!早速やってみます。ありがとうございました。

>>677
おお素晴らしい!サンプルまでありがとうございます!カイル懐かしいw
作業テーブル勿論大ありです!展開した表は画面上の表示だけでなくEXCELにもエクスポートしたいので、データソースとしてテーブルに出力しておかないと使い回しが効かないですもんね

>>678
サブフォームでも再帰的な表示が出来るのですか?
やりたいことは部品構成一覧表を作りたいのでテーブルに出力ですね。それをデータシートビューでもフォームビューでも実用的な形で表示させます。リレーションは組立部品マスタの図番と親子関係マスタの親図番ですね。その他はクエリで自由に組むつもりです。DBはACCESS以外は未経験なのでACCESSでやろうとしてます。
0681名無しさん@そうだ選挙にいこう
垢版 |
2020/11/18(水) 16:16:35.58
>>679です。

>>680
おや、そんなソフトがあったんですね。
BOMVERとは、そのものズバリかも知れません。良さそうなので試してみます。
ありがとうございます。
0682【B:99 W:65 H:85 (F cup) 146 cm】
垢版 |
2020/11/18(水) 18:13:05.82
   ∩,,∩
  (;`・ω・) 今夜は得々満ぷく弁当なの 定価のまんま
  (つ=。;;・。-、 税別398円なの 普通に幕の内なの
  (´ ヽニニフ ) 言うほど満腹でもないの パンもあるの
  [i======i] >>238 やっぱり一定量寝れば目が覚めちゃうの
>>240 今夜も8時くらいに寝ちゃうかな、起きてられないねん
>>255 無職でその自信に満ちた脳天気はどこから来るね?w
0695名無しさん@そうだ選挙にいこう
垢版 |
2020/11/29(日) 21:44:55.31
Access2010+Win10
バグ見つけたんだけど最新のAccessで治ってるかな?
乗り換えたい

'F5キー押してからESCキー連打
Public Sub TestSub()
  Dim lngStart As Long
  lngStart = Timer
  Do While Timer < lngStart + 5
  Loop
  Dim rs As DAO.Recordset
  Set rs = CurrentDb().OpenRecordset("SELECT * FROM 件数多いテーブル ORDER BY インデックス無しフィールド")
End Sub

・ESCキーに反応して「3059 ユーザーによって処理が中止されました User has canceled the operation」
・Ctrl+Breakの「コードの実行が中断されました」とは別物
・Accessにフォーカス無くても反応してしまう
・オプションのショートカットキー無効でもダメ
・DAO 3.6でもダメ

Cancel Key Breaks Out Of Code | Access World Forums
https://www.access-programmers.co.uk/forums/threads/cancel-key-breaks-out-of-code.151372/

BUG in Access 2007: <Esc> raises run-time error 3059
https://social.msdn.microsoft.com/Forums/ja-JP/bb573ad0-7cac-499e-afc9-f9d2ab19cb76/bug-in-access-2007-ltescgt-raises-runtime-error-3059?forum=accessdev
0698名無しさん@そうだ選挙にいこう
垢版 |
2020/12/02(水) 18:03:53.29
>>690
全体的に意味わからないんだよね
デザインビューでは単票表示なのにフォームビューにいくと帳票になるとか

何かのはずみでサブフォームが単票表示になるんだけど
そうなると、サブフォーム右クリック→データシート
にしないと帳票にならない
再度開くとまた戻ってるし

どう開発したらこんなわけわからん設計になるんだろう
0700名無しさん@そうだ選挙にいこう
垢版 |
2020/12/02(水) 18:11:18.02
>>698
俺はExcelで全部やるようにした
ACCESSにはデータいれとくだけ

ACCESSはプロパティ見にくすぎるんだよな

そもそもサブフォームって見出し行とかの見た目いじれないし
0701名無しさん@そうだ選挙にいこう
垢版 |
2020/12/02(水) 20:11:14.84
>>698
意味分らないのは勉強不足だろw サブフォームを帳票形式で表示したいなら
サブフォームのプロパティで既定のビューを帳票フォームにしておき
サブフォームのデザインビューで詳細セクションには横一列に一レコード分の
表示させたいフィールドを望むオブジェクトで並べれば良いだけだが

>>700
見出しの見た目はフォームヘッダのデザインで弄れるだろ
0704名無しさん@そうだ選挙にいこう
垢版 |
2020/12/03(木) 08:26:56.90
>>698
>>そうなると、サブフォーム右クリック→データシートにしないと帳票にならない

意味不明だな
単に帳票フォームの存在を知らないだけでは?
0707名無しさん@そうだ選挙にいこう
垢版 |
2020/12/03(木) 15:54:04.66
>>706
威張るなボケ!やっぱり操作方法しら不勉強じゃねえか
メインフォームからサブフォームを洗濯した(その画のようにオレンジの枠線で囲われてる)状態では
メインフォームにとってのサブフォームの扱いに関するプロパティが表示される

メインだろうがサブだろうがフォームの左上の□をクリックして初めてそのフォーム自身のプロパティを
表示するのだ

お前は出禁だ。10年勉強してから来い
0715名無しさん@そうだ選挙にいこう
垢版 |
2020/12/03(木) 20:01:03.81
>>713
クリック前のポインタが何処にあるかで挙動は異なるぞ
メインフォームがアクティブな時は1度目のクリックでサブフォームにポインタが移るだけ(上のオレンジで囲われた状態)
その後もう一度クリックすればマーカーが付く(サブフォームがアクティブ化する)だろ
機密事項なんでssは見せられん

>>714
何を甘っちょろいこと言っておる!ここは5chだぞ?それくらい覚悟して来い
0721名無しさん@そうだ選挙にいこう
垢版 |
2020/12/04(金) 01:18:24.56
大抵おしえてくれないからな
どんな教え方であれ解説するまで教えてくれるのはありがたい

偉そうなこと言って一切教えない、もしくは本人も知らないみたいのが邪魔ですね
0727名無しさん@そうだ選挙にいこう
垢版 |
2020/12/04(金) 16:14:44.36
>>724
見た目が古臭過ぎる、というのも
ああプロ用のソフトなんだな、って手を付けるやつが減ってそう
フォトショップやプレミアなんかは見た目使いやすそうですごい、という前評判あるからオーバースペックで不必要なやつまで使ってそうなイメージ
0730名無しさん@そうだ選挙にいこう
垢版 |
2020/12/04(金) 18:17:03.47
ふつうは独自の使用法を編み出すわけじゃないから検索で十分だろ
人の手を煩わせないだけ自分で検索できるほうが立派
0734名無しさん@そうだ選挙にいこう
垢版 |
2020/12/10(木) 01:14:10.71
ACCESSって先の太さのあんまり選択肢ないですよね
どうしてもぶっといかヘアラインの二者択一になる
ヘアラインなんてモノクロレーザーじゃほぼだせないし
よわったなあ
VBAで書くというのもあるけどレポート出力時だし
エクセルで枠線引くように自由にはできないからなあ
レコードやヘッダーなどのすき間の兼ね合いで
列ごとに先の太さのズレたりするし
みんなどうやってるんですか?
0736名無しさん@そうだ選挙にいこう
垢版 |
2020/12/10(木) 05:05:12.91
他には、行の背景を一行おきに塗り潰す機能あるじゃないですか。あれを使うのもおすすめです。罫線を使わなくても見やすくなります。
0737名無しさん@そうだ選挙にいこう
垢版 |
2020/12/15(火) 13:31:55.07
      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < 不正選挙の証拠まだ〜?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       |  愛媛みかん |/
0738名無しさん@そうだ選挙にいこう
垢版 |
2020/12/21(月) 11:39:39.89
windows10のupdateが原因だと思うけどコンボボックスの自動拡張機能が使えなくなってる。google IMEだと問題なくてMicrosoftIMEだと使えなくなる。日本語IMEの設定→全般→以前のバージョンを使うをオンにしたらMicrosoftIMEでも使える様になる
0741名無しさん@そうだ選挙にいこう
垢版 |
2020/12/24(木) 23:51:36.34
【Windows】 10 【Access】 365
【作りたいものの業務分野】
決裁書台帳
【あなたのスキル】
LV1:完全初心者,
【どのオブジェクトに関する質問か】
フォーム,レポート,サブフォーム(サブレポート)
【やりたいこと】
1.ID込みで40項目のフォームを作成したいのですが、ラベルの下にテキストボックスを設けたいのですが、フォームウィザードの編集ではできませんでしたとなります。ノースウィンドではできるのですが。ボックスは管理番号(半角英数字)、工事名、人名、数値、日付です。
2,検索フォーム。工事名で検索。
エクセルで入力フォーム造るよりアクセスの方が早かったのですが。
項目が増えたらできなくなりました。
ご教示願いますが
0743名無しさん@そうだ選挙にいこう
垢版 |
2020/12/25(金) 11:08:25.09
You Like の時点で(笑)
0744名無しさん@そうだ選挙にいこう
垢版 |
2020/12/28(月) 12:49:50.46
>>741
初めて聞きました。
前レス見ても最近、変な挙動が多いかもしれませんね。
一旦、挙動不審を無視するとして
ラベルとテキストの一括作成後の
ラベルの配置移動はラベルの左端あたりをつまんで
カーソルが上下左右矢印になったら、つまむように動かします。
(全てのオブジェクトは詳細エリアに配置されているものとします。
また、レイアウト機能でまとめられていないものとします)
0745名無しさん@そうだ選挙にいこう
垢版 |
2020/12/28(月) 12:56:56.00
>>741
2は別の質問か。
工事名を対象とした絞り込みなので、40カラム程度なり、1万データなりでも、不具合は出ないはずですが。
コンボボックスのウィザード機能で作ったものですか。
コードを自作したものですか。
工事名にワイルドカードを示す文字「*」「?」などは使われていませんか?(たぶん問題ないけど、ないほうがいい)
0746741
垢版 |
2021/01/05(火) 12:55:25.77
>>744
>>745
ありがとうございます。フォームができないのはレイアウトを削除して解決しました。検索はコマンドボタンウィザードです。
0747名無しさん@そうだ選挙にいこう
垢版 |
2021/01/06(水) 01:56:32.61
レコードの更新履歴を取りたいので
レコードを削除せずに複製して
リビジョンカウントを増やそうと思っています
そこで最新のレコード(リビジョンカウントが最大のもの)のみの一覧をだすにはどう書けばいいでしょうか?
0748名無しさん@そうだ選挙にいこう
垢版 |
2021/01/06(水) 08:17:03.30
ある選択クエリに、3つだけ追加したいデータがあります
クエリの項目は全て持っているのですが元のテーブルの項目は欠けているものがあるため、元のテーブルには追加したくありません
別のテーブルを作ってもいいのですが、テーブル一覧表示したときに邪魔なので、できればテーブルを使わずにSQLの中に記載したいのですが、どのようにすればいいか教えてください
0751名無しさん@そうだ選挙にいこう
垢版 |
2021/01/06(水) 08:29:23.95
同じ項目のテーブル1と2からまとめてデータを抽出するにはselect * from table1, table2ではだめなんですか?
どうすればいいんでしょうか
0753名無しさん@そうだ選挙にいこう
垢版 |
2021/01/06(水) 11:16:09.76
>>748
単に行データにちょっとした計算や、文字足し、判断をいれたい場合は
クエリデザインで
新カラム名:[column1]*1.1とか
新カラム名:[column1]&"様"とか
新カラム名:iif([column1]>1,0,1)
でいい。
新カラム名のあと=必要だったか忘れた。
0754名無しさん@そうだ選挙にいこう
垢版 |
2021/01/06(水) 12:35:43.86
>>753
データをいじるのではなく、別のデータを追加したいんです
1000個のリストに3つ追加して1003個にしたい
だけど3個のテーブルを別に用意するのも邪魔なので、SQL文にそのデータを書き込んで追加させたいということです
選択クエリで1000個選んでおまけの文で3個追加
0755名無しさん@そうだ選挙にいこう
垢版 |
2021/01/06(水) 17:59:33.26
>>754
accessオブシェクトの名称の呼び方に揺らぎがあり、
やりたいことがうまく伝わりません。
クエリーの実体は単なるsql文(コマンド)を保存してるだけ、という基礎知識はok?
クエリーというオブジェクトにデータを保管することはできません。

たぶん、1対多の関連性もつテーブルを作って、希望のカラム3個を設置し、クエリーで2つのテーブルの全カラムを表示すればいいよ。

↑「これはしたくありません」の
レスつけられたら、私にはお手上げです。
0757名無しさん@そうだ選挙にいこう
垢版 |
2021/01/06(水) 18:30:45.89
>>756
そうです
それで、t2の部分をSQL文の中に入れることはできないかということです
レコードが3つで今後追加や変更することはないので
■ このスレッドは過去ログ倉庫に格納されています

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