Access総合相談所 27 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@そうだ選挙にいこう2015/02/25(水) 10:37:24.99
ACCESSに関する質問はこちらへ

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
  ・何がしたいのか
  ・どんな処理を試したか
  ・動作状況など駄目な理由
  テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません。
  図解があれば尚良し。
  聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
  大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。

▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境  】 Windows**, Access**
【 VBAが使えるか 】 はい・いいえ
【 VBAでの回答  】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード

前スレ
Access総合相談所 26
http://toro.2ch.net/test/read.cgi/bsoft/1349049986/

>>1

すれたて乙です

あいやぁ、Access利用者激減ですか。
皆さん社内システム何で作ってんのかなぁ。

クロス集計クエリでさぁ
横計はわかるんだけど、横差ってどうやるの?

Office2016に含まれてますよね、access 。

6名無しさん@そうだ選挙にいこう2015/03/29(日) 17:02:01.40
共有フォルダにあるmdbファイルがダブルクリックしても、コンテクストメニュー開くでも開けません。NTFSがフルコントロールではなく変更権限で開く方法はありませんか?

mdb開くときにldb作るから、新しいファイルを作る権限の無いフォルダーでは開けません、で合ってるかな。

8名無しさん@そうだ選挙にいこう2015/03/30(月) 13:30:05.57
>>3
Office2016からは消えるっていう噂も出てるからな。
そろそろ潮時なのかもね。ExcelにPowerQueryとかいうのを提供して
標準搭載する事も決まってるし。

最終的にはVBA自体も消して、クラウドで商売したいんだろう。

乗り換え先はvb.NETとかc#とかになるのかな。印刷しなけりゃどれでもいいんだけど。
短納期低予算無仕様書の案件はどうするんだろ。いつまでも2010〜2013辺りを引っ張るのかな。
まぁ、今でも2000で動かしてるとこあるくらいだから意外と平気かもね。

10名無しさん@そうだ選挙にいこう2015/03/30(月) 17:44:15.18
>>9
その辺は、既存のAccessで細々と続くだろ。vb6のように。
ただ、確実に案件は減っていくだろうけれどね。

ADPで作りこんだアプリが大量にある。
WANで高速に動作するんでお客には好評なんだがな。
OLEDBはSQLServer2014でも動作するという噂だし、何とかなるかな。


2010が終わったら夜逃げするしかないわw

>>11
ADPのものはもうオシマイだね。
素直に.netで作り直し。

とっくにサポート切れてるし、今後故意にサポート切ってくるよ。
もう、MSにとってその辺りサポートする方針は、現在の社の方針から
見てもあり得ないからな。

そんなん困るわー。第一客が金田さんよ。
自動コンバートツールでもない限りできんわ。

金田さ〜ん! ↑ コイツが悪口書いてますよーっ

15名無しさん@そうだ選挙にいこう2015/04/05(日) 10:40:35.07
>>13
いちどなくした機能が再搭載されることは絶対にないので、
諦めるしか無いよ。

そもそも、もう今のマイクロソフトは、ローカルクラサバ自体をなくして
クロスプラットフォーム戦略とクラウド戦略に移行してるので、Accessは
sharepointに取り込まれて終了だね。

もう小規模事業者がオフィス製品でプログラム組んで儲けられる時代は、
終わっちゃったんだよ。

大手は中小相手にしてたら商売にならないし、商売する余裕もない。

中小は要員抱える余裕はないから、Excel以上のことは無理。

このギャップを埋めるのがAccessだったのにねぇ。中途半端な中小はつぶれているからまあいいかw

>>16
むしろ、そういう中途半端な中小は、office365使ってろって話に持って行きたい
んでしょ。sharepointのアレで十分だろって考え。

で、その中小相手にしてたようなフリーランスやVBA開発をやってたような所は
今後淘汰されると。

18名無しさん@そうだ選挙にいこう2015/04/21(火) 21:12:00.76
☆ 日本の核武装は絶対に必須ですわ。☆
http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html

☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が
3分の2以上を超えると日本国憲法の改正です。皆様方、必ず投票に自ら足を運んでください。
私たちの日本国憲法を絶対に改正しましょう。☆

核武装は要らない。選挙には行こう!

なんだ、とんとかいもさん?

【 システム環境  】 Windows7, Access2010
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 否
【 検索キーワード 】 access distinct count

業務でaccessを使う必要があり。過去にWEBのDB操作は経験しています。

groupA , ID1 , 10
groupA , ID2 , 2
groupB , ID1 , 10
groupC , ID3 , 11


のようなデータがあり

groupA , 2 , 12
groupB , 1 , 10
groupC , 1 , 11

group by で group
IDを count(distinct ID)
数値を sum() でまとめて出したく。

accessがcount(distinct)出来ず、詰まってしまっています。サブクエリで実現するにもまだアクセスに慣れておらず
想定した動きがせず。お知恵を拝借いただけると

>>21
普通に慣れてないのなら、UIで集計クエリやればいいだろ。

23名無しさん@そうだ選挙にいこう2015/05/01(金) 14:33:13.82
【 システム環境  】 Windows7pro 64bit, Access2010
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 否
【 検索キーワード 】クエリ エラー フィールド

アクセスのテーブルデータを、一度エクセルにアウトプットして編集して
そのデータをまたアクセスでテーブルとして読み込んで使っているのですが、
そのテーブルからクエリを新規作成し、抽出条件を加えても反応してくれません。。
新しく作ったフィールドに条件をかけると、反応するのですが、、
このような場合、フィールドの設定?のどの部分を編集すればいいのでしょうか?
教えていただければ幸いです

>>23
反応しないという部分をぼやかさずにハッキリ書きなさい。

25232015/05/01(金) 15:16:58.26
>>24
ふつうの「テキスト型」のフィールドなのですが、
クエリで「is null」などを一つのフィールドで指定するとどんな抽出条件を入れてもすべて検出され、
二つのフィールドで指定すると、こんどはどんな抽出条件を入れても検出ゼロになります
しかし、エクセルからのインポート後に作った新規フィールドで抽出条件をかけると正常に機能します

【 システム環境  】 Windows7, Access2010
【 VBAが使えるか 】 はい
【 VBAでの回答  】 可
【 検索キーワード 】 access vba 等
以下の様なテーブルが有ります。
noは従業員ナンバー、saleは売上として、
このテーブルを就業員ごとにエクスポートしたいと思っています。
どういうコードを書けばよいでしょうか?

以下が全体のコードです
no sale
1 10
1 2
1 5
2 3
2 6
4 7
4 9
9 8
9 1

以下は理想とするファイル内容です
no sale
1 10
1 2
1 5

no sale
2 3
2 6
…以下続く

選択クエリをsqlで書いてエクスポートでいいんじゃないの
noのmaxを取得してwhere no = i を1〜maxでループさせる

>>27
なるほど、ありがとうございます。

>>26
答えじゃ無いんだけど、ごっそりEXCELに出してピボットする方法はどうですか。

>>29
個人的には大賛成なんですが、アクセスで処理しきってしまいたいというのが依頼なもので…
>>27
選択クエリーとアクションクエリーの違いなど、細かいところや大きいところでつまづきつつ10時間ぐらいで完成しました・・・
ありがとうございました。

【 システム環境  】 Windows7, Access2007
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 否
【 検索キーワード 】 Googleやヘルプでの検索キーワード


作ったフィールドはマウスでつまんで隠すことが出来ます。
自分が作ったフィールド全部を1発で知るにはどうすればいいでしょうか?

32312015/05/20(水) 05:01:26.11
解決しました。
データベースツール→データベース構造の解析、ですね。

【 システム環境  】 Windows7, Access2007
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 否

テーブルが1つだけで、そのテーブルにフィールドが5個だけあります。
「作成→分割フォーム」でフォームを作りました。
このフォームに新規入力ボタンを作りたいのですがどうすればいいでしょうか?

