X



Access総合相談所 28

■ このスレッドは過去ログ倉庫に格納されています
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/
0342名無しさん@そうだ選挙にいこう
垢版 |
2019/01/12(土) 14:55:16.72
みんなaccdbにしないんだなw
0353名無しさん@そうだ選挙にいこう
垢版 |
2019/01/16(水) 14:35:58.61
>>352
そうですかw 以後、気をつけます。
ところでvbsで書き込みしているんですけど、遅くて困っています。
jscriptとかPowerShellとかC言語やらC++の方が速いんですかね?
0355名無しさん@そうだ選挙にいこう
垢版 |
2019/01/16(水) 21:33:47.80
>>354
すみません
測っていません
体感で遅いなあと感じだけです.
一般論としてはC++が最速なんでしょうか?
どっかのサイトではjscriptはvbsより20倍速いというのを読んだことがありますが…
0359名無しさん@そうだ選挙にいこう
垢版 |
2019/01/17(木) 13:42:21.55
>>358
ここは基本的に技術交流の場ですので
かまってちゃんは遠慮してください。
通常業務とは、それが結果的に利益を生むということです。
expressは基本的に開発テスト環境用途、あるいはAndroidで実装されてるSqliteのような一時保管DB用途を想定しています。
有償版と比べて機能的ロックを殆どかけていませんが、
本来はwindow server代と合わせて5calで50万円くらいの
製品のお試し版、という認識は持ってください。
0362359
垢版 |
2019/01/17(木) 19:01:46.10
申し訳ございません。私の勉強不足でした。
商用利用は規約違反になりません。
ソフトウェアとの抱き合わせで配布することも可能です。
windows homeやproでサービスとして公開(共有)することは禁止らしい。
なので、WindowsServerでcalも買って
expressを入れるというコスパ良いんだか悪いんだかわからない使い方なら
規約違反にならないっぽいです。
MSAccessデータベースの共有が認められてるのは、「ファイルの共有」だかららしい。
0365名無しさん@そうだ選挙にいこう
垢版 |
2019/01/17(木) 23:27:24.12
>>347
maria dbって最近のよく聞くが何がいいの?
0367名無しさん@そうだ選挙にいこう
垢版 |
2019/01/18(金) 00:00:42.55
>>366
ポスグレのがいいじゃんそれだと。枯れてるし
0370名無しさん@そうだ選挙にいこう
垢版 |
2019/01/19(土) 01:39:14.86
>>368
どちらのほうが永続的に使えそうですか?
0371名無しさん@そうだ選挙にいこう
垢版 |
2019/01/19(土) 17:26:27.78
>>370
確実なのはPostgreSQL
全くのフリー(BSDライセンス)
MariaDBはGPL2ライセンスゆえ著作権違反で訴える権利をMariaDB側が持ってる

ライセンス基準が違う
0373名無しさん@そうだ選挙にいこう
垢版 |
2019/01/19(土) 21:23:13.29
SQL ServerはODBCドライバーがWindowsに標準で入っているからいいんだけど
他のDB使ってる人は各クライアントのドライバーのインストールどうやってるの?
0374名無しさん@そうだ選挙にいこう
垢版 |
2019/01/20(日) 14:05:09.10
>>371
みんなポスグレ使おうよ、ノウハウ共有して貯めよ
でも、広まり過ぎると仕事なくなるしな
0375名無しさん@そうだ選挙にいこう
垢版 |
2019/01/20(日) 14:06:45.68
リレーションとexcelのvlookupって結果は似てても
技術的にはどう違うものなの?アルゴリズムとか
0379名無しさん@そうだ選挙にいこう
垢版 |
2019/01/21(月) 12:26:42.18
>>378
ネスティッドループなら同じだろ
0380名無しさん@そうだ選挙にいこう
垢版 |
2019/01/21(月) 20:07:35.06
>>376-377
それを担当者がインストールしてまわるのか
または各ユーザーに自分でインストールしてもらうのか
それとももっといい方法があるのかな

アップデートも面倒みなきゃならんよね
0382名無しさん@そうだ選挙にいこう
垢版 |
2019/01/22(火) 06:30:53.32
ユーザーごとの権限管理ってどうやるの?
VBAで実装すればできるんだろうけど、標準機能だとどうなのか

