Access総合相談所 27 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ACCESSに関する質問はこちらへ
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
・何がしたいのか
・どんな処理を試したか
・動作状況など駄目な理由
テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
範囲で詳しく書くと、早く回答が得られるかもしれません。
図解があれば尚良し。
聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
ギブアンドテイクで情報を共有しましょう。
▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境 】 Windows**, Access**
【 VBAが使えるか 】 はい・いいえ
【 VBAでの回答 】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
前スレ
Access総合相談所 26
http://toro.2ch.net/test/read.cgi/bsoft/1349049986/ >>682
レスどうもです。
使えなくなった公式のアナウンスのようなページがあるかご存知でしょうか?
探したのですが見つからず・・・
解決策は日付型テキストボックスにしようとしています >>684
個人用途、グループ用途に関わらず
別ファイルのリンク張りでやってください。
特にグループで使うときはフロントエンド周りの改修が頻繁に入るので切り離して考えた方が楽です。
ファイルサイズが馬鹿みたいに増える例としては、郵便局提供の郵便番号リストを入れたとき、
送り状や伝票の位置合わせのためなどでピクチャーを「埋め込み」にしたときですね。
ピクチャーの埋め込みは極力避けたほうが良いです。
あと最初から10万レコード扱うなら素直にdbサーバーを導入してください。 >>686
ありがとうございます
おっしゃる通り、郵便番号リスト入れました
ピクチャーとかは使っていないです
売上が突然大きくなってしまい、事務が全体的にひっくり返っている状態です
この土日は勉強に当てようと思います。というかそもそもアクセス自体ほとんど使ったことがない状態です
何か良い例があれば、お願いします >>687 本当はライセンス的にアウトですが、
google map json 郵便番号で検索してみてください。
それプラス json vba
実際にはその他2社ほど、無料の郵便番号toJSONサービスをやっています。
かなりの難易度だけど、ここらへんの資料が解釈できれば、なかなかの腕前です。
ようするに郵便番号マスターを持たないやり方です。
ただ、郵便番号マスタを持ってても、DB用とフロント用にACCESSファイルを分ければ
フロントの配布が軽く、数人程度の同時ユーザー数なら特に「重い」といったことは起こりません。 テーブルをテキストに出力すると、少数が指数表示されてしまいます。普通の表示で出力するにはどうすれば 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『加藤のセセエイウノノ』 というサイトで見ることができるらしいです。
グーグル検索⇒『加藤のセセエイウノノ』
IJHLFLYDDQ >>689 もともと過疎ってるのに加え、ここまで返答がないのは
背景の情報少なすぎ。どうやってテキストファイルを出したの?
リボンのエクスポート機能?VBAでtrasfertextを使って?
e^-xで出力されるってどんだけ小さな数字なんだ。
それが発生するカラムのデータ型は倍精度小数型?倍精度じゃなきゃダメ?
出力の前に自動計算で割り算した結果、商に無限小数が発生して型が許す限り
数字が埋まってるからじゃなくて?
理系の統計・解析用なら仕方ないけど、普通の事務用途なら
自分だったら一回、クエリーでround噛ませて小数点2桁や4桁で丸める。 中小や零細はエクセル
大企業は安価になってきた専用システム
とアクセスが入る余地は年々減っていると思う >>696
どうだろうね
1677万件入るなら大抵の処理はできるとは思う
それで足りなくなればaccessを導入するか、専用システム導入する感じじゃないかな Excelで余りに大きくなると開くのに時間がかかるよ
年度や部署ごとにファイルを分けたり何人かで同じファイルを扱う場合は管理がね
個人はExcel、零細はAccessでいいと思うけどな
そこから先は 大体、EXCELとACCESSは目的が違うわけだが。 エクセルの共有機能ってのを知ってこりゃ便利と導入したものの、クッソ重くてすぐにaccessになったわ
同時に作業するファイルがエクセルはありえん。
マクロでデータ吸い上げようとしてもフォーマット崩してきやがるので対処不可能
中小企業でも、すぐにaccess導入しないか? >>694
経営者や要職がデータベースって何かわからず、ファイルサーバーに
数千個のEXCELファイルが保管されている中小企業で
「データベースだとこういう風になります」とプレゼンするにはいいツール。VBA埋めなければ1時間くらいで作れるので。
今年、神EXCELが話題になったけど、正規化されたデータを
EXCELにリンクさせてピボットで見やすく集計すれば正規化の重要性を少し理解する。
だけど、これをアレンジしながらガチで業務使用したらダメ。
キー列がオートナンバーなテーブルを五人くらいで同時作業すると不安定になる。
プロ的な作り(必要な行をキャッシュして作業して書き戻す)に四苦八苦するくらいならプロに任せた方が良いが、SQLSERVERがだいたい150万円、制作依託費と合わせて600万円くらい(保守料年額100万)、となると、中小企業ごときじゃ経営者は悩むわなぁ。 Accessなんて重宝されているのは、日本だけなんでしょ?
アメリカなんかはOfficeに別DBが付いているって昔聞いたけど
最近はどうなんだろ? >>704
office製品っていくつあると思ってんねんw 関数についての質問
テーブルのフィールド1の中からフィールド2にチェックが入っている数を求める(重複させずに)
上記の式をクエリに入れたいんだけど、式が思い浮かばない…
助けてください… >>709
わからん、レコードの具体例は無いのか? >>709
group byしてcountとかじゃだめなの?
チェック入ってるフィールドはwhereで抽出 チェックの入っている件数を数えるのではなくて
両フィールドにチェックの入っていないレコードを除いたレコード数を数えるようにすればええんやないの 2003でなにも困っていないけど、2016が使える環境になりそう。2016はリボンの所が邪魔なんだけど、狭く出来ますか? >>715
Ctrl+F1、もしくは、
リボンのいちばん右下の「Λ」をクリック >>716
ありがとう。後でやってみますね。
HD画面なので、2016のリボンは本当に迷惑ですね。設計した人、許可した人にデコピンしたくなります。 リボン閉じれるのにお前のクソ環境と無知識を開発の責任にすり替えんな いらないものは最初からない方がいい。余計な手間をかけさせないで欲しい。 もともとなかったものなんだから、元と同じにする方法も用意すべきだよ。
ところで、2016になって機能アップしたのかな?業務用ソフトのmdbでもwin10とAccess2003で問題なく動くんだけど。 低脳モンスタークレーマーが製品を潰すってはっきり分かる事例 何のことかわからないわ。2016が好きなヤツは使えばいいじゃん。俺はいい加減に現代のソフトも使ってみたいから使ってみるわ。でも、少し触ったところ、2003と大差ない印象だわ。 フォームのサイズを変えると配置したコントロールのサイズも追従する、表形式レポートやフォームの行を1行置きに変えられるとか、多少は小技が効くようになってるよ。 >>724
ありがとう。たしか、条件付き書式も数が増えてるんだよね。新しい割に、あんまり重くないのも好印象でした。 隠したり出したりも面倒だよ
ずっと2000使ってたけど2016に変えて作業領域の狭さに愕然としたから
今までより解像度高いパソコンを用意したよ 隠したり出したりという使い方が既におかしい
一旦隠してしまえば、新旧共にメニューをドロップダウンして選ぶことに何も違いはないのだが うむ
だから俺は面倒だから
出しっ放しにして運用してるってことだよ 2000を使ってたときにも、メニュードロップダウンで一々開いてたわけでしょ
むしろ開きっぱなしにできなかったわけで 業務で使うからほとんどがアクセスキーとかマクロやキーダウンイベントで発動するからメニューとかリボンが場所をとるのを止めて欲しいだけなんだよね。 やっとExcelについていけるようになったら今度はACCESS覚えろと言われた中卒零細勤務の俺に教えてくだしあ。
製品の部品構成表を作りたいんだ。
製品マスターのテーブルに部品コード1、部品コード2…と構成の一覧がある状態なんだけど
部品マスターとリレーションシップの設定して、部品名とか部品の仕入先が表示されるクエリを造りたい。
この場合、部品コード1、2を全部同じ部品コードマスターから引っ張って来れるものなのかな?
クエリのフィールド名はとりあえずエラーになる。 >>731
出来るはず、と言うかデータベースはその為のもの。製品構成表(BOM)と部品表の典型的な事例と思う。
クエリー作成で
@製品マスターの部品コードを部品コードマスターの部品コードにドラッグする。
A表示したい項目をダブルクリックしていく。
Bクエリーの表示を実行
するだけで希望の結果が得られるはず。
もう少し詳しく書いてアドバイス貰えばすぐ解決するよ。 製品マスターテーブルに
製品コード
製品名
保管場所
部品コード@
部品数量@
部品コードA
部品数量A
…
部品コードマスターに
部品コード
部品名
仕入先コード
仕入先マスターに
仕入先コード
仕入先名
上記3つのテーブルをリレーションシップで繋ぎたいんだけど、製品マスターの部品コードは最大4つあるから繋ぐときは部品コードボックスは4つ必要??
その場合部品コードに対応する仕入先マスターも4ついることになる? 製品マスターに部品コードが4つあるんですか。製品マスターと部品構成表を別にすればうまくできそうなんだけど。
製品コード、部品コード、部品数量のテーブルを作ることは可能でしょうか。 >>734
別にする事は可能です。
ただ部品は色んな製品で使い回して、数量もそれぞれ違うんですよね。
最終としてはフォームでその製品コードを叩くと部品が全て表示されて
新製品が増える都度そこに入力すると反映されるみたいなものを作りたいと考えてます。
初心者には難易度高いですかね?(笑) いや、典型的な使い方です。そのように使うためのaccess。ただ、私がアドバイス下手で上手く説明出来ない。サンプル作って「こんな感じ」って出来れば簡単だと思うが… >>736
なるほど。ありがとう。
とりあえず一回教えてもらったこと参考に作ってみます!
また質問すると思うんでその時は宜しくお願いします。 【時間を割かなくて収入を獲ましょう】
時間をお金に変えるときは終わりました
アイデアを収入に!!✨✨✨
https://peraichi.com/landing_pages/view/b4r32 access2013です。
既存のクエリを複製コピーして編集していますが、クエリ名が「(元のクエリ名称) のコピー」
となっており、左のシャッターバーからクエリ名を変更してもショートカット名の変更しかできず、
これを開くと「元々のクエリ名 のコピー」の名称でタブで開かれてしまいます。
どこでクエリ名を変更すればいいでしょうか。 access、32bit版で作成したデータベースを64bit版で開く方法はありますか?
全部作り直さないとだめでしょうか 64bitで使えないオブジェクトがあるからそういうのが使われてるとエラーになるけど
そうでもないなら宣言部に何か一言入れとけば使えたと思うよ
後は調べてちょんまげ >>731
止まったと思ったら急に動き出すスレだな。
部品って仕入れ品の「材料」みたいなもんでしょ。
典型的なaccess案件。
マスターの構成は製品マスターが1個、部品マスターが1個、部品構成表マスターが一個。
これが基本。
この構成のお手本ブックは腐るほど出てるし、昔から付いてるサンプルの「ノースウィンド社」をまず眺めるべし。
一番めんどいのは、材料をもとに仕掛かり部品a,b,c,dが出来て、組み込みのタイミングや工程階層が製品によってバラバラ、というモデル。
これは業務プログラム技術を持ってないと、なかなか作れない。 フォームで新規入力しようとしたら
テーブル〜の結合キーがレコードセットにありませんって出るんだ。
ググったら色々出てるんだけど、結局どーやったら解決出来るかわかりません。
サブフォームを使ってるフォームになるんですけど、どこを見たら問題点が分かるんでしょうか?? メインフォーム側のキー項目に値がセットされる前に
サブフォーム側に何かセットしようとしてるんじゃないの〜 >>745
単純モデルから練習しましょう。
テーブル1個作ってkeyidというオートナンバーの列でも作りましょうか。主キーというボタンを押します。
もう一つテーブル作って、keyid 長整数型 インデックス重複ありの列を埋めます
リレーションマップを開いて2つのテーブルを表示させてkeyid同士をつなぎます。
これで明示的な親子関係(1対多)が作れます ACCESS2016ペーペーですがお願いします。
フォームにコンボボックス1と2があって、1を選択したら2が連動して絞り込みをかけて選択するというようなデータを作ったのですが
新規のレコードで1を選択すると前のレコードの2が空欄になってしまってます。データはちゃんと反映されてるのですが。。
どうも1の更新後のrequeryが悪さをしてるような気もするんですが、原因が分かりません。
教えて下さい。 ファイルをロックできませんでした
ってエラーが急にでるようになったんだけどこれなーに? >>749ですが、レコード移動時にリクエリしたら普通に行けるようになりました。
また別で質問なんですが、>>749同様にコンボボックスが二つあって、一つ目を選んだ後、二つ目に該当するものがなく未入力のまま登録する事は可能でしょうか?
例えば大分類の下に小分類があるけど、その大分類には小分類が存在しないものがあるという場合です。 >>751
普通に出来ると思うけど
何かエラーにでもなるの? >>752
コンボボックス1に大分類入れて、コンボボックス2には小分類に該当するものがないからそのまま進もうとすると
フィールド"とキーが一致しているレコードをテーブル'○○テーブル'で探すことができません
と出ちゃいます。 >>750
見たことないです。Excelをリンクしてて開かれてる、とか? >>753
コンボボックスのプロパティで入力チェックしない設定にするとか。 >>755
外部結合を試したらそのまま進めたんですけど、テーブルにはデータ反映されるけど、クリエにそのデータが表示されないんですよ >>749ですが、小分類のテーブルに"該当無し"のコードを作って、レコード移動時に小分類が0、選択されてない場合、そのコードを自動で入力させるという風にしたら可能ではないでしょうか?
もし可能ならその場合のコードを教えて頂きたいのですが。。。 >>754
別dbのテーブルにリンクしてるんだけど、
アクセス権が違うPCからだとこのエラーが出て開けない
死ぬ その別dbっていうのを新規作成→全インポートで作り直したら?同じことかな? フォームに入荷日、梱包日、発送日があってそれぞれにAMかPMをプルダウン等で選ぶようにしたいんだが
AMPMの時間帯テーブルみたいなのを作るのが一番いいのかな?
もっとスマートなやり方はない? >>762
なるほど。こんな方法もあるのか。
便利だな。ありがとう。 そういえば日付を選択する機能はあっても時間をうまく入力する機能は知らないな。
なんか上手い方法があるなら教えてください。 >>765 カレンダーって、そんなに使うかなぁ。まして、時刻なら
日本語入力プロパティを「オフ」に設定してやれば 0:00って打つだけだと思うけど。
よくweb系アプリであるデザイン:コンボボックス 時=c1 分=c2 値集合タイプ:値リスト(両方とも)
規定値="00" (両方とも) 実際にデータベースに紐づけるテキストボックス txt1
private Sub Form_Open(Cancel As Integer)
Dim i As Integer,rowtext As String
rowtext = ""
For i = 0 To 23 rowtext = rowtext & Format(i, "00") & "," Next i
rowtext = Left(rowtext, Len(rowtext) - 1)
Me!c1.RowSource = rowtext
rowtext = ""
RowSource = 0
For i = 0 To 55 Step 5 rowtext = rowtext & Format(i, "00") & "," Next i
rowtext = Left(rowtext, Len(rowtext) - 1)
Me!c2.RowSource = rowtext
End Sub
Private Sub c1_Change()
Dim timestr As String
timestr = Me!c1 & ":" & Me!c2
Me!txt1 = TimeValue(timestr)
End Sub
Private Sub c2_Change()
Dim timestr As String
timestr = Me!c1 & ":" & Me!c2
Me!txt1 = TimeValue(timestr)
End Sub 'c1とc2の動作は同じなので、共通プロシージャとしたほうが可視性が良い 家電のタイマー設定ふう ボタンを押している間じゅうインクリメントする
コマンドボタン: cmd2 自動繰り返し:「はい」
Private Sub cmd2_Click()
Me!txt2 = DateAdd("n", 5, Me!txt1)
Me.Repaint
If DateDiff("n", "0:00", Me!txt1) = 1440 Then
Me!txt1 = "0:00"
End If
End Sub 間違い 765のRowSource = 0 いらない
766のMe!txt2 = DateAdd("n", 5, Me!txt1)
はtxt1=間違い >>766
>>767
おお、ありがとうございます。やってみます。 教えてください。
フォームのコンボボックスからクエリの抽出をしてますが条件で詰まってます。
以下のことを実行したいです。
@都道府県名と都市名を入れるとその二つに該当するものが抽出。
A都道府県名のみ入れて実行すると、都市名が設定されてない都道府県名のみを抽出。
クエリにどのような抽出条件を入れたらいいですか?
is null orを都市名に設定するとAはうまく行きますが、@で都道府県名と都市名、都道府県名のみのものの両方が抽出されてしまいます。 >>770
フォームがどういう作りか知らんけど、都道府県と市区町村のコントロール持ってるんでしょ。
都道府県のrowsourceがselect 都道府県,市区町村 from 住所録 where 市区町村 like iif(me!市区町村=null,”*”,me!市区町村)
連結列 1
市区町村のrowsouceが
select 都道府県,市区町村 from 住所録 where 都道府県 like iif(me!都道府県=null,”*”,me!都道府県)
連結列2
いま、手元にaccessないので検証してください。iifのあたりがそのまま渡せるか、一回、文字列作り直すのか忘れた。
クエリー単体ならパラメータクエリーか、forms.なんちゃらかんちゃらの参照を掛ける。 >>771
いけたー!ありがとう。
もう一つ問題があって、
クエリの抽出で、出席者名が未入力の場合は欠席と入れたい。
Nz([出席者名],"欠席")で出来ない?
これで実行したら出席者が空白のデータが表示されなくなるんだが。 すまん、クエリでやろうとしたのが間違いだった。
レポートでコンボボックスの式に入力したら出来ました。 >>772
なるほどこっちのほうがスマートだな。
select 都道府県,市区町村,都道府県+市区町村 AS 検索 from 住所録 where 検索 like nz(me!都道府県,”*”) & nz(me!市区町村,”*”)
みたいな感じでいけるか。
where 以降で別名を認識できるか、接続が+だったか&だったか、テストしないとわからないが。 入力簡素化の為にテーブルのフィールドを削除して、新たなテーブルから引っ張って来るようにリレーションシップも変更したら、クエリ、フォームが開かなくなった。
設定してたフィールドが消えたんだから動作しないのは分かってたが、やっぱこれは全部作り直しなの?クエリもフォームも大量に種類があるんだが、、、
ちなみにやろうとしてたことは、これまで売上台帳に分類コードや担当者コードみたいなのをフォームから入力してたんだが
そもそも別のデータの受注台帳に分類コードも担当者コードもあるから売上台帳にそれらを関連付けて受注コードを入力し、手間を省こうとしてたみたいな感じなんだが。 >>776
自分が行ったことなのに、まるで他人がやったような言い回しですね。 >>776
他の人が作ったものを構造研究もしないで疑似サーバ的に改造するのは
どうなんですかね。
(もっともACCESSの自炊アプリの問題点は、ほとんどの場合、開発ドキュメンテーションや
コメントがないことなんだけど)
基本的に、テーブルの名前が全く同じ、構造も全く同じであればローカルだろうがリンクだろうが
適切に処理されます。
開かないクエリーのデザインビューを開いてください。それを見て、何がどうなってるのか(何が原因なのか)理解できなければ
改造には「2か月」早い、ということです。
ACCESS入門書でも買って、習作を作って勉強してから出直してください。
ちなみに魔改造したものは、バックアップとってあるなら速やかに戻しておくように。 新たなテーブルが加わってリレーションも変わるんやったら作り直しというかそれぞれある程度の編集は必要やろ。
てか会社で業務改善しようとするんは基本やろ。
それを魔改造とか言っちゃうのは仕事出来ない奴だわ。 >>779
いや、データは自分で作ったんだよ。
分かりにくくて申し訳ないが、構造研究とかじゃなくて、リレーションシップに新しいテーブルを追加してリレーション変更した時にクエリフォームも全部変えなきゃならんのかということを教えて欲しい。
不勉強なのは弁明の余地がない。
ごめん。 基本的には作り直さなきゃならないけど、新たなテーブルから引っ張ってきた二つのテーブルの選択クエリを作り、これをごまかして使う方法がある
こんな説明じゃ分かんないかな?言葉じゃ説明できないわ >>781
何やったのか、いまいち見えて来ねーわ。
オリジナル版のテーブル
項目 1 2 3 4 5 (4と5が一体のもので正規化の見込みあり)
改良版Aテーブル
項目 1 2 3 4
改良版Bテーブル
4 5
2テーブル参照クエリー
1 2 3 4 5
こういうことかね。
主キーの設定が曖昧だと、クエリーデザイナーでクエリー作った時に、どっちが親になるのか揺らいで、更新ができない表を作ってしまうことはあるけど。
sqlビューにして 親 inner join 子になってるか、一度確かめた方がいいかも。
的外れな書き込みならすまん。忘れてくれ。 ■ このスレッドは過去ログ倉庫に格納されています