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/
0002名無しさん@そうだ選挙にいこう
垢版 |
2018/09/04(火) 11:44:55.19
バージョン:オフィス365

アクセスの初心者です。
今まで社員登録、給与業務の検算、集計などをエクセルで行ってきまいたが、ファイルが重くなったのと他の職員との関わりからアクセスに取り組んでいます。
毎月、最新の人事、給与データなどをエクセルにエクスポートして計算していこうか考えていますが、壁にぶち当たりまくってます。

今のところ、複数のテーブルにデータを入力してリレーションシップをつなげています。
テーブル?;社員ID
テーブルA:氏名、住所、入職年月日他
テーブルB:給与データなど
テーブルC:社保情報など
これをもとにフォームを作成して新規職員の入力、情報の変更をしていきたいと思うのですが、それぞれテーブルごとフォームを作成するとIDしか表示されないフォームとなっていまい困っています。
どのフォームにおいてもID氏名を表示させるにはどうしたらよいでしょうか。
0004名無しさん@そうだ選挙にいこう
垢版 |
2018/09/04(火) 12:47:43.31
>>3
新規入力→追加クエリ
訂正など→更新クエリ
こんな感じでクエリを作成して社員管理していくのがいいでしょうか。

やはりVBA使えないとダメですね。見直します。
0005名無しさん@そうだ選挙にいこう
垢版 |
2018/09/04(火) 13:03:27.18
社員何名か知らんけど 300人以内ならアマノのタイムレコーダーにしとけ
勤怠管理ソフト付きで八万で済む 事務員の給与半月分 1/3か?
その勤怠ソフトはデータベースにmdb使ってるけど
https://nihonkiki.com/products/detail.php?product_id=1561&;gclid=EAIaIQobChMIiayc7Lmg3QIViQQqCh0WmANIEAYYAiABEgIIhvD_BwE
慣れない業務で無理からシステム構築しても後日のトラブル頻発の元
0006名無しさん@そうだ選挙にいこう
垢版 |
2018/09/04(火) 20:20:03.70
>>4
んにゃんにゃ、まだvbaの出番ではない。
3で書いてるとおり単純なクエリーを保存してそれをフォームのレコードソースにする。
各テーブルのカラムは社員マスターでは社員idがキー列、
他がidなどの名称で自動符番にしてキー列、さらに社員idをもつ列をもたせる。
実績記録用テーブル全列(社員id結合)社員マスター(必要な列)でクエリー保存。
フォームウィザードとかで単票フォームを生成する。
社員idのとこは手入力かコンボボックス(社員マスター参照)。
これで社員名などが出てくる。
50人以上なら検索専用フォームを作ったほうがいいが、やや難易度高いので今はパス。
社員マスター参照部分は間違って触るとマスターも更新してしまうので、社員名諸々にはプロパティで更新許可を「いいえ」にする。
0007名無しさん@そうだ選挙にいこう
垢版 |
2018/09/06(木) 19:13:03.19
>>6
レスありがとうございます。
すべてつなげてクエリ作成しましたがフィールドが多くなりすぎてしまって単票フォームでは収まりません。
今、考えているのはテーブル1をID+氏名に訂正。
テーブル1+テーブル2で1つ目のクエリ
テーブル1+テーブル3で2つ目のクエリ


タブのフォームにまとめようと思っていますがどうでしょうか。
0008名無しさん@そうだ選挙にいこう
垢版 |
2018/09/07(金) 10:21:23.24
>>7
普通にそんな感じ。
実績用テーブルで社員マスターの参照が必要なのは名前とか、その場その場で必要な基礎情報だけクエリーに含める。
見えやすさの観点からはタブが有効。フォームでは今時のpcならフィールドが50だろうが100だろうが動作に支障はない。
何かの計算の基礎情報で、見せる必要のないフィールドは適当に空いてるところに寄せ集めて「可視」を「いいえ」にする方法もある。
0009名無しさん@そうだ選挙にいこう
垢版 |
2018/09/07(金) 22:36:02.18
【 システム環境 】 Windows7, Access2010

仕事で初めてAccessを使うことになりました。
したい事はVBAでAccessからOracleへのエクスポートです。
OracleはODBC接続です。

DoCmd.TransferDatabase acExport,・・・・・