34332015/05/20(水) 07:18:53.10
あと、
1つのフィールドは、
そこそこの文章を書き、
フォーム上で改行を入れられるようにしたいです。
どうすればいいでしょうか?
今はエンターキーを押すと次のレコードに飛んでしまいます。

新規入力ボタンにどういう役目を持たせるのか分からんね。
Enterキーの動作は各コントロールのプロパティで変更できる。が、複数行で作ってあればShift+Enterで改行するだろ。
もしかしてAccessをこれから始めるのか?
だったらここで聞くより本屋で適当な解説書でも買ってきた方が早いと思うぞ。

36332015/05/20(水) 16:09:35.48
>>35
ありがとうございます。

> 新規入力ボタンにどういう役目を持たせるのか分からんね。
いえ。新規入力ボタンそのものがないのです。

> Enterキーの動作は各コントロールのプロパティで変更できる。が、複数行で作ってあればShift+Enterで改行するだろ。
いま「Shift+Enter」でやってみたのですが、画面がカクっと下に行くだけで改行しませんでした。

> もしかしてAccessをこれから始めるのか?
むかしにやろうとして挫折して、再チャレンジです。

> だったらここで聞くより本屋で適当な解説書でも買ってきた方が早いと思うぞ。
インプレスジャパン できる大事典 ACCESS 2007 WindowsVista対応 という本を持っています。ただ、索引がないです。

Ac2007からの新機能「分割フォーム」はデータシートに連動しているものだから
データシート画面の最下部にある << < **/** > >> >* ← これで新規レコードに移動する

じゃあ新規レコードへ移動するなら? と、マクロを記録してみてそれをボタンに関連付ける  とか、
それをキーワードにぐぐる  とか、  魔法使いのおば・・ おねえさんのサイト mahoutsukaino.com で勉強するとか

なんかしろ  なんもせんで、これわからん・・  なんてのに付き合ってたら半万年掛かる
あと、改行必要なほどのテキストボックスなら高さを必要な分取っておかなきゃ   なんかこれ前も書いたような

38332015/05/20(水) 21:47:19.00
>>37
ありがとうございます。

> データシート画面の最下部にある << < **/** > >> >* ← これで新規レコードに移動する
おっしゃる通りでした。ありがとうございます。

あと、改行は、なんだかんだググったら[Ctrl]+[Enter]でした。

あと、できる大事典 ACCESS 2007 にはよく見たら索引がありました。出版社の方失礼しました〜

39名無しさん@そうだ選挙にいこう2015/05/24(日) 05:58:23.88
【 システム環境  】 Windows7, Access2007
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 否

まったく関連付けられていないテーブル1、テーブル2があります。
テーブル1のAフィールドとテーブル2のBフィールドのセルで同じのがあるかどうかを調べることは可能でしょうか?

ちなみにExcel2007でもかまいません。

>>39
可能ですか?→可能です

41名無しさん@そうだ選挙にいこう2015/05/24(日) 10:58:33.59
>>39
ここはAccessのスレなので、Excelでも構わないという書き込みは
虫唾が走るね。

それと、セルって何?ここAccessのスレなんだが?舐めてんのお前?
やることは可能だが、お前には無理 これが答えだ。二度と来るな。
お前にAccessは使えないw消えろ

42名無しさん@そうだ選挙にいこう2015/05/24(日) 19:17:00.02
>>40
どうもです。
>>41
じゃあ、この板では、Access派とExcel派が憎しみあってるわけ?www

このスレのExcel派なんていない。
腐ってもデータベースソフトであるAccessに対し
Excelはあくまで表計算ソフトなんだし。

44392015/05/24(日) 22:53:24.54
>>43
ほー、
同じメーカーだからデータの融通性が高く併用する人が多い気がするけどw

45392015/05/24(日) 22:55:23.60
じゃ、アクセスではセルのことを何ていうの?
とあるレコードのとあるフィールドみたいに言うわけ?w