そもそもmdbやaccdb自体にセキュリティとかあるのか知らないけど
0383名無しさん@そうだ選挙にいこう
垢版 |
2019/01/22(火) 12:28:34.60
>>382
ファイルなんだからふぁいるの権限設定じゃだめなの?
0384名無しさん@そうだ選挙にいこう
垢版 |
2019/01/22(火) 15:35:16.91
Access2013 vbaで作業しています。
フォームに、
・A,B,C,...といった入力項目
・cmd1, cmd2, cmd3,...といったボタン
があります。
cmd1, cmd2, cmd3,...が押された時に、A,B,C,...に値が入力されているかチェックするために、
(Aは4桁の数値、Bはまた別の条件...)
Private Sub cmd1_Click()
If IsNull(Me.A) = True Or Len(Me.A) <> 4 Then
MsgBox ("Aを入力してください")
Me.A.SetFocus
Me.A.Dropdown
Exit Sub
End If
'Bについてもチェック
End Sub
のようにしていましたが、cmd1, cmd2, ...でコードの重複を避けるためにどのように書くのが良いでしょうか?
チェックする組み合わせはAとBだったりAとCだったりします。
0385384
垢版 |
2019/01/22(火) 15:42:30.26
とりあえず、いまは、
Private Function check_A() As Boolean
check_A = True
If IsNull(Me.A) = True Or Len(Me.A) <> 4 Then
MsgBox ("Aを入力してください")
Me.A.SetFocus
Me.A.Dropdown
check_A = False
End If
End Function

Private Sub cmd1_Click()
If Not check_A Then
Exit Sub
End If
'Bも同様にチェック
End Sub
のように関数の戻り値を使って対処しています。
0386名無しさん@そうだ選挙にいこう
垢版 |
2019/01/22(火) 16:11:52.62
その3つ(以上)のボタンの仕事は、入力内容をチェックしてエラーだったらMsgBoxを出す、それだけなんですか?
それぞれのボタンで、チェックする入力項目(TextBoxなど)が異なると?
0387384
垢版 |
2019/01/22(火) 16:38:03.72
>>386
例として簡略化しているだけで、
cmd1: A,Bの値を使った処理1
cmd2: Bの値を使った処理2
cmd3: AとCの値を使った処理3
のようにメインの処理はそれぞれ別にあります。値チェック部はAかBかCか...以外は共通しており、
値チェックが通らなかった場合、メインの処理に入る前にexitする点も共通です。
理想としては、
Private Sub cmd1_Click()
check_A
check_B
AとBを使った処理
End Sub
だけで、ダメな値の場合にcmd1_Clickをexitしてくれればいいんですけど。
0390名無しさん@そうだ選挙にいこう
垢版 |
2019/01/23(水) 00:10:42.84
>>387
そこまでできてるならあと一息なのでは?
私だったら、各不備はcheck functionの中にmsgbox仕込んで
あとはclick procedureのほうで
checkA+checkB<>-2 ならやめる、と書くけど。
booleanといってもしょせん、true値-1、false値0の
数値なので。
0392名無しさん@そうだ選挙にいこう
垢版 |
2019/02/06(水) 18:33:34.46
フォーム上に配置した複数選択コンボボックスにおいて、ドロップダウンリスト内の並びは
「値集合ソース」にてSQL記述で任意のキーに応じた並びにできているのですが、
複数選択して閉じてリストが消えた後のコンボボックス内の選択データが
テーブルの並び(データ作成順)になってしまいます。
これも任意の並びにするにはどうすればいいでしょうか?
0393名無しさん@そうだ選挙にいこう
垢版 |
2019/02/06(水) 20:11:43.37
>>392
どうすれば良いかはわかりません
コンボボックスで複数選択可能は知りませんでした
明日やってみてヒントにでもなるようなことがわかればレスします
0405名無しさん@そうだ選挙にいこう
垢版 |
2019/02/09(土) 06:32:40.82
>>404
PowerAppsに移行するものだと思ってました
情報ないので手がついてませんが
Access365?でWebアプリ作成が作成出来なくなってるみたいですしOffice 365環境の社内アプリ的なものはやはりPowerAppsなのでは?
0411名無しさん@そうだ選挙にいこう
垢版 |
2019/02/13(水) 02:48:26.57
ブラウザアプリを1から作るのって、頭禿げるよ。
ボタン一つ、テキストボックス一つ置くのも全部手打ちだし、
CSSで体裁整えなきゃならんし、
データベースのサーバードメインとウェブページの置場が
異なるときにcors制限をどう克服するか、というのもあるし。
0412名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 16:20:44.27
Access初心者です。教えてください。
下記のようなテーブルがあります。

