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/
0321名無しさん@そうだ選挙にいこう
垢版 |
2019/01/05(土) 19:22:47.87
7歳YouTuberが1年で25億円の収入 おもちゃレビュー動画が人気
http://mogumogunews.com/2018/12/topic_24722/
【登録約8000人】思ってたよりYouTube儲かる件
https://www.youtube.com/watch?v=1C5Wuw8sZnI
【初任給】YouTubeを始めて初めていただいた月収はこちらです!広告収入って一体いくらなの?
https://www.youtube.com/watch?v=xpS27gElY0A
YouTubeって儲かるの?収益化審査通過!Googleアドセンス初入金のご報告。
https://www.youtube.com/watch?v=MUhXdi4ipFk&;t=613s
1再生「0.1円」は全部嘘です。登録者7万人の広告収入で生活できる?
https://www.youtube.com/watch?v=zNpPgzTSigI&;t=118s
YouTuber最新給料事情|vol.093
https://www.youtube.com/watch?v=XwT5qla4_Iw
シバターがヒカルとラファエルの収入を暴露
https://www.youtube.com/watch?v=eHn41HlXe1g&;t=10s
【20万人目前】アディ男月収いい波乗ってんの?
https://www.youtube.com/watch?v=m0GXxtNOgsw
0322315
垢版 |
2019/01/05(土) 22:12:08.64
>>316-318
アドバイスありがとうございます
いまはSpreadsheetTypeの引数を省略してたら2016がフリーズです
色々やってたらExcelが起動しなくなってヒリヒリしてます
0323名無しさん@そうだ選挙にいこう
垢版 |
2019/01/06(日) 00:53:23.10
>>316
よく見たらうちもvp1900ではまったわ。
連続紙15inchと1/2 用紙登録番号が
pcによって変わるらしいので
来週は用紙名から番号をシークしてレポートに埋め直すプロシージャを追加する予定。
そのくらい自分でページ設定でやってくれよ、と思うのだが
やり方を何回教えても覚えてくれない泣
0327名無しさん@そうだ選挙にいこう
垢版 |
2019/01/07(月) 18:36:32.09
windows updateでexcelの新元号対応を仕込んだらしいが、
案の定バグってexcel起動不可にしてやんの
accessも注意が必要だな
0329名無しさん@そうだ選挙にいこう
垢版 |
2019/01/09(水) 12:42:37.52
>>327
KB4461614
今日のアプデこいつあてると
カレンダーコントロール日付自動判定で落ちるぞ
これの元号対応の2018年11月にあったのと同じ現象
0330名無しさん@そうだ選挙にいこう
垢版 |
2019/01/09(水) 20:35:49.56
会社で1台だけexcel2010で置いてけぼりのがあって、何やってもダメ。
ググったら早速ブログにあげてくれた人のおかげで救われたわ。
日米で深刻な経済戦争になったら
アメリカはその気になれば日本の多くのpcを壊すことができるんだなあ、と思った。
0332名無しさん@そうだ選挙にいこう
垢版 |
2019/01/10(木) 18:06:29.15
先月まで順調に動いていたプロシジャーが「OSが対応していません」とかエラーを吐くようになった。
MSのせいかもな。自動アップデートは本当に止めて欲しいわ。
0337名無しさん@そうだ選挙にいこう
垢版 |
2019/01/11(金) 19:45:10.61
>>336

>>実行時エラー'-2147467259(80004005)':
>>選択されたCollatingSequenceはOSでサポートされていません

です。CSVを読み込んで、mdbのテーブルに書き込むという作業で発生しています。
検索すると多少ヒットして、その中の解決策を試みているうちに、
当方ではファイル→オプション→なにも設定を変更しないでOKボタン押下
で解決します。設定が読み込まれていないので手動で読み込ませているような挙動です。
0338名無しさん@そうだ選挙にいこう
垢版 |
2019/01/11(金) 22:37:44.18
>>337
検索したら結構前から出ているエラーのようですね。
mdbを維持するのはそろそろ無理があるかも。(といっても、vb6でビルドしたソフトウェアの
ローカルDBファイルとして使われてるケースが意外と多いようですが)
0339名無しさん@そうだ選挙にいこう
垢版 |
2019/01/11(金) 22:49:43.04
>>338
毎月お金を支払っている業務用ソフトで毎年バージョンアップされていますので、どうにもなりません。
うちの環境で突然出現したのは例によってofficeのアップデートをしてからです。
これからは自動アップデートはoffにします。じつはその業務ソフトの開発元も自動アップデートはoffにするように推奨しています。
MSにはいつもながら頭に来ますね。リボンは今でも腹が立ちます。
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でも大きな問題無くなってるけど
■ このスレッドは過去ログ倉庫に格納されています

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