これでエクスポート自体はできました。
問題なのはAccessのテキスト型がOracleへエクスポートするとvarchar2型になる点です。
Accessのテキスト型は文字数とAccessで表示されるので全角でも1文字数と思います。
しかしOracleのvarchar2だと全角は2バイトになるはずです。

結果、Accessテキスト型10はOracle varchar2(10)にエクスポートしようとするため
全角のみだとOracleのvarchar2(10)に収まらず、エクスポート時にエラーとなってしまいます。
エクスポート時に文字型をVarchar2でなく、NVarchar2にエクスポートする方法はあるのでしょうか?

仕事中は書き込めないのでレスは夜しか出来ませんがご了承ください。
0010名無しさん@そうだ選挙にいこう
垢版 |
2018/09/07(金) 23:15:09.09
>>9 なぜVBA使ったのかわからん。
Access2010という古いバージョンが一因じゃない?
select intoがうまく機能しないんだよたぶん。
自分なら、oracleにテーブル作ってから
odbcでリンク貼って
insert into 文使うけど。クエリー画面で挿入クエリーでもいいし。
0011名無しさん@そうだ選挙にいこう
垢版 |
2018/09/08(土) 01:31:24.95
>>10
簡潔にAccess -> Oracleと記載したんですが、
Accessに入るデータはいろんなシステムの大量データとなります。
SQL Server -> Access -> Oracle
Access -> Access -> Oracle
Excel -> Access -> Oracle
という感じで、Excelだけでも何百というファイルです。

そのため全てのテーブル作成SQLを作るだけでも膨大な作業になるため(特にExcel用)、
Accessのエクスポート機能を使うようにと指示が出てます。
この機能だとOracleにテーブル準備しなくてもエクスポート時に、勝手にテーブル作ってくれるからです。

Access2010は確かに古いので、単に最新のAccessだといける可能性はありそうですね。
稟議はとおって購入できるので、環境できたら試してみます。

情報ありがとうございます。
0012名無しさん@そうだ選挙にいこう
垢版 |
2018/09/08(土) 22:59:20.64
今日、Access2010から2016にして試しました。
が、やはりOracleではvarchar2になってしまい、だめでした。

仕方なくSQL ServerとAccessのデータは構造だけエクスポートし、
create文を生成してvarchar2をnvarchar2に置換え、テーブル作り直し、
テーブルありきでVBAからINSERT INTOする方式にしました。

マイクロソフトに電話したんですが、北海道の地震影響で技術的回答は無理で、
来週問い合わせし直してくださいと言われました。
今日が納期だったので上記の方法で対処したので、この質問は完とします。
0013名無しさん@そうだ選挙にいこう
垢版 |
2018/09/10(月) 01:49:13.76
sqlserverだと公式な関連ツールにmigration toolってのがあるが
oracleにはそういうのなかったっけ?
ソースにexcelも含まれるって、よく今までユーザーが
データ規則を守って入力してきたものだ。普通、どこかの行でコケる。
自分なら
select top 1 into で一旦作る
deleteで空にする
ストアドプロシージャでテーブル名を引数にして
総当たり的に型を変更するalter tableを生成するやつを作っておく
もう一回 insert intoでデータ入れる
ってのをVBAのadoあたりを使ってぶん回すかな。
0014名無しさん@そうだ選挙にいこう
垢版 |
2018/09/14(金) 16:17:56.52
>>12
>>AccessからOracle
早くて確実な方法は
*Oracleであらかじめテーブル領域確保
項目属性はOracleに準じて確保
*AccessからデリミタでCSVファイルでテーブル出力
*そのCSVをOracleへSQLローダーでロード

これが早くて確実
0015名無しさん@そうだ選挙にいこう
垢版 |
2018/09/14(金) 16:35:27.56
>>12
テーブル多いからVBA使うのは理解出来るがテーブル定義がキッチリしないままエクスポートで勝手に決められるので良いかどうか
SQL ServerのテーブルをOracleに移行するのは分かるがAccess、Excelのデータもテーブル化する必要性は不明だな

項目属性がおかしい場合、テーブル定義後から変更すんのか?
指示出したヤツはAccess知らんやろ
0016名無しさん@そうだ選挙にいこう
垢版 |
2018/09/15(土) 17:17:38.94
2010
すみません、現在このフォーム(詳細内)に、日付期間を指定し検索ボタンを押すと入力していたデータがサブフォーム内に表示される簡単な検索画面を作成しました。