【地域テーブル】
 地域コード、地域

【都道府県テーブル】
都道府県コード、都道府県名、地域コード

【市区町村テーブル】
市区町村コード、市区町村名、市区町村カナ、都道府県コード

【地区テーブル】
郵便番号、地区名、地区名カナ、市区町村コード

【顧客テーブル】
顧客ID、顧客名、地域名、都道府県名、市区町村名、地区名

フォーム顧客登録(分割フォーム)で顧客ID、顧客名を手入力。
地域名、都道府県名、市区町村名、地区名はコンボボックスで絞り込み選択するまではネットを参考に出来ました。
分割フォームのコンボボックスで地域や都道府県名などを選択すると先に入力したレコード(コンボックスで選択されたもの)が消えます。
顧客テーブルを確認するとコンボボックスで選択したものは各IDが入力されています。
分割フォームと顧客テーブルで地域名などを表示するにはどうしたら良いのでしょうか?
0413名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 16:21:02.51
【コンボボックス:地域名】
列数 2
列幅 0cm;8cm
コントロールソース 地域名
値集合ソース 地域テーブル
値集合タイプ テーブル/クリエ
連結列 1
更新後処理 Private Sub 地域名_AfterUpdate()
      Me!都道府県名.Requery
      End Sub

【コンボボックス:都道府県名】
列数 2
列幅 0cm;8cm
コントロールソース 都道府県名
値集合ソース SELECT 都道府県テーブル.都道府県コード, 都道府県テーブル.都道府県名, 都道府県テーブル.地域コード FROM 都道府県テーブル WHERE (((都道府県テーブル.地域コード)=[Forms]![F_顧客登録]![地域名]));
値集合タイプ テーブル/クリエ
連結列 1
更新後処理 Private Sub 都道府県名_AfterUpdate()
      Me!市区町村名.Requery
      End Sub

【コンボボックス:市区町村名】
列数 2
列幅 0cm;8cm
コントロールソース 市区町村名
値集合ソース SELECT 市区町村テーブル.市区町村コード, 市区町村テーブル.市区町村名, 市区町村テーブル.市区町村カナ, 市区町村テーブル.都道府県コード FROM 市区町村テーブル WHERE (((市区町村テーブル.都道府県コード)=[Forms]![F_顧客登録]![都道府県名]));
値集合タイプ テーブル/クリエ
連結列 1
更新後処理 Private Sub 市区町村名_AfterUpdate()
      Me!地区名.Requery
      End Sub

【コンボボックス:地区名】
列数 2
列幅 0cm;8cm
コントロールソース 地区名
値集合ソース SELECT 地区テーブル.郵便番号, 地区テーブル.地区名, 地区テーブル.地区名カナ, 地区テーブル.市区町村コード FROM 地区テーブル WHERE (((地区テーブル.市区町村コード)=[Forms]![F_顧客登録]![市区町村名]));
値集合タイプ テーブル/クリエ
連結列 1
0414名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 17:54:50.29
丁寧な質問の仕方ですな。
ぱっと見ですけど、顧客テーブルに格納するのは、
「コード」なのか「名」なのかの錯綜を感じます。

段階的絞り込みのコードは問題なし。
一般的には、「地域名」のスナップショット的な
保存性を重視しないのであれば
顧客テーブルは、顧客ID、地域ID、都道府県コード 以下 類似。
これをクエリー作成画面で各マスターとのリレーションを張って、
地域名なども表示するクエリーを作成、
フォームのデータソースにこのクエリーを指定する。
 フォームは、やや冗長的でも「コード」のフィールドと、
連動する「名」のフィールドを配置する。
 逆に「地域”名”」だけ保存出ればいいのであれば、連結列2にします。
値集合ソースのSQLは、

WHERE 都道府県テーブル.地域名=[Me]![地域名]

としても、今時のPCで動作が重いということはないでしょう。
0415名無しさん@そうだ選挙にいこう
垢版 |
2019/02/25(月) 15:29:25.69
>>414さん
ご返答ありがとうございます。
>ぱっと見ですけど、顧客テーブルに格納するのは、「コード」なのか「名」なのかの錯綜を感じます。
ご指摘通り初めてのAccess、初めてのDBで戸惑っておりイマイチ頭の中が整理できていないかもしれません。