Excelでも、そりゃワークシート関数でもVBAでも余裕でできると思うが、何でACCESSとExcelのどちらか?っていう発想なのかがわからん。
ACCESSでできなかったらエクスポートしてExcelで処理したいってことか?

>>39
データの量でどちらを使うか決めても良いと思います。
EXCELのVLOOKUP関数で始めて、再計算鬱陶しいなと感じてきたらACCESSを使えば良いかと。まあ既にACCESSにテーブル1,2があるなら選択クエリ一発と思うが。

画面関係の構築の方向性について教えてください。

(1)
テーブルシート形式のフォームから主キーをダブルクリックすると単票形式のフォームに飛ばしています。
飛ばす際はDocmd.Openformを使って、ダブルクリックした主キーを使ってデータを抽出して単票フォームを表示します。
単票形式のフォームのデータソースは選択クエリーです。
ソースが選択クエリーなのは二つのテーブルのデータを単票フォームで表示したいからです。

しかし、データソースが上記のクエリーなので、表示に支障はないですが、編集はできません。

二つのテーブルのデータを一つの画面に表示して、それを編集する、というのは難しいのでしょうか?
テーブル毎に単票フォームを作り、ボタンを押して交互の画面に遷移し編集させるのか正しいのでしょうか?

凝ったことを行えば何でもできるのでしょうが、
自分は専門家ではないので、なるべく基本に忠実な形で作っていったほうがよいと思い
皆様のお考えを教えてください。

よろしくお願いします。

基本に忠実な・・というのがなに基準か判らんが

イメージしやすく、明細がある売上伝票 みたいなものとして考えると
メインのフォームに得意先や日付etc サブフォームとして品名・数量・単価などの明細部分

で、最初にダブルクリックするデータシート形式のフォームは、売上伝票の履歴 みたいに置き換えて発想してみたらどうか
それならそこらじゅうにサンプル転がってるし  northwind.mdb とかサンプル無料だぞ 2013以降にはnorthwind無いのか?

50名無しさん@そうだ選挙にいこう2015/05/25(月) 21:59:07.89
>>49
ないよ

accdbのノースウィンド、俺は見た事ない。サンプルサイトには無かったような。

52名無しさん@そうだ選挙にいこう2015/05/26(火) 02:18:11.30
【 システム環境  】 WindowsXP, Access2000
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】否
【 検索キーワード 】 Googleやヘルプでの検索キーワード

アクセス2000でDBを作り、スタンドアローンで活用してきました
パソコンが古くなり、この際更新を考えています
WINDOWS8.1、アクセスのソフトも現在のものを考えています

1 自作アプリを何世代も上にバージョンアップできるでしょうか?
2 DBに2台のパソコンでアクセスするにはどうするのが簡単でしょうか?
3 LANディスクにDBを置き、共有で見に行くことはできますか?

>>52
1.Access2000のMDBなら可能。97形式は2013では未対応
2.1台にmysqlを入れて、データはそこに保存。
3.見ることは可能。但し、速度は遅い。同時書き込みは?。


2.はMySQL Workbenchのマイグレーションツールでデータベース
の構造からリレーションシップまで全部MySQLへ変換してくれる。
変換後は、今使ってる奴はテーブルをODBCのリンクテーブルに
してあげればOK

>>52

>1 自作アプリを何世代も上にバージョンアップできるでしょうか?
大丈夫ではなかろうか。

>2 DBに2台のパソコンでアクセスするにはどうするのが簡単でしょうか?
テーブルとそれ以外のオブジェクトに分割して、共有フォルダにはテーブルの実体が有るmdbを、テーブルのリンクとその他のオブジェクトが有るmdbは各パソコンに配布してruntimeで使う。


>3 LANディスクにDBを置き、共有で見に行くことはできますか?
可能だけど、オブジェクトとデータが入ったmdbを共有すると直ぐ壊れる、と思う。