この表示されたデータをエクセルに出力したいボタンを作りたいです。

また、その先でそのデータを用いてグラフ化(アクセスのグラフを使えばいいのか、エクセルのグラフ化を使えばいいのかわからない)したいとも思っています。

教えてください。


https://i.imgur.com/xZkQ8KG.jpg
0018名無しさん@そうだ選挙にいこう
垢版 |
2018/09/15(土) 18:33:24.26
ここで聞いて回答待ってる間に自習でどんどん進むぞ
Access Excel Export とかで検索すりゃ、ゴロゴロ
そン中から自分が欲しい・望むカタチをある程度固めてから
質問した方が、よりコアな回答が返ってくるはずだし

その質問だと漠然とし過ぎ
因みにグラフの種類はExcelには叶わない 見た目重視なら尚更
ストアからE2D3入れればより豊富に
0019名無しさん@そうだ選挙にいこう
垢版 |
2018/09/15(土) 19:36:01.99
>>18
コピーペーストのコードが乗っていたので記述し試してみると
そのままエクセルに出力できました。

ここからグラフ化するとなると
エクセル側でボタン等を配置し、マクロを組み込めばいいのでしょうか?
0020名無しさん@そうだ選挙にいこう
垢版 |
2018/09/15(土) 19:36:30.04
>>17
すみません、これは適当に打ち込んでました…お恥ずかしい
0022名無しさん@そうだ選挙にいこう
垢版 |
2018/09/15(土) 21:48:59.59
Excel側は、取り込むSheetとグラフSheetを別にしとけば
Sheetにデータが入った時点でグラフも更新されるだろ  まあ、別じゃなくてもいいけど
サンプルデータで気に入ったグラフの様式を作っとけば
次回からは入ったデータに応じてグラフも可変するわな  マクロ組むまでも無い
0023名無しさん@そうだ選挙にいこう
垢版 |
2018/09/15(土) 22:07:23.28
>>22
なるほど、スレチ?だと思いますが答えていただきありがとうございます。

知識0から始めて、ネットで調べて、全部丸写ししてるようなものなのでこれが勉強になってるのか不安です…みなさんそのようなものなのでしょうか?
0026名無しさん@そうだ選挙にいこう
垢版 |
2018/09/16(日) 18:58:35.21
昨日エクセルへ出力で質問させていただきました。
コピー・ペーストの方法にて、検索結果をエクセルに出力することが出来ました。
コード等は画像を貼り付けておきます。

この状態でほぼ完成だと思って入るのですが、出力したデータを自動的に(半自動的に)グラフ化したいと思っています。

温度であれば、温度差など
項目別にグラフ化できたらなと思っていますが、無理なのでしょうか?

https://i.imgur.com/JTxWUZg.jpg
https://i.imgur.com/J0cWzHK.jpg
https://i.imgur.com/A5zrbT0.jpg
0028名無しさん@そうだ選挙にいこう
垢版 |
2018/09/16(日) 23:04:19.86
コピー・ペーストするから毎回新しい Book を作ってしまう
なんで上の方で Export のアドバイスをされてるのにそっち選ぶかな
まぁ、コピー・ペーストでも CreateObject じゃなきゃいいんだろうけど
最新のだと Office Link ?だともっと楽らしいが
0029名無しさん@そうだ選挙にいこう
垢版 |
2018/09/18(火) 14:04:55.65
自分もexcelにシート分けて出力するvba書いたことあるけど、access vbaに慣れてるとcellsどうのこうのとか、
excel vbaってえらいしんどいよね。
0030名無しさん@そうだ選挙にいこう
垢版 |
2018/09/18(火) 23:10:59.24
Excel2016なら、逆にExcel側からインポートを選んで
ソースはAccess テーブルかクエリを選んで引っ張れる
下手にAccessでVBAで混乱するより、そっちのが百倍楽
0031名無しさん@そうだ選挙にいこう
垢版 |
2018/09/27(木) 15:27:23.01
【 システム環境  】 Windows8.1, Access (Office365を使用)
【 VBAが使えるか 】 はい
【 VBAでの回答  】 可