クエリーまだ理解しておりませんので勉強してご教授頂いた通りやってみます。
ありがとうございます。
0416名無しさん@そうだ選挙にいこう
垢版 |
2019/02/25(月) 20:02:46.84
Accessはいかにクエリーを使いこなすか、になる
VBプログラマがAccess使う案件に関わるとクエリーが存在しないのでおかしいなと思ったら全てVBAでデータ加工されててAccess自体がVB EXE状態になってて解析するだけで一苦労だった思い出
仕様書にVBAの仕様ぐらい付けとけ、と言いたくなった思い出
0417名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 00:19:57.87
それってVBA内にSQLそのものを記述してた ってことだろ?
そっちのが判り易くね?
標準モジュールで Public Function RunSQLcommand( とか宣言しといて
それぞれのフォームやレポート内のVBAで Call RunSQLcommand( って呼び出す奴
その直下にSQL書くだけだもの 行ったり来たりしない分余程楽じゃね?

テーブルとそのVBAをまるごと出力するだけで、移行先の連中にしてみてもそっちのが解析が百倍は楽
0418名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 06:41:27.30
>>416
Access はクエリやレポートなどのオブジェクト数に上限があります
オブジェクト数が多いと accdb が重くなったり accde が作れなくなる事があります
だからコード上に直接クエリ(SQL)を書く開発者は多いです
逆にクエリで保存するメリットはクエリがコンパイル済みになり実行速度が上がります
このあたりを考慮しながら使い分けると良いですよ
0419名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 06:49:00.48
レガシーコードをリファクタリングしたとき、VBA外での使用箇所探すのに苦労したから、
クエリはプロトタイプ限定でしか使わず、accessで納品の場合はVBAのみにしてる。
0420名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 16:50:28.78
>>418
>>実行速度
これに関して速度遅いと文句言われる場合、クエリーにせざるを得ない
Windows2000+Office2000とかで開発してた時は文句言われぱなしだった
今はハードが速くなってVBAでも大きな問題無くなってるけど
0422名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 21:19:56.90
素人が素人の範囲で完結するならVBA無しでもOKでしょ
All or NothingでVBA有りきで作ったならVBAの仕様も書類上載せて作れば良い
仕様書上にないVBA使われてる場合が困る
0423名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 18:05:11.39
見易い・理解し易い仕様書にお目に掛ったことは無いけど
自分で解析した方が早くね?
仕様書がお粗末だって嘆いてる時間がムダ
0427名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 22:09:49.66
そりゃ、規模からいえば零細でしょ(失礼、今は小規模企業というのか) 中小の規模すら満たさない 
けれども、そんな零細(小規模企業)が世の中支えてるのも現実
零細(小規模企業)がいなくなったら中小も大手も立ち行かなくなる、生き永らえない

だけど、零細(小規模企業)は中小から有ること無いこと押し付けられて特殊な集計とか
しなきゃならない 畢竟市販のアプリじゃ対応できない
そおゆうトコにAccessの出番を見出すんじゃ?
単価が合えばSler辺りに任せられるけど、とてもとても  って規模が対象でしょ

裾野、広いよー 件数で稼ぐのがAccess  って棲み分けだと思うんだが
0428テスト
垢版 |
2019/02/28(木) 12:43:42.60
TEST
0429名無しさん@そうだ選挙にいこう
垢版 |
2019/02/28(木) 14:19:38.99
君たちパッタリ書き込みなくなったり急にスレ伸びたり、おもしろいな。

sqlの特に条件句に動的要素があればadoでいくつかの手順組んでおいて
>>417
みたいに実行するほうが、ラクな時もあるね。
あと、フィールドが30以上あるやつの転記も。

2要素程度のパラメータークエリーだったら、クエリー保存して
queryオブジェクト使ってパラメーター埋めるけど。
0430名無しさん@そうだ選挙にいこう
垢版 |
2019/02/28(木) 19:37:23.75
ちょっと何言ってるか分からない w

ado でいくつかの手順組む?
2要素程度の・・だったらクエリー・・(ry ?
無理してカキコしなくともロムってりゃいいのに

君たち じゃなくて、あんたがおもしろいわ
0434名無しさん@そうだ選挙にいこう
垢版 |
2019/03/01(金) 14:59:46.14
今はAccess選ぶかFileMaker選ぶか、だろ
Accessはデータベースと言うより帳票ツールが主な用途だし、零細企業のDBならFileMakerで良い(ライセンス料金ボッタくりだが)
■ このスレッドは過去ログ倉庫に格納されています

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