ACCESS2013が単体で1万円ちょっと、runtimeは無償ダウンロードできるから、乗り換えのハードルは史上最安値かと。

56名無しさん@そうだ選挙にいこう2015/05/26(火) 08:48:48.57
【 システム環境  】 Windows7, Access2007
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 否

テーブル1に、開催日時、盆踊り主催者、公園と3つのフィールドがあります。
テーブル2に、公園、公園住所と2つのフィールドがあります。
データーベースツール→リレーションシップツールで2つの公園を線でつなぐことは出来ました。

ただし、
テーブル1の公園フィールドには公園名以外の寺の名前、神社の名前等が入っています。
テーブル2には、寺や神社の住所は入っておらず、公園名とその住所しか入っていません。

やりたいことは、
この2つのテーブルを合体させ、開催日時、盆踊り主催者、公園、公園住所(データがあるところの住所だけ)と4つのフィールドが入った新しいテーブルを作りたいです。
この後どうやればいいか教えて下さい。

>>56
選択クエリで where テーブル2.公園 like *テーブル1.公園*
これを追加クエリで新しいテーブルに放り込めばいいんじゃないの
>>55
ハードルが最安値とかはしょりすぎ
>>54
2013は意外と壊れないよ。といっても一時テーブルが10個未満の使い方だけど。
まぁ2000のときはいやになるほど壊れたけどな。
>>53
データはsqlserverでもいいんじゃないの。expressならただだし、今のなら何とかツールも全部入りだから。
sqlもツールで発行してくれるから楽じゃん。それをコピーしてsqlビューでペーストすれば一丁上がりだから。

58562015/05/26(火) 09:41:30.46
>>57
ありがとうございます。
つか、クリエウイザード→選択クリエウイザード、と適当にやっていったら出来てしまいました!
↓を書くやり方は、作成→クリエデザイン、と入っていくのですか?

where テーブル2.公園 like *テーブル1.公園*

クエリのデザインビューで テーブル2.公園 フィールドの抽出条件のとこに書くんだよ。
ビルダ使えば選んでいくだけで書けると思うけど。あとはググればいやになるほど例が見つかるはず。

スマン、↑は間違い
こっちでどう。sqlビューでなきゃ書けないけど。
SELECT [テーブル1].*, [テーブル2].*
FROM テーブル1 INNER JOIN テーブル2 ON ([テーブル1].公園 LIKE "*" & [テーブル2].公園 & "*");

Ac2010にはノースウィンドというテンプレートがある
作成するとノースウィンド1.accdbが出来上がる
社員別のログイン画面から始まり、リンクの[発注の表示]画面を出して
状態フィールドをダブルクリックすれば発注明細が
仕入先を  〃   仕入先詳細が
合計額を  〃   発注明細が
提出者を  〃   社員詳細が、それぞれ別画面で立ち上がる
だけじゃないテイジン いや、なんでもない  他の画面でも面白がって
ダブルクリックすればいろいろ立ち上がる  これじゃアカンか

因みにググったネタで恐縮だが、2013だと「オンラインテンプレート」で
ノースウィンドを検索すると2007のバージョンで出てくるらしい
らしいでスマン 持ってないものは試しようが無い
2007と2010の違いは画面下部にグラフが表示されるかされないか らしく northwindの無いAccessなんて

62522015/05/26(火) 21:54:18.00
>>53,54
ありがとうございます
97のオブジェクトオリエンテーティドが懐かしいです
mysqlの本を立ち読みしましたが厚すぎましたw

63482015/05/27(水) 07:08:46.19
レスありがとうございます。
ノースウインドというのは初耳だったので、それを調べてみます。
ありがとうございます!

64562015/05/27(水) 10:49:35.95
>>59-60
ありがとうございます。

65名無しさん@そうだ選挙にいこう2015/05/29(金) 06:02:49.26
Ac2013です
3つの区分があり
それを判定するとき
後々の修正やVBAのことを考慮すると
どちらが適切ですか?

