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/ リレーションシップを設定したら
自動で処理してくれるとでも思ったん?
そんなこと無理なんで手動で設定し直して下さい フォームに受注台帳のID入力するようにしてDLOOKUPで自動表示させたらええだけの話では?? >>787
マジか。ひも付け駄目なのか。
テーブルの項目は重複したらダメだろうと思ってひたすら正規化しようとしてた・・・。
rowsourceって値集合ソースの事??
複数列参照、埋め込み、どちらも聞いたことなくて、難しそうだ。
>>789
DLOOKUPね。やってみる。 別dbのテーブルとリンクさせてフォームに表示させたのですが、
フォームの項目を書き換えただけでテーブルの内容も書き換わってしまいました
書き換えない方法や、書き換える/書き換えないの設定はなんというのでしょうか? >>790 申し訳ないけど、まだ業務ソフト作るには早いと思うよ。
パッケージソフト、やっすいやつだと数万円で売ってるし。
なぜ売り上げの記録はマスター結合じゃダメか。商品番号1番が去年は「まんじゅう 100円」だったのが
なんとなく、あなたや他従業員の気まぐれで1年後に「自動車 100万円」で上書きしたら、記録にならないでしょ。
一般的なパッケージソフトでは、コンボボックスもしくは検索用ウィンドウ(フォーム)で選択したマスター情報をコピーする
仕様になっています。 >>791
フォームのデザインビューで、プロパティのデータタブ
「追加の許可 いいえ」「削除の許可 いいえ」「更新の許可 いいえ」
(ただし、ユーザーが製品版ACCESSを使っててテーブルを閲覧できる状態であれば
その保全性までは保証できない。ナビゲーション見せないVBAコマンドもあるにはあるが。) >>790
深く考えずにテキストボックスの更新後処理マクロで値の代入を使えばいいんだよ。
正規化じゃなく入力の補助という感じだな、うん。
そこにNoを入れたら受注テーブルからそれに対応する値が飛んでくるようすればいい。
クエリの編集なんかほとんどイラネ。 【 システム環境 】 Windows8.1, Access2010
【 VBAが使えるか 】 はい
【 VBAでの回答 】 可
【 検索キーワード 】 ALTER SYSTEM KILL SESSION
CSEを使用してSYSTEMユーザにログインをしてALTER SYSTEM KILL SESSIONで切断されたがロックされたままのセッションを切断しているのですが、
Accessにて同じような処理を行うにはどうすればよいのでしょうか。
DoCmd.RunSQLでは"ALTER TABLE ステートメントの構文エラー"が発生をしてしまいます。 >>795
たぶんだけど、docmd.runsqlはあくまで
Accessで持ってるデータベーステーブル、もしくはリンクテーブルに対して、AccessのSQL実行エンジンで閲覧、更新するものなのでサーバー系に比べて単純、セッションの概念もあいまいだと思います。
adoを使えばサーバーが持つ制御コマンドも通るけど、ado自体がcon(adodb.connectionの変数例).close で接続切るメソッド持ってるし。
DBサーバーに対するフロントエンドとしてのMS Access利用ということで宜しいでしょうか? UNIONでSELECTの結果をまとめることができますが、
フィールドの数が違う時に無理やり合わせることはできますか?
テーブル1が
名前、住所
テーブル2が
名前、住所、生年月日
の時、
テーブル1にダミーフィールドを差し込んで全結果を出すということをしたいのですが、
どうすれば良いでしょう >>797
null as x とか、0 as xのように挟む >>798
おー!ありがとうございます
すごいなぁ
なんでもできるなぁ クエリを読み取り専用にすることはできますか?
データ触ったら元データも編集されてしまうのですね データベースの名前をクエリの結果に含めることはできますか? テーブルそのものでは無く仮想の同じフィールドに揃えたクエリーを使う SELECT 1 as x,氏名
おー、できました、こんな感じですか、ありがとうございます
データベース楽しいですね >>800
クエリーデザイナーのテーブルが表示されていないグレーの部分で
右クリック、プロパティを選択、
レコードセットを「ダイナセット」から「スナップショット」に変更 >>804
できました、ありがとうございます
SQLビューとデザインビューのプロパティって違うんですね・・ >>801 単純に今開いているファイル名的なもので良いなら
[application].[currentproject].[name]を試したら、通った。
vbaを書くときに使う関数、プロパティの類は使えるっぽい。
もっと詳細な情報が欲しいなら、vbaでユーザー関数を作成するとか、
隠し扱いになってるシステムテーブルにリンク情報が収められている部分があるので
そこから拾うなどの方法がありそう。 給料の計算システムを作ろうとしています
保険料率が変わることを前提にしたシステムは、どのように構築すればよいでしょうか?
とりあえず
給料台帳、保険料率テーブル、保険料率の適用期間テーブル
のような形を考えてみましたが、
・保険料率の適用期間テーブル
はどういう形にすると運用しやすいでしょうか?
また、そもそもこれでは全然駄目だったりするのでしょうか
ずっと考え続けてよくわからなくなってきました・・・
何か良い方法があれば教えてください 一円でも間違ってたら社員全員から目の敵にされる覚悟が無ければやめとけ
時給が混ざるような形態だったら一分まで間違えられない
市販ので充分 そんなに高額でも無いし
もっと言うなら、保険ったって社会保険に厚生年金、基金、料率だの扶養の細分も毎月把握し続けなきゃならない
そういうのが大好物なら止めないが ずっと考え続けて分らなくなるレベルなら荷が重過ぎる
まず実務で何年もあらゆる形態の給与に習熟してないと、必ず躓く
会計事務所とか社会保険労務士事務所とかで鍛えられた者ならシステム作りも基礎からみっちりできるだろうが
アプリ作れます レベルで給与計算は過酷
給与は企業の根幹のひとつだからな 今回ちょっとバグっちゃいました てへっ! じゃ済まされない
振り込みなら金融機関にまで迷惑が及ぶ 迷惑程度ならいいが、関係各位に被害を与えかねない事態にまで発展することだってある
なに?従業員五人だと? まあ、だとしても給与には彼らの生活が掛かってるからな 安易に請け負うのは勧め兼ねる というひとつの独断意見
自分で読み返して補足するが、躓きはどんなシステムにもあるだろうが、給与は待った無しで迫り来るからな
そのプレッシャーを跳ね除けてやり通すには一分一秒をいのち削ってやり切らなきゃならん 並みの神経では保たない というひとつの忠告 >>807
808さんの言葉は厳しいですが同意です。
例えば、弥生給与、ベーシックプラン付きで78300円
有料アップデートが2年以内に1回以上あることでやや評判悪いですが
税制変更、保険料率変更が配信されます。年末調整も計算してくれます。
有名な別パッケージの弥生会計にもデータを反映できます。
自分でビルドする場合、少なくないマスターテーブルを設計し、絶対に間違いがない台帳を作成し、
変更をウォッチして遅延なく保守し、と考えたら気が重くないですか。
一人で作るとして制作に半月〜1か月、5人の零細と考えたらちょうど制作にあてた月日で
貴方の月給を割った場合、上記の価格と同等かそれ以上になるかもしれません。
もしくは給与計算は全部アウトソーシングするという手もあります。 >>808-809
db構築が楽しく、勇み足になるところでした、助かりました。
自作はやめて、市販のソフトを探してみます
ありがとうございました >>807みたいに過去の係数が変わる場合、どういう風に作るの? 簡単なのは消費税率のように税率と施行日をテーブルにでも入れとく
複雑なのは表ごとテーブルにして条件分岐で拾ってくるとか
複雑だけど件数が少なければ If とか Select Case とかで済ませる場合も 消費税率なんて大したことない
カラムが変動しだすと手がつけられなくなる >>811
さすがに法令ガチガチのものはaccessでは作らないけど
開始日と終了日を入れて、「マスター参照」な場面では
テーブルを直で使わず、(開始日)<=date()
isnull(終了日)or (終了日)>=date() みたいなクエリーを作って
参照させることはありますね。 零細企業です
重いという理由で、データベースの量を2年に一回消されるのですが、
こんな運用方法はあるのでしょうか?
論理削除ではなく、実際にDELETEします 消すのが上司なのか業者なのか分らんが、あり得ない 業者なら告訴もの
紙データに残してるとか言い訳要らないから 二年ごとに業態変わるならまだしも >>816
好きにされてます・・・
>>817
上司です。やっぱりありえないですよね 実際にどのくらいの重さなのか分からんから何とも
モニターの前で延々画面が変わるのを待ってるようじゃ
仕事に支障が出るしJETエンジンだとどうしても限界がある
システムがそれで問題無く稼働してるならええんじゃないの? >>815
マシンにもよるけど、初期core2duoでもaccessはよく動くはずなんだけど
windows98 CPU MMX pentiumで運用してるならそれもあるかもね(いや、そういう会社本当にあるんだってば)
accessで取り扱う現実的なレコード数は数万くらい おそらく1GBに到達しないくらいが良くて、昔はテーブルを別DBファイルにリンクさせて
vbaでbackup201801とかなんとかリネームコピー、
実績的データを削除してから最適化までを自動でやるボタンを作ったりしてました。
プロが作る売上システムでも法定保管期間経過後、明細を掃除する設計のやつがあるにはある。 >>821
コピーしてから最適化をお勧め。最適化に失敗して開けなくなったことがある。
以来コピーを必ずしてから最適化する。 ご教授願います。
access2016環境です。
テーブルからクエリ作成、クエリからメインフォームとサブフォームを作成しました。
サブフォームの集計した値をメインフォーム上で参照するのはちょっと調べれば出来たのですが、
メインデーブルに合計金額が反映されません。どのように設定すればよろしいでしょうか? また、素人さんがAccessを使わされたんですね。
Accessなんて止めなさい。小さな会社の事務のお姉さんが使うものです。
ファイルメーカーがいいですよ。 てか今どうやってんの?
ちゃんと参照できているなら
適当なイベントに引っかけてメインテーブルの合計金額用項目にセットしろとしか言えん サブフォーム用クエリに集計した値=合計金額なら
メインテーブルへ書き込む必要ないよね。
Excelとかへ出力とかするなら、メインテーブル+合計金額の
選択クエリを作ればいいと思う。 なんとなくやりたいこと見えたw
95から変わらないACCESSのダメ仕様、とっとと直せ案件の一つだと思う。
メインとサブで親子関係結んでて、
サブフォームのフォームフッターにsum関数入れて、メインの合計額にリファレンス入れたいんでしょ。
=集計にしてもメイン側テーブに反映されるわけじゃないし、サブの更新後アクションで
メインの合計欄=sum([サブのフォームフッター集計欄])ってやっても、その集計欄の計算タイミングが
合わなくてレコード更新前の集計が入るんだよね。
かなり面倒くさいけど、サブの更新後イベントプロシージャで
レコードセットクローンを作って集計し、メインに書き込むのが確実だったりする。 テーブルをutf8のbomなしで出力する方法おしえて >>828
テーブルをutf8のbomなしで出力すればいいのだ。 >>828
マジレスすると、Accessの機能を使わないでテーブル内容を、
データ種類がバイナリのadoストリームに流し込んで保存する。 【 システム環境 】 Windows7, Access2003
【 VBAが使えるか 】 少し
【 VBAでの回答 】 可
【 検索キーワード 】 Access , 外貨
Access初心者です。
社内システムをAccessで検討中です。まずは練習と思い家にあったAccess2003で作っています。
Accessでできると判断すれば社内PC(日・タイ語)の一新と最新Office(日・タイ語)を購入予定しております。
【本題】
テーブルやフォームなどで外貨の表示や計算はできますか?
現在想定している外貨は、タイバーツ・日本円・USドルです。
ご教授お願い致します。 もちろん可能です。為替レートで掛けたり割ったりするだけだよ。 ご返答ありがとうございます。追加で質問させてください。
製品登録の際に、通貨(バーツ・ドル・円)を選択して価格を入力し保存したいと
思っております。
書式で通貨(円)とユーロはありますが、ドルやバーツはどのようにすればよろしいのでしょうか?
よろしくお願い致します。 >>836
なんとなくできたので、
Private Sub Form_Load()
Dim fmt As String
fmt = "\" & ChrW("&H0E3F") & "#,###"
Me!txt1.Format = fmt
End Sub
unicode拾えるっぽい。
ただし、フォームデータシートビュー、クエリー、テーブルなどの一覧で、
「これは円」「これはドル」「これはバーツ」
というのは無理なので、必要ならばテーブルに通貨の選択肢を追加、
クエリーで選択肢の参照と結合した「単なる文字列」の列を作成したほうがラク。
通貨型とはいえ、基本的に数値型なので
レポート機能でインボイスや請求書を作る場面以外は、計算・集計の再利用性を考えても
通貨単位を書式で解決することにこだわらないほうがいいです。 >>836
ご丁寧に返答頂きありがとうございます。
マクロまでご指導頂き大変勉強になり、また>>836さんの学識には平伏致します。
ご指導頂いたことを踏まえて頑張ってみます。
まずは通貨コードをドロップリストで選択できるようにして作ってみます。
Access初めて二日目ですがまだ何が何やら分かりませんが楽しいですね。
またご質問させて頂くと思いますのでよろしくお願い致します。
ありがとうございました。 通貨は
USD 1.00
JPY 106
THB 318
の様に編集する事も有ります。実務では使いにくいので、ほとんどのフォームやレポートは通貨ごとにソートして出力し、通貨の区分はヘッダーに表示してます。 >>839
ご助言ありがとうございます。参考にさせて頂きます! 上下で隣り合うセルを結合せずに1組として固定するにはどうすればいいですか?
上のセルに企業名
下のセルに企業内容
・・・という体裁で資料をつくり
フィルターをかけたときにこの上下のセルが1セットでフィルターかかるよう
にしたいです。 企業情報:企業名&企業内容、と言う項目をクエリで作る。その項目にlikeかな。 ありがとうございます。。
恐れ入ります、クエリの知識がなく時間がないため
単純に上下の2行を1セットとして固定した表を作り、
上下の2行を1セットで固定された状態でフィルターに対応できればいいのですが、、
できそうで、できないものでしょうか? 842さんよく要件わかったな、俺はさっぱりわからん。
>>843 一旦、excelを忘れるんだ、accessにはセル結合はない。テーブルは行列と呼べないこともないが、列はあっても1行は1レコードと呼ぶ。
縦の結合って、フォームのテキストボックスのことを言ってるのかテーブルのことを言ってるのかよくわからん。
クエリーやテーブルで「縦の結合」だったら「2レコード間の参照」なので相当難しいぞ。
リレーショナルデータベースで「結合」という言葉を使うのは、一般的にはテーブルとテーブルの結合、
クエリーで文字列と文字列を組み合わせる文字結合くらいかな。 データシートビューですが
タッチパッドの二本指のスクロールができません。ピンチでスクロールします。仕様ですか? 請求書発行するシステムつくるとき
別途フォントをインストしてるんですけど
他のPCにもファイル配布するときにはそっちのPCでもフォントをインストする必要がありますよね?
みんなも複数台で使うときは面倒だけどそうしているんですか? 助けてください。
テーブル数個とクエリ数個のみで構成されているaccdbファイルを、
別の支社の事務所に持って行き、開こうとしたのですが、アクセスそものは起動しても
まったく何も表示されない状態になってしまいました。
ttp://imepic.jp/20180330/026280
ムリにいろいろクリックしまくってやっと何か表示できたのが↑この状態です。
とにかく、何もクリックするところもない状態でした。
これ、何が原因なのか、どうすれば普通にテーブル一覧とか見られるようになるのかわかる人
いないでしょうか?お願いします。教えてください。
PCに詳しい唯一の方が辞められたばかりなので、もしやその人が何か起動時の設定をしたまま
去って行ったのではと予想しています。 >>847
windows標準のフォント使って下さい
>>848
これ、普通のACCESSインストールされてます?
左のアイコンが「A」マークじゃなくて、不明アプリアイコンだから
Access runtimeだけインストールされてる気がする。
runtimeはそのままではナビゲーションも、テーブル、クエリーも出ず、
まず自動で立ち上がるメニューフォームを組む必要がりますよ。
「いや、確かにインストーリされている」という場合には
新規データベース作って、そこにインポート機能で
それぞれのオブジェクトをインポートしてください。 >>849
標準フォントじゃウエイトそろってないしデザイン的にちょっときついですね >>847
そうしてますね。フリーのバーコードフォントとか全配布。
PCのフォントフォルダに無ければ共有フォルダからコピーするってコードを開くときに実行してます。 >>851
あーなるほど
ACCESSのVBAでそんなことできるんですか? >>852
スペシャルフォルダを開くとかVBAでファイル操作とか検索するとサンプルや解説サイトがいくつかあるよ、やってみて。 >>853
ありがとうございます
スペシャルフォルダをVBAでやるんですか? やるよー便利だよー。
データベースからクエリで抽出、EXCELに出力ってとき、だいたいDesktopとか。だから割と必須です。 【 システム環境 】 Windows7, Access2010
【 VBAが使えるか 】 少し
【 VBAでの回答 】 可
助けてください。
tblAは、[id][なまえ][電話番号][性別][入会日]というフィールド構成のマスター名簿
tblBは、[id][入金日][入金額]というフィールド構成です。
このテーブルを元に、VBA上で、
[id] [なまえ] idごとの[入金額]の合計 WHERE 昨日=<[入金日] <= 明日
というレコードセットを取得したいです。
INNER JOINとか、そういうのを駆使して、なんとかひとつのSQL文を作りたいのですが、
うまくいきません。
どなたか、SQL文そのものをご教示ください。
お願いします。 ACCESSの質問ではなかったようです。
すみません。
質問を取り下げます。 いや、そんな事無いんだけど土日は休み。月曜日で良ければ。 >>857 select id name sum(入金額) from tblA inner join tblB on tblA.id=tblB.id
where tbl.B.入金日>=date()-1 and tblB<=date()+1 group by id,name
かな aとbというテーブルがある時、
SELECT *
from a,b
と書くのは
SELECT *
from a CROSS JOIN b
と書くのと同じなのでしょうか? ▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境 】 Windows10 Access2016
【 VBAが使えるか 】 いいえ
【 VBAでの回答 】 否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
access 今度MOSaccess2016を受けるのですが、
デザインビューとレイアウトビューの使い分け
その質問ならコッチとかどっちを使っていいのかが分からない
あと、Yes、Noも
よろしくお願いします >>862
「よくわかるトレーニングテキスト」を購入し、読解されることをお勧め致します。 問題を解いてるとレイアウトビューが出てくる時ありますが、
そこをあえてレイアウトビューを使わずデザインビューで回答しても正解なのでしょうか?
一応MOSの問題といてると正解になります
>>863 よくわかるマスターMOSaccess2016を勉強中です MOSのAccess2016の試験はどれ位の問題数が出ますか?
明らかにEXCELよりも多いので戸惑ってます。時間内で間に合うか心配です
FOM出版しかやってないですけど不安ですね FOMの問題数(量)だったら回答がまにあわない(笑) 十年後のOfficeでもAccessとVBAは残ってますよねよね? メモリ不足
四ねよ ボケ カス
所詮おもちゃアプリ サンプルで拾ったvba付きのDBを追いかけたところ、
変数に値が入っていました
・DBを開くと、フォームが開く
・フォーム上のボタンを押すとbutton_click()が走る
・button_click内には変数に値を入れるコードはない
・値はあるテーブルの値
常にvba上のある変数に、なにかしらの値を入れるような方法ってあるのでしょうか? そのマクロは社内の古いテスト環境にあったものなので公開は難しいのですが、
もし何か参考になる資料などがアレば教えていただきたいと思います http://www.geocities.jp/cbc_vbnet/kisuhen/hensuu.html
button_click() にコードが無くても、Formを開いたときに走ってるかも知らんし
そのテーブルの存在意義が変数格納のためだけにあるかも知らんし
上のサイト見るだけで理解してしまうかも知らん あぁ、AutoExec とかでマクロ側に入れてるようなのも見たことある form_openやform_loadで変数に値を設定してる、はず >>874 public変数か何かに、先の動作で埋め込み済み
なんじゃないの?
public変数の有効期間は保証しない、みたいなことを
オフィシャルに書いてたから、個人的にはあまり使わないけど。
コードにその問題のa=bがあるなら、コードエディタの検索
使って「b」をカレントプロジェクト全体で検索かけたら何かわかるかもよ 本当にお前らって役立たずのクズだなw
少しは役立てよ
社会のダニ共 【 システム環境 】 Windows10, Access2016
【 VBAが使えるか 】 いいえ
【 VBAでの回答 】 否
会社の製品在庫の管理をなんとかPCでできないかと思い、4月にaccessを
買って少しずつ勉強しています。
日々の生産(入庫)と出荷(出庫)を「入出庫テーブル」に入力し、
クエリで集計して「在庫表テーブル」に下のような形で出力したいのですが、力量不足で
できません。
月日 繰越 入庫 出庫 在庫
4/1 100 0 40 60
4/3 60 100 40 120
4/9 120 50 10 160
前回入庫・出庫が動いた日の在庫をどうすれば繰越フィールドに持ってこれるのか。これが
できれば在庫フィールドは繰越+入庫−出庫で簡単に出せると思うのですが。
お手上げですので助力をお願いいたします。 Access2003にアドインを入れたらウィンドウメニュー選択するだけでフリーズするようになって仕方なく、家に転がっていたAccess2007入れた。んで、ヘルプを見ようとしたら、サポート打ち切りと言われてしまって怒られた。
Access2016入れようか悩んでるんだけど、2007と比べて良くなったところあるの? >>882
取り敢えずテーブルの持ち方だけ。
入庫テーブル、出庫テーブル、月末在庫テーブル、を別に持ってる。 >>883
フォームに配置したコントロールの位置やサイズをフォームのサイズ変更に合わせて変更可能になってる、とか? >>885
それって、便利なんですかね?
ところでスピードはいかがですか?2003→2007で少しモッサリするんですけど、2007→2016はどんなもんでしょうか? >>886
割と有難い機能だけど人それぞれかも。
開発は2016だけど実行はruntimeの2013や2016で、パソコンも様々だからバージョンの違いで速度差があるかはわからん、すまん。 ■ このスレッドは過去ログ倉庫に格納されています