Access総合相談所 27 [転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
ACCESSに関する質問はこちらへ
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
・何がしたいのか
・どんな処理を試したか
・動作状況など駄目な理由
テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
範囲で詳しく書くと、早く回答が得られるかもしれません。
図解があれば尚良し。
聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
ギブアンドテイクで情報を共有しましょう。
▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境 】 Windows**, Access**
【 VBAが使えるか 】 はい・いいえ
【 VBAでの回答 】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
前スレ
Access総合相談所 26
http://toro.2ch.net/test/read.cgi/bsoft/1349049986/ 零細企業です
重いという理由で、データベースの量を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で、パソコンも様々だからバージョンの違いで速度差があるかはわからん、すまん。 >>887
おっしゃるとおり、便利になる現場もあると思います。私も使ってみたいと思います。
それほど遅いという評判を聞かないので、導入してみます。
ありがとうございました。 ところで、2003だと自由に出来たショートカットキーの設定がどうもうまく出来ない。2007では出来なくなったのかな?Atl+数字じゃなくてALT+アルファベットで設定したいんだけど、できるのかな? >>884
考えてみましたけど、それらのテーブルを作ってどうすればいいか
やっぱりわからないです。
一応、入庫・出庫が動いた月日の在庫を出すことは出来はしました。
入出庫テーブルに期首在庫フィールドを作って入力し、クエリで固有の値を「はい」にして
月日ごとに期首からの入庫累計と出庫累計を出し、同クエリに在庫フィールドとして
期首在庫+入庫累計−出庫累計を計算する形で。
うまくやればレポートで>>884のような表がだせるのかも、とも思います。
ただ、実際の会社の在庫管理は複数品種(100種前後)あり、それらにロット、生産月度、
その他の区分が1〜2個あってそれらも品種内で分けて集計する必要があり、
レコードも入庫・出庫それぞれ400/月程度を入力する必要がある。
上のやり方だと、品種ごとにロット等のデータをテーブル上で連結させ、さらにそれらを
並べ替えて集計しやすくしたとしても、DSUMで入庫や出庫累計を計算するので
速度的に非常に遅いだろうと。ちょっと試したんですがとても使えなかったです。
だからやはり、期首在庫と入庫/出庫累計から計算するのではなく、
>>884の表みたいなテーブルがあって、入出庫があればその月日以下の在庫フィールドを
繰越+入庫−出庫で更新したり、新規にレコードを追加していけないかなと。
長文かつ内容がわかりにくくてすみません。 月末在庫テーブルと言ったけど現在庫テーブルの間違い。製品コード、年月、前月末在庫、当月入庫数、当月出庫数、現在庫というレコードを入出庫処理の都度更新してる。 販売管理
給与管理
備品管理
請求書発行
粗利計算(簡易出納帳)
をつくるとき、ひとつのファイルでやるのと
それぞれ目的ごとにわけるのはどちらがいいんですか? 規模による 十人程度の社員で、入力もひとりで済むようなら好きにすればいいし
ただ、1ファイル壊れたら(PCの故障含む)全滅 でも仕事が進むならあり
それぞれの業務にそれぞれの担当がいるレベルなら厳禁
上で書かれてるような「市販」だと、まずは望むものは得られない
アプリに業務をあわせる苦行が待ち受けている >>895
そうですよね市販ソフトってまったくあってないです SQL Serverつかつ場合もACCESS単体の場合も開発のやり方は同じですか?
ふつうにアクセス側でレポートつくったりテーブルつくったり、ですか? >>897
だいたい同じ。厳密にはデータ型が少し違ったり規定値やオートナンバーの設定方法が違ったりします。
accessでテーブル作ってsql serverにエクスポートしてマネージメントスタジオでちょっと手直し、という手順でやってます。 >>898
vbaもとくに意識せずに書いていいんですか? 自身のテーブルかリンクテーブルかは意識しなくても良いはず ファイルメーカーってしか使ったことないんだけど
accessのadoとdaoってのはどっちにしてたらいいんですか
適当に選んだら後で苦労することになったりしますか? 本にはADOを使えと書いてあることが多いけど、俺はDAOばっかり使ってる。だって便利なんだもん。本に書いてあることを鵜呑みにして失敗したわ。ADOをDAOに書き直ししたわ。 >>902
後から変更点するのは大変なの?
何を変更するのかよくわからないというかどういう違いがあるのかググってもよくわからなかった
暇な人簡潔に教えてください フロッピーとUSBメモリ程度の違いだからだいじょうぶ
フロッピー差し込むスロットがあれば
ああ、1.25MB と 1.44MB の差もあったか 単にFDてだけじゃダメだったな
PCで気を付けるのは規格とかバージョンなんだろうな
三年後五年後十年後を読んで発想することが一番肝 俺はdao からado。どうしてそうしたのかは忘れた。 思い出した。SQL Serverとか使うならadoが良いってどこかで見て切り替えたんだ。実際に速度差も有ったと思う。今は知らんけど。 >>903
関数が微妙に似て非なるもので、ADOは不便だったから、DAOに書き直したのを憶えている。
たしか、検索コマンドだったような記憶がある。
俺が仕事で使ってる業務用mdbも中見たら全部DAOだったわw
骨董品じゃなくて頻繁にアップデートしている現役バリバリの商品だよ。 自分なら DAO(ACE) で書きますね
既に ADO(OLD DB) はサポート廃止されてますし 谷尻かおりのAccess実用プログラミングの280ページに
「プログラミング言語でデータベースを操作するときは,基本的にADOを使用してください。」って書いてあったわ。
そしてその後に
「内部的にレコードを検索したり削除したりするときは,DAOのRecordsetオブジェクトを利用してください.ADOのRecordsetオブジェクトは,連結フォームのレコードソースと互換性がありません.」
て書いてあって、どっちを使うべきか悩んだのを思いだしたわ。
結局、後者の理由でDAOを使うようになったのを思いだしたわ。 ちょっとびっくりした
あちこちでADOへの移行を薦めてたんじゃなかったっけ?
http://itwebkatuyou.com/3441
いろんなサイトあるけど、↑が易しい解説かなと、参考までに
スタンドアロンで使い続けるならDAOでいいんじゃね?
将来拡大しそうならADOに移行しときなよ ってことじゃないの?
サポート廃止とか、頻繁にアップデートってほんと? >>910
アップデートは商品のことね。アップデートが頻繁な商用mdbでさえDAOだよ。古くさい、開発もメンテも終了したような骨董品じゃないよ、と言う意味。 MS は早々に ADO(OLE DB) を廃止したい様で
Access も例外ではなく 2013 から adp が廃止されてます
デフォルトの参照設定からも ADO は外されてます
手動で参照設定すれば使えますが
廃止明言のコンポーネント使って数年後に書き直すのも嫌ですからね 上のサイトの右端を 7900 にしたら出てくる文言
可能な限り、1 つのクライアントから Microsoft Jet データベースに対する接続は 1 つだけになるように設計します。
とあるように、コンパクトモデルならいいんじゃね DAOではODBCDirect ワークスペースがサポートされなくなりました。この機能を用いたコードはADO を用いたコードに置き換える必要があります。
10年前の出来事です。 レス数が900を超えています。1000を超えると表示できなくなるよ。