1
判定フィールドを作りそこに0〜2を入力し判定する
VBAや計算では0=A,1=B などとします

2
3つのYES NOフィールドを作成しチェックをいれる
判定フィールド1=TrueならBとします

よろしくお願いいたします

>3つの区分があり
>それを判定するとき

ここで既に意味がわからん

67名無しさん@そうだ選挙にいこう2015/05/30(土) 03:21:14.60
>>66
例えば
進行中 保留 完了
など3つの区分がありそれをどのように格納するかと言うことです

0〜3とするかそれぞれのフィールドをつくりTrueならチェックいれるか、どちらがよいかということです

0,1,2以外ありえない

69名無しさん@そうだ選挙にいこう2015/05/30(土) 14:47:20.89
>>68
そうなんですね
ありがとうございます

0,1,2がそれぞれ何なのかというのは
どこにメモしとけばいいのでしょうか

70名無しさん@そうだ選挙にいこう2015/05/30(土) 18:52:51.95
>>65
普通に1だろ。2みたいなのはダメな例の典型だぞ。

71名無しさん@そうだ選挙にいこう2015/05/30(土) 19:01:40.80
>>69
そういうのは、別にテーブルを作って、ID, 値というフィールドだけ
用意して格納しておき、リレーション貼っておく。テーブルの設定画面で、
その情報を入れておく。

ユーザに0だの1だの入れさせるのは愚の骨頂ですよ。

さらに、1個ではなく複数選択する場合には、ビットマスクを使うと良いですよ。
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsBitMask.html

72名無しさん@そうだ選挙にいこう2015/05/30(土) 19:05:45.05
最近のAccessでコントロール名とがコントロールソース
が同じかどうかで計算コントロールの自動反映の
動きが違うって誰か知ってました?

<例>
コントロール名 コントロールソース
COL1 COL1
COL2 COL2
COL3 =[COL1] * [COL2]

→この場合、COL3には計算結果がすぐ反映されます。

コントロール名 コントロールソース
txtCOL1 COL1
txtCOL2 COL2
txtCOL3 =[COL1] * [COL2]

→この場合、COL3には計算結果がすぐ反映されません。
レコード保存したら反映されます。

73名無しさん@そうだ選挙にいこう2015/05/30(土) 19:12:54.72
>>69
例示で作ってみた

http://www.rupan.net/uploader/download/1432980607.png
この画面に於いて、例えば今回のようなケースだと、右上にある
資産タイプ。これが複数選択出来るようになってる。

で、これをリレーションで見るとassettypeってのがそれ。
http://www.rupan.net/uploader/download/1432980707.png

こうしておけば、例えばコンボボックスなどで値を選択すると入る。
asset側には0,1,2の値が入る。参照先はassettypeというわけだ。

74名無しさん@そうだ選挙にいこう2015/05/30(土) 20:33:25.73
>>71
税区分や売上区分など区分が必要な場合はたくさんありますが
それぞれの区分ごとに税区分テーブル 売上区分テーブルといったものを作成していくやり方でいいのでしょうか?

75名無しさん@そうだ選挙にいこう2015/05/30(土) 23:44:16.47
>>74
フィルタ施してクエリをテーブルにして実体は1テーブルでも良いですが
管理が面倒だったりするので、細かくこういった区分テーブルは作ると
良いです。

自分の場合、例えば宛先として後から候補で出てくるように追加なんかも
自動でしてたりするので、こういうちょっとしたテーブルってのはよく作り
ます。

数件程度の区分でそれが頻繁に改変(追加・編集・削除)されないようなものなら、
値リスト使わね? 全部テーブルにしてたら無駄遣いだろ?

77名無しさん@そうだ選挙にいこう2015/05/31(日) 05:10:25.62
>>76
パッと確認したりvbaなんかではテーブルになってるほうがやり安い気がするけど
詳しい人、どうなんでしょうか?

俺は全部テーブルにする。
同じ動作にロジックを変えることはしない。