作成したデータをマクロを使用して帳票印刷しようとしています。
「レポートを開く」のオプションを使って、where条件式で表示する条件を入れようと思っています。
IIF文を使うなどして条件分けしたいのですが、条件式の中に文字列が入りきらず
式が不完全になってしまって動かせません。
既存の改修なのでフォーム名やプロパティ名を変更するのは難しいです。
条件式に入力できる文字数を調整、あるいはプロパティ名などを短縮して
記載する方法はないでしょうか?
0032名無しさん@そうだ選挙にいこう
垢版 |
2018/09/27(木) 19:57:42.12
既存の改修ったってフォームやレポートは新規作成できるんだろ?
新しく作ったフォームで条件式の面倒を解決して
そこからレポート作ればいいんじゃ?
0038名無しさん@そうだ選挙にいこう
垢版 |
2018/10/08(月) 08:51:19.26
巨大なフォームと多数のコントロール類があります。複数のタブコントロールに分割して、その中にコントロール類を配置したのですが、どうも動作が遅いような気がします。
タブコントロールにコマンドボタンとかテキストボックスを多数配置するとスピードが遅くなるものなのでしょうか?
なにか資料はございますでしょうか?
0039名無しさん@そうだ選挙にいこう
垢版 |
2018/10/08(月) 14:03:26.44
>>38
多少は重くなりますけど、そんなには。
まさかCPUがペンティアムMMXでwindows95じゃないですよね。
入力オブジェクトを数千個とか並べない限りはエントリーモデルのpcでも動作に支障ないはずです。
データファイルと分離されたフロントエンドファイルの場合で数十ギガのサイズになってませんか?
画像などの表示域を複数配置してませんか?
0040名無しさん@そうだ選挙にいこう
垢版 |
2018/10/09(火) 03:50:43.70
個人経営レベルの会社をやっています
売上と請求書を作成するものをつくろうと思います
ado daoどちらでつくればよいんでしょうか?
いまはEXCELとVBAで力技で転記しまくってデータベースのようにしています

ACCESSはフロントエンドにして
sql serverやmysqlを使え、とか書いているところもあります

ACCESSのデータベースは使わないほうがいいのですか?
また、移行する必要がでたとき、あとからでは取り返しがつかないものでしょうか?

今はひとりでしかつかいませんが
そのうち数人で使うこともあるかもしれませんし
ないかもしれません(業績しだいなので)
0041名無しさん@そうだ選挙にいこう
垢版 |
2018/10/09(火) 08:15:46.55
このタイミングなら消費税増税来年だし、せっかくだから適格請求書に対応するように設計すれば?
0042名無しさん@そうだ選挙にいこう
垢版 |
2018/10/09(火) 14:16:06.98
>>41
適格請求書って初めて知った。勉強なるわ。明細ごと消費税付加式なのね。

>>40 daoで慣れてるなら無理にadoにすることもない。操作性変わらないし、どうやらMSも完全移行方針を取り下げたっぽいので。
Accessデータベースは1人で使うぶんにはあまり壊れないけど、複数名同時使用したとたんに壊れやすい。
データベースサーバーのほうが圧倒的に複雑クエリーが速い。

いずれにしても個人事業主以上まで
成長したらパッケージ買った方がいいですよ。
0043名無しさん@そうだ選挙にいこう
垢版 |
2018/10/09(火) 15:24:50.21
>>42
パッケージってこっちがあわせなきゃだから大変ですよね
業種が特殊だと何かと適応できないところありそうだし

daoもadoも何が何かよくわからない
いちからはじめる感じなのでそれならadoのほうがいいんでしょうか?
0044名無しさん@そうだ選挙にいこう
垢版 |
2018/10/09(火) 17:54:27.38
>>40
>>いまはEXCELとVBAで力技で転記しまくってデータベースのようにしています

EXCELはDBの代わりにはならんよ
事故の元だから止めとけ

>>ACCESSはフロントエンドにして
sql serverやmysqlを使え、とか書いているところもあります

個人的にはFreeのMariaDBかPostgreSQLをお勧めする
MySQLはOracleがその内課金する


>>ACCESSのデータベースは使わないほうがいいのですか?

容量上限が有る
■ このスレッドは過去ログ倉庫に格納されています

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