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/ >>365
詳しい説明ありがとうございました。
リンクテーブルと言うのを使って出来ました。速度的にも遅いとは感じませんでした。実験用に作った10行ほどの名簿データのようなものだからでしょうか?
今後、データを追加して行き数千〜数万行くらいになる予定です。それくらいのデータをsqlサーバーにエクスポートすると数秒とか数十秒くらい掛かりますか?
他の方法も試してみる予定です。 テーブルの件数が多くなると抽出に時間がかかったり、一度に多くのレコードを追加すると遅く感じることになる。
数千や数万なんてDBとしては大したことない件数だけど、これで遅く感じたらそれは遅いってことでいいと思う。
仕事で請けてんなら処理に係る時間を計測するようにvba書いたり面倒臭いことをする羽目になることもあるだろうけど、
そうでないなら見なかったことにしたり、遅いと感じなければ問題ないよ。 >>362
興味あったんで少しだけ余った時間使って試したけど、そもそもタスクバーのアイコンが変わらない
フォームとレポートのアイコンを… てのはチェック入れてるけど、他は何を見れば良かった?
Windowsのテーマがどうとかも関係してた?
2010 on Win10 Pro や 2016 on Win10 Pro とかは試したけどやっぱアイコンが変わることは無かった あるスポーツサークルの名簿と、集会の参加記録をまとめたものを作っています。
名簿テーブル=memberID、名前、入会日、退会日
集会記録テーブル=開催日、開催場所、スポーツ種目、memberID、その日の得点
という構成です。
この状態で、クエリひとつで、以下の表を作りたいです。
名前、入会日、最初の集会参加日、最後の集会参加日、これまでの最高得点、
見学回数(参加したけど点数なしの日)、最初の競技参加日(得点ありの日)、
最後の競技参加日(得点ありの日)
この一覧をひとつのクエリで表示することは可能でしょうか? 可能。
それぞれの項目をひとつのクエリで作っていって、
最後にまとめればよし。 【 システム環境 】 Windows7 64bit, Access2010
【 VBAが使えるか 】 いいえですが、勉強中
【 VBAでの回答 】 他にないなら可
お願いします。
日付、店、メニュー、満足度 の各フィールドからなるテーブルがあります。
一日に最大3店舗で計1回から15回ほど外食するので、同一日付の同一店舗で
最大10レコードほどあります。
このテーブルを元にして、レポートを作りたいです。
レポート1ページ当り、同一日付・同一店舗でのメニュー一覧を表示したいです。
しかし、このレポートのソースが作れません。間にクエリをはさむとしても、
どうすればいいのかわかりません。
私が思いついたのは、
1レコードにメニュー1からメニュー15までのフィールドを持つテーブルに作り直し、
そのテーブルの1レコード=レポートの1ページとする、という方法です。
もっとスマートな方法はあるでしょうか? 根本的にレポートがわかってないのでは?
日付→店の順でグループにして表示するだけなので、
ソースもへったくれもないでしょ。元のテーブルがそのまま使える。 フォームで複数のテキストボックスのどれかが更新された場合というイベントを掴むためには、
個別のテキストボックスの更新時処理に記入しないとダメですか?
一括で記入できないですか? >>377
そういうのイベントを定義すればできるんじゃないかい。頭のいい人はAccessでもやってるよ多分。
でも自分はプロパティを定義してやっている。これで十分だった。
以下のような2行を入力可能な全てのコントロールのAfterUpdateに記述。
If Not IsEditing then IsEditing=True ' IsEditingはPrivate Set; Public Get
CommonSubProc ' 共通Subプロシージャを実行
共通Subプロシージャから
ルールのチェックとか SubmitボタンのEnabledの制御とか色々呼び出す。
こんなんで参考になるか >>379
>>380
フォーム自体のレコード保存のイベントに書く事にしました 【 システム環境 】 Windows7 32bit, Access2010
【 VBAが使えるか 】 すこし
【 VBAでの回答 】 ○
【 検索キーワード 】 テキストボックス クエリー MSGBOX 値
クエリをデータソースとするフォーム上で印刷ボタンを押すと単票形式のレポートを出しています。
レポートには「年月日の自と至」のテキストボックスがありますが、
テーブルに格納している「年月日の自と至」とは異なる値を入れる必要があるため
印刷ボタンを押したときに、MSGBOXでユーザに入力させ、
レポートを開くときにレポート上の非連結デキストボックスに代入することで対応しています。
今回、1件ごとに印刷する機能を残したまま、
メインメニューから印刷対象全件分の一括印刷をする機能追加の要望がでました。
印字する「年月日の自と至」は、クエリーにてテーブルの値から割り出した値を一括印刷したいです。
しかし、非連結テキストボックスにクエリーの値を代入する方法がわかりません。
テキストボックスを非連結から連結に変えてしまうと、MSGBOXの値を代入することはできなくなってしまいます。
レポートを個別印刷用と一括印刷用の両方を用意すれば実現できますが、あまり良い方法でないと感じています。
レポート内に非連結と連結の2つのテキストボックスを用意し、条件付き書式等で見えなくなる、というのもどうもよくないような・・・
何とか一つのレポートで実現したいのですが、どのような手段がありますでしょうか教えてください。 一行目に書かれているフォームに日付の自と至を入れれば、レポートでそれを参照するだけでは?
レポートの非連結テキストボックスのソースを =Forms!一行目のフォーム!自 と同じように至 として
連続印刷か個別印刷かも一行目のフォームでボタンで選択とか >>383
レスありがとうございます。
なるほど
・フォーム上にデータソースから割り出した「年月日の自・至」のテキストボックスを設置する。
・フォーム上のテキストボックスはソースとは非連結にして、画面open時
個別画面にてテーブルの「年月日の自・至」から割り出した「年月日の自・至」を >>383
すいません。途中で書き込んでしまいました。
なるほど、と思いましたが、不明な点があり、考える必要があります。
説明が足りなかった部分がありました。
画面は
メイン画面−1件だけ抽出した個別画面
に分かれていて、メイン画面で主キーを持って抽出した個別画面を出し
そこで印刷ボタンを押すとそのレコードが出る、というものです。
これだと、印刷対象が200件ある場合、200回印刷しないといけないので
メイン画面上に設置したボタンを押すと対象200件全件の印刷ができる、を実現したい。
しかし、全件印刷の場合は「日付」を個別に入力するわけにはいかないので
「たぶんこの日付でOKでしょう」という日付を割り出して印刷し
割り出した日付が使えないごく少数の案件は、個別画面でユーザに再印刷させる、という仕様です。
ということで、個別印刷と一括印刷のボタンの画面は別々です。
説明が足りなくてすいませんでした。
アバウト過ぎて判らんw なんぞ?メイン画面て? 最初の質問の一行目に書いてあるフォームでいいん?
で、ユーザー?再印刷? 「たぶんこの日付で・・」 いいなあ、おおざっぱでw
クエリー使ってるんなら一件だろうと200件だろうと、フォームに表示するかレポートで出力するかだけの違いで
困ること無いと思うんだが、何なんだ?
その抽出条件をフォーム上に散りばめて必要なだけ絞り込んだものをフォームorレポートではダメな理由は?
もしかしてクエリー自体が面倒なことしてない? クエリーの条件式で Between [ ] and [ ] とか < > とか
を必要に応じて適切に当て嵌めるトコを学習した方が手っ取り早い気がしてきた 兄弟関係の抽出 と LIMIT、OFFSETに代わるもの
OS: Windows 10 Pro
Access Version: 2016 (2010も使用)
VBA:Excel,Powerpointのみ
VBAでの回答:否
検索キーワード:access SQL 件数 指定
http://www.accessclub.jp/bbs2/0051/beginter16860.html
「No16860.SQLで件数を指定する方法」
と
SELECT [電話番号] FROM [T_児童マスタ] GROUP BY [電話番号] HAVING Count(*)>1
上記2つ等を元に、次のテーブルに適応させようとしていますが、
スマートな文、クエリ(または他の手法)が思いつきません。
どうかアドバイスをお願いいたします。
T_児童マスタ
学級 氏名 電話番号
11 A 1111-11-1111
21 B 2222-22-2222
31 C 1111-11-1111
41 D 2222-22-2222
51 E 1111-11-1111
61 F 3333-33-3333
↓
望む出力結果
学級 氏名 電話番号 兄弟学級1 兄弟氏名1 兄弟学級2 兄弟氏名2 兄弟学級3 兄弟氏名3
11 A 1111-11-1111 31 C 51 E
21 B 2222-22-2222 41 E
31 C 1111-11-1111 11 A 51 E
41 D 2222-22-2222 21 B
51 E 1111-11-1111 11 A 31 C
61 F 3333-33-3333 Accessでシステム作ってる所って多いの??
WindowsUpdateとかどうしてる?
いきなりシステムが動かなくなりそうで怖いなー
動かないようなシステムを作るヤツがヘマなのかな Access97で開発したシステムをOS渡り歩きながら現在まで運用してるけど
WindowsUpdateで問題が起きた事はないね
OCXとか多用したら問題が起きそうな気はする Access2.0で作った。
Access97にしたらUnicodeで泣いた。「1月分請求額」とか列名や変数名で使ってた。
Access97で全面的に書き直した。
Access2003のとき?、ODBC Directで泣いた。とりあえず修正して使った。
Access2010で全面的に作り直して現在に至る。 【 システム環境 】 Windows7, Access2010
【 VBAが使えるか 】 そこそこ
【 VBAでの回答 】 可
【 検索キーワード 】
フォームに表示するテーブルをコンポボックスで変更したい
コンポボックスでテーブルを選択してボタンを押すと選択されたテーブルを表示するようにしたいと思いっています。
例えば、テーブルA〜DがあるとしてコンポボックスでAと選択してボタンを押すとAのデータが表示するイメージです。
テーブルを表示するテキストボックス(非連結)のコントロールソースに「select * form [FORMS]![コンポボックス名]![フィールド名]」としましたがERRORになります。
1つのフォームで複数のテーブルを表示するのは不可能なのでしょうか? >>391
ボタンのクリックイベントでフォームのRecordSourceをコンボボックスのテーブルに設定。
各テキストボックスのControlSourceにそのテーブルのフィールドを割り当てる。
でできない?
Win2000→XP→7
Access2000→2010→2016
特に問題なしでした。
2016でOfficeを64bitに入れなおした時、少し修正があったくらい。 >>391
非連結のテキストボックスは DLookup でいけると思う
コントロールソース変えるのはRowSourceじゃないかと
リストボックスに表示するクエリをRowSourceで変えることあるけど
フォームでしょ?めんどくさくないですか? Access 2013を使っているんですが、各フォームのコントロールボックスに表示されてるアイコンて、フォーム毎に変更できるんでしょうか? >>392,393
出勤して確認したらテキストではなく、サブフォームでした
ただ、アドバイス頂いたもので解決できました
ありがとうございます。 Accessのマクロでエクセル出力をすると、既存ブックを上書きしても置き変わらない現象がありますがなぜですか?
また、出力した際にデフォルトでバックアップを作成する設定をはずすことって可能ですか? 既存ブック開いたまま(プロセス含む)で出力してるとか
バックアップって何? >>397
xlkの拡張子のやつ、Excelで名前をつけて保存の時全般オプションにフラグがあるやつです >>399
ありがとう。
それは、質問前に確認しました。
マクロの世界では無理で、vbaの世界ですね。 access2010
信頼できる場所を追加したい。
ユーザー毎の追加ではなく、デフォルトで追加設定したい。 Accessのフォーム作り込んでると
「イベント プロパティに指定した式 〜〜 でエラーが発生しました:引数は省略できません。」
ってエラーが表示されて、以後、エラーが出たフォームのマクロが全く動かなくなる現象の対処方法知ってる奴いたら、教えて欲しい…。 >>403
ちなみに環境は書き忘れたけどWindows7とaccess2010 >>403
そういうときは多分
一度新しいAccessファイルにフォームをエクスポート、
元のフォームを削除してエクスポートしたフォームをインポート。
もしくは
新しいAccessファイル開いて全てのオブジェクトをインポート。
既存のファイルは捨てて新のを使う。
念のためバックアップはとっておいて。 >>406
結局うまくいかずフォーム作り直した…。
VBAのコードは作り直し前からのコピペで動いたから合ってると思うんだよな…。とりあえずサンクス 超初歩的な質問なんですが、よろしくお願いします。Access2013を使っています。
あるフォーム上にtxtbox_1からtxtbox_5までのテキストボックスがあるとします。
同じフォーム上のコマンドボタンをクリックすると、この5つのテキストボックス内にあるデータをメッセージボックスで
表示したくて、下のようなコードを書きました。
何がだめなのか教えてください。
Private sub cmdbtn_Click()
dim tb(5) as string, i as integer
for i = 0 to 4
tb(i) = "txtbox_" & cstr(i)
msgbox me!tb(i).value
next
End Sub >>408
たとえ短いコードでもエラーメッセージくらいは書きましょうね
そのコードだと string 配列で処理したいのか、コントロール配列で処理したいのか分かりません
string 配列で処理するならコントロール参照箇所を変更
コントロール配列で処理するなら string 配列を変更しコントロール格納
あとF9でブレークポイント設定してから実行するとF8で1行ずつ確認しながら実行できますよ すみません。
409さんのご指摘を参考に自己解決しました。
私はもともとstring配列で処理したかったのです。
つまりtb()配列にはテキストボックスコントロール名を入れておきたかったのです。
もういちど書き方を調べました。
msgbox me!tb(i).value ではなく、
msgbox Me.Controls(tb(i)).value と書いたらうまくいきました。
ありがとうございました。 フォームで連結してるテーブルではない別のテーブルを参照して入力させることはできますか? お願いします。
あるテーブルから、 「日付」「校舎名」「出席者氏名」 の3フィールドを使って
レポートを作りたいと思っています。
レポートの1ページに、日付毎、校舎毎の出席者一覧を表示させたいです。
つまり、日付-校舎の組み合わせごとに1ページずつのレポートにしたいです。
レポートのデザインで、日付と校舎名をグループ化するとして、どちらかを上位にすればいいのでしょう?
そして、日付ヘッダー、校舎名ヘッダー、日付フッター、校舎名フッターのどれかに改ページを設定すれば
いいのでしょうか?
また、日付と校舎名を記したテキストボックスはどのヘッダーに設置すればいいのでしょうか? >>411
更新処理を書く必要はありますができます
>>412
グループ化は優先させたい物を上位にします
住所であれば都道府県は上位、市区町村は下位という感じです
日付と校舎名どちらも上下差ないのであれば、ソート順で優先させたい物を上位にすれば良いと思います
ヘッダーフッターに関してはあれこれ言うより簡単に試せるので試した方が早いです >>413
dlookupを連結コントロール書くのじゃ無理ですか? Access2010使いの俺に
Access2013,Access2016の
良い所教えてください。 >>416
テキスト型の最大サイズが4000になったんじゃなかった? フォームにファイルのアップロード機能を追加したいのですが、どのようにしたらよいでしょう?
アップロード先はファイルサーバです。 私は元創価の会員でした。
すぐ隣に防衛省の背広組の官舎があるのですが、
自分の家の窓にUSB接続のwebカムを貼り付けて、そこの動画を撮影し続け、
学会本部に送っていました。
別に大したものは写っていません。ゴミだしとか奥さんが子供を遊ばせている所とか。
官舎が老朽化して使われなくなってから、
今まで法人税(うちは自営業です)をほぼ払わなくても済んでいたのが、
もう守ってやれないのでこれからは満額申告するように言われました。
納得がいかないと言うと、君は自業自得で餓鬼地獄に落ちる、
朝夕南無妙法蓮華経と三千回ずつ唱えて心をきれいにしなさいと言われ
馬鹿らしくなって脱会しました。
それ以来、どこへ行くにもぞろ目ナンバーの車につけまわされたり大変な日々です。
全ては自分の出来心から起きた事で、どこに訴えて出ると言う訳にもいかないのですが、
なんとかあの人たちと縁を切ってで新しい始まりを迎える方法はないんだろうか。 mysqlとかの編集のために購入を検討してるのですが
フリーソフトと比べてやはり良いものでしょうか? 【 システム環境 】 Windows10, Access2016
【 VBAが使えるか 】 いいえ
【 VBAでの回答 】
すごい初歩的かもしれないんですがExcelから張り付けをすると縦一列分張り付けしてるのにそれがぜんぶ同じレコードに入力されて一列に張り付けできません。
データ型は長いテキストです >>426
興味があったのでやってみたら出来ました
Excelでコピーしたのは矩形になってます? >>426
貼り付けたいセルは青くなってる?
あと新規行?
エクセルもそうだと思うけど、セルの選択方法は2種類ある
カーソルが点滅する文字入力モードと、背景が色づくセル選択モード。
文字入力モードだと1セルに全部貼り付けられる
もう一個注意点として、アクセスは選択した範囲しか基本的に貼り付けてくれない。エクセルで5行選択してても
アクセスで3行しか選択してなかったら3行分しか貼られない
新規行は例外で勝手に増やしてくれる アクセスのレポートを使って封筒の宛名印刷をしたいのですが用紙設定をしても全く見当違いのものが印字されてしまいます。
アドバイスをいただけると… どうせ得意先マスタ持ってるんだから宛名印字までしたい という要望はどこにでもある
レポートのデザイン画面のページ設定で適切な用紙サイズ、向き、余白、出力先(プリンタ)を
キチンと設定し、それを必ず保存する(デザイン画面でのプリンタ設定が最優先されるので)
尚且つプリンタの用紙設定も取説をよく読んで封筒印字に相応しい設定を設けておく
因みに、特殊サイズでの印刷もそこそこある場合は、出力先のプリンタをコピーして
封筒用とかの名前を付けて別プリンタとして使うこともよくある
利点は毎度用紙設定で混乱しなくとも済む点だけだが
印刷前に必ずプレビューで確認してから印刷する
そんな辺りじゃないかな
長尺モノ、A5用紙、A4不定形とかいろいろやってきたけど、上記の設定だけキチンと
把握してれば困ったことは無い Access Desktop Sputters Back to Life
In 2016, Donald and Nigel surprised all with election results that were obvious if you wanted to look somewhere other than CNN or The Telegraph.
The same also applied to the old fashioned world of Microsoft Access desktop solutions because contrary to the prophesies of the IT gurus,
MS Access started to crank back into life. "What say you Garry ? " Here were the late surprises as best described in the FMS December newsletter.
? MS Access was added to the small business editions of Office 365
? Support for dBase tables were added back to Access 2016
? Support was added for links to SalesForce, Dynamics CRM and more
Look these are not huge changes but given that Access is not cloud and its not phone, these are signs that Access is still loved in Microsoft. Windows7とWindows8.1。Access2010
2つのアクセスのファイルがあり、同じ構成のレポートがあります。
テキストボックスに コピーが途中になってしまいました。再投稿させていただきます。
Windows7とWindows8.1。Access2010
2つのアクセスのファイルがあり、同じ構成のレポートがあります。
それぞれフォントを"MS明朝"にしたテキストボックスに"榊"と言う文字を入れて印刷をした時、
1つは"木示申"、もう一つは"木ネ申"で印刷がされてしまいます。
印刷プレビューを見たときは2つとも"木示申"と表示されます。
"木示申"と表示されるレポートをエクスポートして印刷を行っても"木示申"と印刷されます。
どういった要因で"木ネ申"と印刷されるのでしょうか、修正方法もございましたらお教えください。 たぶんwindows側の問題だったと思う。
7以前と8以降では日本語フォントが変わってるとかなんとか。
詳しくはwin*** フォントでググればいいよ。 へえ、Word2010でもなんだ ぐぐって知った あと「辻」もらしく
フォントを変えてみるのがひとつ
https://goo.gl/Z2oe9f この回答を参考にするのが解決策ではいちばん手っ取り早いのかも 商品テーブルがあり、商品名や価格、補足事項などが記載されています。
複数の(多くの)商品価格を一気に変更したい場合、一般的にはどのような手順を取るのでしょうか?
手元には新価格が記載されたCSVファイルがあります。
大まかな流れを教えて頂けたら幸いです。
細かいところは勉強しながらやっていこうと思います。 >>442
更新クエリはやったことありますが、一定の条件で再計算という方法しかやったことがありません。
今回のように新価格一覧からとってくるような方法というのも可能なのでしょうか?
当初、更新クエリでなんとかならないかとググりましたが、調べ方が足りないのか分からないままです。
もう少しだけヒントをお願いします。 CSV→テーブル1→クエリデザイン→商品テーブル+テーブル1→商品IDでリンク→更新
こんな流れだったと思う >>427
出来ないです。矩形とは左クリックして下までスクロールの事でしょうか >>428
セルは青くなってないです。
枠線が点滅してます。
行は新規です ご質問です。
@フロントエンドがアクセスを起ち上げるとサーバからマスタテーブルの更新を受ける。
Aフロントエンドのテーブルの更新中はフロントエンドのテーブルのみが更新され、サーバ側は更新されない。
Bが入力完了ボタンを押して初めてサーバへデータが受け渡されられる。
と接続を限定化すれば30人でシステムを触っても壊れにくかったりしますでしょうか? レコードを折り返して表示させたいのですがやり方がわかりません。
名前 電話番号 | 名前 電話番号
名前 電話番号 |
・ |
・ |
・ |
名前 電話番号? すみません途中で送信してしまいました。
下で折り返して2列で表示させたいのです。
サブフォームでこれらのレコードを表示したいです。
access2007です。 イマイチ言ってることがわかりにくいけどサブフォームふたつ並べるだけでいいんじゃないの?
1列の件数分のクエリと超えた分のクエリをソースにして >>455
なんで?
最新Officeにもついてるし 【 システム環境 】 Windows7 Access2010
【 VBAが使えるか 】 いいえ
【 VBAでの回答 】 否
【 検索キーワード 】 Googleやヘルプでの検索キーワード Access 年数 クエリ
設備稼働日から現時点での年数と、廃却日までの年数を表示したい。検索ワードだと、現時点での年数だけです。よろしくお願いします。 >>457
現時点での年数を表示できるなら、応用しろよ アクセスをバックエンドにしてるとよく壊れるんだが、ポスグレとか使うと改善できる?? 2013のRuntime上で
コントロールソースに「=Format([日時],"mm/dd hh:nn")」とすると真っ白けになるユーザがいる。
[日時]はdatetime型。他のPCはなんともないので、このPC設定かな。
効くところによれば、中国語のアプリがあるような、、、。 ▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境 】 Windows7 Access2010
【 VBAが使えるか 】 いいえ
【 VBAでの回答 】 否
【 検索キーワード 】 Googleやヘルプでの検索キーワード Access 和暦 西暦
フォームで和暦年月日入力と、
和暦年月日後に西暦年月日を表示させたいのです。 和暦主体で製作してると数年後にまた混乱するだろな
上がそれに固執してるなら説得すべきだし、それこそが老害と呼ぶべきだし
西暦入れて和暦変換のが百万倍楽なんですよ それに工程を割くことに
意味あると思いますか と、問いただすぐらいの反骨はし続けるべき
アメリカ産のアプリに和暦優先の発想で応じようと苦労するこそ時間の無駄 ■ このスレッドは過去ログ倉庫に格納されています