エクスポートもめんどうだしな。

>>78
俺もテーブルにするね。数の問題じゃないし。
そもそも正規化考えたら、当たり前のこと。値リストなんかで組んじゃったら
あとで拡張する時に非常に面倒なことになるし。

80名無しさん@そうだ選挙にいこう2015/06/01(月) 08:16:04.60
>>79
こんな設計してたら後で大変なことになるぞ
ってのが他にもあったら教えて下さい

accessというか、DBについて最も基本的な初歩的なことだと思いますが、質問です。

accessで自社ユーザー情報として、ユーザー名や住所電話番号など基本的な情報に加え、
契約日や区分などを必要に応じて同じテーブルに追加してきました。

今では使用PCメーカーやプリンター情報など細かな項目も増えてきています。
ここで質問ですが、同じテーブルにこの調子でどんどん追加していっていいものなのでしょうか?

ある程度分割した方がいいのかという気はするものの、分割後、双方のテーブル同士で
どうやって整合性を保つのかさっぱり分かりません。

>>81
分割 = 正規化です。

非常に小規模で拡張予定もないというのなら、ソレでも良いのですが、
拡張したり、利便性を向上させたいなどあるなら普通は分割します。

整合性云々というのは、そもそも、DBを理解できていれば問題ありません。
その辺りはリレーションシップなどや正規化の仕方を勉強されれば自然に
DBの分割ができます。

ちなみに、あなたのそのDBを正規化すると以下のような感じになります。
1.ユーザマスター
[ユーザマスタID] - [ユーザ名] - [住所]

2.PCセッティングテーブル
[PCID] - [ユーザマスタID] - [PCメーカー]

これらを一覧で見たいときにはクエリを使って、ユーザマスタIDをつかって結合します。

83812015/06/03(水) 16:11:23.54
>>82
ありがとうございます。
現在は、

1.ユーザマスター
[ユーザマスタID] - [ユーザ名] - [住所] - [PCメーカー]

2.問い合わせ履歴
[PCID] - [ユーザマスタID] - [問い合わせ日] - [問い合わせ内容]


というような感じでやってましたので、非常にイメージがよく分かりました。

2.問い合わせ履歴は、同一ユーザーで複数のデータが発生するために作ったもの
ですが、考え方はそのままでよかったのですね。


1.ユーザマスター と 2.PCセッティングテーブル の並びを同一にして
2.PCセッティングテーブル内部に重複する[ユーザマスタID]があってはならない
とか、勝手に条件付けして考えてしまって頭が固くなっていました。

なんとかなりそうです。
どうもありがとうございました。

>>83
exactly

あとは、両者を一覧で見る為にユーザマスタIDを基準にクエリつくっておけば
いいだけ。

85名無しさん@そうだ選挙にいこう2015/06/03(水) 18:47:06.55
家族経営の会社やってます
ExcelVBAでやってましたがデータ量の増加によりAccessへの移行を考えています
基本的な売上入力から請求などはある程度かたまったのですが
会計処理(いままではアナログ管理)は同じシステムに組み込んでもいいのでしょうか?
諸経費テーブル、ローン返済テーブル、借入金テーブルなどをつくるということです
決算書は税理士委託のため細かい会計自体が委託になっているので資金繰りのときの資料として利用したいです

86名無しさん@そうだ選挙にいこう2015/06/04(木) 10:14:04.92
【 現在使用のシステム環境  】 WindowsXP, Access2003
【 今後使用予定のシステム環境  】 Windows8.1, Access2013
【 VBAが使えるか 】 はい
【 VBAでの回答  】 可

アクセスから離れて久しいのですが、
以前2003のADP形式で作ったSQLサーバーとのシステムがありまして、
今度システム入れ替えで2013にするのですが、
確認テストの段階で2013ではADPファイルが変換も開く事もできません。
2013からADPは無くなったのでしょうか?

あともうすぐ2016?が出ると聞いたのですが、
この2016もやはりADPファイルを扱えないのでしょうか?

adpは2010までだったような。

88名無しさん@そうだ選挙にいこう2015/06/04(木) 13:15:50.86
>>86
何を今更・・・・

2010からなくなってるよ。調べりゃ分かることだろ。

89862015/06/05(金) 09:14:11.18
>>87
ありがとうございます。
2013からなくなっているようですね。
これだと2016?も多分ないのでしょうね。
2010もしくはODBC接続での変更やVBでの検討をする予定です。

Accessが根本的にわかりません。
どうしたらいいですか?
というのもテーブルの設計とリレーションシップの設計ができません。
最終的に何がやりたいからこのテーブルのこのフィールドとあのテーブルのフィールドをリレーションするとか
そういうのがわからないんです。

>>90
そりゃ困ったね。
学生名簿と試験成績表、社員名簿と出退勤記録、顧客一覧と購入履歴など、身の回りの既にあるデータをテーブルにするところから始めては?

>>90
なら、例題を与えよう。

一番身近で自分でも使うものだ。それは、家計簿。これが一番シンプルで最も
わかりやすい。辺に業務知識を要求しないしね。

で、Accessを挫折する奴の大半がその第一の壁で躓くんだよ。

最初にやる事は、勘定科目のテーブルを作ること。次に記録を取るテーブルを
作ることからだ。そして、勘定科目のIDと記録を取るテーブルの勘定科目の列
とをリレーションシップを貼る。

勘定科目で挫折するぞ

>>93
一般常識ないのなら、それはAccess以前の問題だよ。

95名無しさん@そうだ選挙にいこう2015/06/10(水) 19:17:10.81
家計簿の場合勘定科目というほどのものはいらないんじゃない?

96902015/06/11(木) 23:02:28.27
>>91
まさにそれですね。
自分が作りたいものは顧客一覧と、購入履歴を1つのフォームで管理するデータベースです。

そもそもリレーションの貼り方がいまいち分からないんですよね。
リレーションシップというアイコンをクリックしてそこから作ればよいのですよね?

例えば、テーブルAのフィールドAからテーブルBのBフィールドに向けて引っ張るだけでよいのでしょうか?
ここで引っ張る方向を間違えると一体多の関係が逆になっちゃうなんて事になるので、
どっちが一でどっちが多なのかの関係を理解する必要がありますね。

>>92
本当は>>91に書いてるように顧客一覧と購入履歴のデータベースが作りたいんですが、
まずは家計簿がよいでしょうか?

>>96
引っ張った線を上手く右クリックして調整できるよ。

98962015/06/18(木) 23:49:37.76
>>96です
このようなものを作るのに参考になるサイトはありませんでしょうか?
顧客一覧と購入履歴を管理するデータベースを一から作ろう!(初心者実践編)みたいな。

99名無しさん@そうだ選挙にいこう2015/06/20(土) 11:48:29.47
>>98
普通に本を1冊買ったほうがじっくりスキルを身につけられるよ。
ウェブでバラバラと知識を手に入れるよりもね。但し、以下の本は除く
1.できるシリーズ
2.逆引きシリーズ

ただし、自分に合うものはよく読まないと無駄になってしまうので、
じっくり本屋で立ち読みして買うと良い。

そこから先は、ウェブのほうが実践スキルを身につけられるから本じゃ全く
力不足になるが。

※ちなみに俺はほとんど独学だが、買って勉強した本は1冊だけある。それは
http://www.scc-kk.co.jp/scc-books/support/B-102/support.html
自分が会計ソフトを作る必要があったので、参考になった。これをベースに、
経営シミュレーションを作った。

100962015/06/21(日) 06:31:36.04
>>99
やっぱり基本を押さえないことにはどうにもなりませんね。
できるシリーズ以外で
自分なりにも調べて古本ですが、かんたん図解(基本操作)、プロパティ辞典、Accessデータベース理論があったので
買ってみました。

■ このスレッドは過去ログ倉庫に格納されています