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/ 普通はそんなでかいファイル入れたりしない 特にaccessとかだとどうなっても知らないよ >>227 DB内に取り込むのではなく、 DBには動画の場所のリンクを格納し フォームのボタンを押すと再生する という方がよいのでは? Accessの2GB制限もあるし >>227 ではないが横からスマン 例えばログイン画面みたいなフォームでユーザIDを入力するとその人の写真が表示されるみたいなのは、 フォーム名!イメージコントロール名.Image = ”\\IPアドレス\C\画像フォルダ\” & UserID & ”.jpg” とかで出来るけど、動画はやっぱり>>230 のやり方しかないのかね? フォームの中で動画が再生されるとカッコイイんだけどな m2tsとかいう家電用みたいなフォーマットは無理だけどね>wmp カラム名を行見出しにするにはどうしたらいいですか?カラム数が多いのでユニオンだとめんどくさいです Access2013のライセンスキーはあるんだけど、 本体はどこでダウンロードすればよいですか? iOSからaccessに接続する方法ってありますか? >>236 さんきゅー キーのところの書いてあった どなたか教えて下さい。 djoin関数というテキストを結合する、合計するユーザー定義の関数があったと思うのですが ソースが潰れていて参照ができません どなたか魚拓かソースの構文を頂けませんでしょうか >>240 djoinってのは初耳ですが、これですか? http://web.archive.org/web/20150517052733/http ://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaDJoin.html >>241 これです! 本当ありがとうございます、いやすいませんでした 【 システム環境 】 Windows7, Access2010 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可 【 検索キーワード 】ドロップダウンリスト 選択 レポート テーブルで名簿を作っています フィールド「発送先」をドロップダウンリストで作り、自宅か勤務先か選べるようにしたのですが、 レポートでフィールド「発送先」に自宅が選ばれていたら、フィールド「自宅発送先」のデータを表示する、 フィールド「発送先」に勤務先が選ばれていたら、フィールド「勤務先発送先」のデータを表示する といった設定はどうすればよいでしょうか? >>243 私に質問内容がちゃんと解読できたか不明ですが レポートとは別に自宅か勤務先を選択する画面があり データの表示先は同じレポート上にあるという前提です。 データの表示先に=IIf([発送先]='自宅',[自宅発送先],[勤務先発送先])を設定 自宅と勤務先以外が発生するならswitch関数で対応してください。 >>244 うまくできました! 送付先の種類は必ず2つだけなので、大丈夫です。 IIf関数というものを使うのですね。 大変勉強になりました。 本当にありがとうございました。 SQL Server等の外部のデータベースエンジンを使って、.accdbはUIとかのみに使う方が、複数人で使う場合に壊れにくいと聞きましたが、 SQL Server等を使うほどでないにしても、UI部分の.accdbとデータベース部分の.accdbに分けるだけでも、効果ありますか? その方が、UIのみ修正したりした場合でも、そっちの.accdbのみ配布し直せばいいから楽なような気もしますし… こんな運用(.accdbを2つに分ける)って異常でしょうか。 >>246 昔自分もフロントエンド部とデータ部に分けたAccessのシステム作ったけど 安定性はよかったですね。 もう4年ほど運用していますが、データ部の破損は経験していません。 (まぁ、同時複数アクセスがあんまりないシステムだからかもしれませんが) 特に、画面やモジュールをアップデートしたいときに 気軽にできるのがよかったです。 バージョン管理して、ユーザ側が古いVerで立ち上げると 新しいバージョンのメッセを出して、ユーザ自身に新しいフロントエンド部をDLさせる やり方はうまくいきました。 フォームの印刷を用紙サイズに合わせて一枚にするにはどうしたらできますか? あったらおれも知りたい jpgやpdfに出力してそっちの印刷でフィットさせるとかしか 道が無い気がしてる だけど文字が潰れるのは必至な前提という ん?セルの枠線も行列番号も消した真っ白のExcelに送って「1ページに印刷」機能 したらどうなる? 明日やってみるか、、、 タテ・ヨコ比率は用紙サイズに合わせる大前提 顧客対応で内容をテーブルに記録しているのですが、後々おおよその統計を取るために 検索キーとなるタグ(1.クレーム 2.要望 3.障害 その他色々)も記録するようにしました。 タグは一つのフィールドに複数記録できるようになっていて、タグも別テーブルとして登録しています。 ここから質問ですが、統計を取るためにどのようなクエリを作ればいいのか分かりません。(クレームn件など) 単に総件数から該当するタグを持つレコードが何件なのかを数えるだけなのですが、選択クエリ以外 に手を出したことが無く、どこから取りかかればいいのか分かりません。 最終的にはフォームで期間指定ができ、任意の指定タグの件数と割合表示までを目標としていますが、 最初からつまずいています。 よろしくお願いします。 【 システム環境 】 Windows10, Access2013 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可・ Access2013で質問をさせて戴きます。 現在フォームにタブコントロールを設置しております(仮にタブの大元をtab_Mainとします)。 tab_MainにはX、Yタブをおいています。 また、テーブルαがあります。 テーブルαの構造は、 |ID|タブ|データ1|……| |1|1|3/2|林檎|2個| |2|1|3/3|林檎|2個| |3|2|3/2|ミカン|1個 のような感じになっております。 なお、 ID1 = X ID2 = Y を想定しております。 この状況で、X・Yタブにテーブルαに関するリストボックスZを設置したいと考えております。 リストボックスZは、各タブ毎に内容を切り替えられるようにしたいと考えております。 このとき、リストボックスZの値集合ソースを SELECT ID, タブ, データ1 FROM テーブルα WHERE タブ = (Me.tab_Main.Value + 1) と設定をしても上手く行きませんでした。 このとき、どのように操作をすれば良いのでしょうか? Requery で表示されると思うけど 良く分からない画面設計だね どこまでリストでどこからがテーブルで作成するものなんでしょうか? 区分の数が多いとテーブルにするのでしょうか? リストとは何の事でしょうか? 基本的にデータの管理は全てテーブルで行うものですよ >>255 値リストというんですかね? ドロップダウンボックスなどで選択するものをつくるとき たとえば 赤 黒 というふたつの種別しかない場合でも 色テーブル というものをつくったほうがいいということですか? >>256 増える予定がないか、もしかしたら増えるかもしれないけど自分しか使わないなら値リストで無問題 他の人も使う状況で、自分が直ぐに修正対応できない可能性があるならテーブルが無難 複数人使用でデータの壊れにくさとUI部分のバージョンアップのしやすさを目的として、データ用accdbとUI用accdbの2つに分ける場合、 テーブルのリレーションシップはデータ用accdb側でするんでしょうか。 UI用accdb側でするんですね。ありがとうございます。 便乗質問です UI用とデータ用ってのは別ファイルにして UI用からデータ用を読みにいかせるってことですよね? 重くならないんですか? 構成が不雑になりそうですが わけるメリットはありますか? >>261 スタンドアロンならメリットなし そうでないならメリットあり UI用を各端末に入れることで、同じ画面を違うパソコンで同時に使える データ用を共有することで各端末から入力されたものが一つのデータにまとめられ、各端末で共有出来る 処理は遅くなると思う 複雑になる点は、データ競合対策位かな? >>257 テーブルにわけたほうが修正しやすいから わけたほうがよさそうですかね? 小さい会社やってますが エクセルからの移行でAccessで業務管理やろうとおもいます 自分ひとりしかあつかわない(いずれ入力程度は従業員にしてもらうかも)のであれば 参考書にのってるような正規化やリレーションはある程度にして細かいことは無視しても大丈夫ですかね? あまり細かく正規化してもやるだけ無駄な気がするのですがどうなんでしょうか? やることは売上と社用車管理、従業員管理と 請求書発行くらいです Accessは印刷に弱いですが皆さんどのようにされてますか? 例えば請求書などでレコードが少ない場合は 空欄のまま表にするといったことも不得意ですよね? [1] 枠線(罫線)印刷済のヒサゴの請求書を使う (見栄えも良くなって顧客に好印象) [2] その程度の悩みならその辺に転がってるサンプル使わせてもらう [3] 業者に依頼または案件サイトに申し込んで受注を競わせる [4] ついのめりこんで自作に勤しみ図らずも開発を生業とする部門を新設するまでに至る >>267 Accessが印刷に弱いなんてとんでもない レポート機能はかなり強力です 例に挙げられている空行印刷などは開発者の能力次第で幾らでも対応可能ですよ >>269 市販ソフトなんだしデフォルトでほしいところですけどね >>265 少なくとも自分は>>258 とは逆でやっている 具体的に書いてもらわないと258の正しさがわからない >>271 >>258 の逆ということは、「UI側のリンクテーブル」に対して「UI側で」リレーションシップを 設定するとういうことだよね? その場合、参照整合性や連鎖更新、連鎖削除の設定ができないのでは? ごめんなさい リレーションをテーブルのリンクと勘違いしてました >>258 さん申し訳ない 258の内容で正しいです あー恥ずかしい >>270 Access自体が初心者の触れるものではないですからね Excelでやりましょう 印刷関係詳しく解説してるのサイトとか 本とかありますか? 印刷にかぎらず業務ソフトつくるときに役立ちそうな本などおしえてもらえると助かります クロス集計クエリの結果に任意の列見出しで空白カラムを追加するにはどのようにすればいいでしょうか? XX:""では追加できませんでした。 1つのオブジェクト内に複数のSQLって実行できませんか? >>275 >>267 のようなことならAccess関連のサイトでもけっこう扱ってると思うよ。 >>275 がどの程度Access扱えるのかわからないけれど、クエリやVBAの基本はわかってるとして 自分が参考になった書籍 Access2002表現百科850 (Access全般。印刷関連のネタもけっこう充実してた印象) Accessで学ぶSQL実践のツボ 経理業務のためのAccess実践講座 (締日請求書をつくるにあたって参考になった) でも、実際の業務内容によっては書籍の内容が全く使えなかったり 業務ソフトといっても、どこまでのものを必要としているかにもよるので、 単に納品書や見積書つくって印刷するだけなら割と楽にできるだろうけど 在庫管理・入出金・締日による請求書作成などまでしようと思うなら それなりの時間・労力がいるよ。 あと、市販の業務ソフトメーカーのサイトでフォームのデザインや、帳票レイアウトなどを参考にしたり。 シートセット新規作成(シートセットマネージャー)で図面を保存している フォルダーを開こうとしても図面一覧が出てこないんですが 何が原因なんでしょうかね。 教えてください。 ACCESSのVBAを書くエディタ部分は、折りたたみってできないんでしょうか? よく、エディタでHTMLを書く場合、タブの最初の行だけ表示して中身は折りたたんでしまって 必要なときだけ+マークをクリックして開くようになってるんですが、アクセスもそうなってくれると 見やすいのになあ、と思ってます。 ひとつのフォームに10も20もプロシージャを書いていると、とても長くなって、別のプロシージャを見るのに スクロールして探さないといけないのがたいへんです。 ACCESSを使ってるプロもそういうのは我慢してるのでしょうか? >>280 ウィンドウの分割やプロシージャ単位で表示で我慢してる そういう折りたたみできるエディタで書いたのをコピペすりゃいいんじゃね? access98で作ったdbソフトがWIN7になって正常動作しない 出力データもメチャクチャに乱れてしまうし、フォームが開かないとか 不具合多発でwIN7環境放棄 XPマシンが壊れたらソフトも終わりだけど、手塩にかけて育ててきた時間と労力と 作り直す気力を考えると、どうしてよいか途方に暮れてる >>284 > access98で作ったdbソフト Accessに98なんてありません。 自分の子の父親が誰かも分からないんですか? > 手塩にかけて育ててきた時間と労力 20年近く一度も新しい服に着替えさせずにいることを 手塩にかけるとは言いません。 ネグレクトです。 > XPマシンが壊れたらソフトも終わり あなたは子育てに失敗しましたが 今からでも遅くはありません。 一つ一つ見直してきれいにして 失われた20年を取り戻してください。 途方に暮れていいのは 大澤 誉志幸だけだ 誰だ?それ そもそも今までなんの手当もせずに使い倒してきたんだから充分だろ 自業自得 XPモードでなら動くのかどうか 動いたとしても レガシーデバイス必要とかで、ソッチ原因でポシャることすら有り得る 出力データもメチャクチャ だけじゃフォームなのかレポートなのか・・ はたまたOutputファイルなのやら、フォームが開かない 時のエラーメッセージ はどうなのかとか、 不具合多発 なのは自分のせいなんだろうに こういう手合いはすぐヒトのせいにしたがるから厄介だ access98じゃなかった ええと、96年から作り始めて98年1月に稼働開始したんだった オフィス製品はその当時のを今でも使い続けてるんで記憶が遠い Office製品はOffice2003ですら、WinXPと同じくサポートが終了しており、使用するのが危険なのだが… >>292 サポートでセキュリティセキュリティ騒ぐけど 一時期アップデートせずにずっとつかっててなんも支障ないけどな 俺も家の玄関に鍵かけたことないけど、 何の問題もないよ。 Accessインデックス作成基準 そのフィールドを完全一致か前方一致で頻繁に検索? YES:保存された値が多様である? YES:そのフィールド「だけで」頻繁に並べ替える? YES:インデックス作成 NO:インデックス作成(必須項目でなければNULL無視:はい) NO:そのフィールド「だけで」頻繁に並べ替える? YES:インデックス作成 NO:他のフィールドと組み合わせて頻繁に並べ替える? YES:複数フィールドインデックス作成 NO:インデックス不要 NO:そのフィールド「だけで」頻繁に並べ替える? YES:インデックス作成(NULL無視:いいえ) NO:他のフィールドと組み合わせて頻繁に並べ替える? YES:複数フィールドインデックス作成 NO:インデックス不要 10年ぶりに異動して、元の席でACCESSで社内用システムを作ることになりました。 で、作業を開始してびっくり。 ACCESS2000の頃とぜんぜん違うじゃないですか。 なんですか?accdbって。mdbでしょ。 そもそも、フォームの色が白ってのが気に入りません。グレーじゃないフォームなんてありですか? 内部のコードなんか放置でも、一週間さぼった後一時間でフォーム3つばかりを作って、 コマンドボタンで遷移させるを見せりゃ課をあげて褒めてくれたあの時代はどこにいったんでしょう? で、何が言いたいかというと、 これからたくさん質問すると思います。 よろしくね。 いいか、よく聞けよ 主キーってのはただのレコード登録順番号だ。 それ以外の意味を持たせるな。 だから全部オートナンバーにしろ。 テーブルの内容に応じた意味を付けるな。(×:商品コード、国コード) レコードの内容に応じた意味を付けるな。(×:大分類+小分類+枝番) 主キーと重複禁止インデックスを混同するな。(×:このフィールドは重複禁止だから主キーにできる) 他のテーブルとの関係も持たせるな。(×:支社コード+商品コード) 以上の言葉はオフレコです。 いいですか、みなさん、いいですか、 『顧客に言ったらもうその社は終わり』だから >>297 顧客の管理コードとうまく主キーをつなげるのが 仕事だろ 顔洗って出直しな transform文をユニオンするには、vbaでやらないとだめ?sqlビューでもいける? いや、>>280 が よく、エディタでHTMLを書く場合、・・ て書くからさ じゃあそれで書いてコピペって だけ 可能かどうかはそのエディタ次第しょ >>282 のプロシージャ単位で表示 でジャンプするのが普通かな とか飼い馴らされてるから 「へえ、と思ったね」 プロシージャ辿るとき使う Shift + F2 でわ無いのだろうし VBAのアップデートは期待できない。 折りたためても同一ページ内を行ったり来たりは面倒。 俺はメモ帳とかに参照用にコピペしてAlt+Tabで切り替える Win7x64 Access2010 メイリオ使うと 英語と日本語混在したフィールドで カーソルが文字の真ん中に配置されたりして 文字選択しづらいんですけど 直す方法教えてください。 メイリオの素性が特殊なんで、無理 下線とかWordでいう段落みたいな処理時にも困った挙動あり こういうもんだ で納得するしかない 敢えて対処・・というか、対症というかなら 右端や左端からShift + → とか ← とかで選択する挙動を組み込むなりなんなり それでも微妙にずれるけれど 書いてて思ったけど、そのフィールド編集?入力?するときにテキストボックスを ポップアップさせて、その時だけゴシックや明朝で入力・編集 OKしたらメイリオ で表示とかの処理でも可能 ・・だけど、そこまでしてこだわるものでも無いわな 【 システム環境 】 Windows7 Access2010 【 VBAが使えるか 】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 Googleやヘルプでの検索キーワード ドロップダウンリスト EXCELで作った何層もあるドロップダウンリストで、入力フォームは作れますか? EXCELのフォームだとドロップダウンリストが使えなくて、困ってます。皆さんの知恵を拝借出来ればと思います。 クエリでデータ元のクエリにフィールドがあるかどうか判断して、ない場合はフィールドを作ってデータはヌル値をいれるにはどうすればいいですか? 今どきAccessなんかで業務システム作ってる会社ないしな 基幹システムに乗らない特殊業務はAccessの独壇場 まあ将来人工知能が台頭したときはどうなるか分からんが それまではまだまだExcelやAccessのVBAは強力なビジネスツールじゃないかね 日本の企業は社内のIT化というとすぐボッタクリ人月商売のSIerに頼るが この悪しき文化を改めて、もっとAccessやVBAやFilemakerなどの便利ツールを活用して 小規模なものなら内製できる作らないとマジでヤバイと思う SOHO規模であればほとんどAccess+SQLServerで対応できるし SQLServerはExpressにして、各クライアントのAccessもRuntimeにすれば0円だしw . >>314 mdb を Windows Server の共有フォルダで運用するにも CAL が必要 つまり Access でも Windows Server CAL が必要 と SQLServer Express に限らず Windows Server を使うなら普通の事です >>314-316 CALついでに教えてほしいんだが、 Windows7の最大同時接続数=20ってのは何のことを言ってるんですかね? 今、職場で使ってるSQLServerExpress+AccessRuntimeのシステムは、 当初10人くらいしか使わなかったんで、空いていたWin7ProのPCに暫定的にExpressを立てたんだが、 その後ユーザーが増えて、WindowsServerにしなきゃと思っているものの、 ManagementStudioで見てるとセッション数が70〜80に達しても全くエラーにならないんだよね セッションの挙動を見てると、一回繋がってセッションが生成されると、 その後アイドル状態が続いても10分くらいセッションがキープされるみたいだが (ODBCで作ったリンクテーブルは任意で切断できないからたぶんコレ)、 こういう死んだセッション(?)は「20」にカウントされないのかな? ちなみに、Serverが対象でなくてもライセンスが要るんやで。 リモートデスクトップで他PCに繋ぐことが良くあったから、 MSの営業に聞いて仰天したわ。 でも、何のライセンスがいるのか(ServerCAL、RDS CAL等)は、 よう答えんかったわ。でも、「厳密にはライセンスが要る」らしいわ。 何だこれ? Debug.Print Format(DateAdd("s", -1, #12:00:02 AM#), "yyyy-mm-dd hh:nn:ss") Debug.Print Format(DateAdd("s", -1, #12:00:01 AM#), "yyyy-mm-dd hh:nn:ss") Debug.Print Format(DateAdd("s", -1, #12:00:00 AM#), "yyyy-mm-dd hh:nn:ss") Debug.Print Format(DateAdd("s", -1, #6/1/2016 12:00:02 AM#), "yyyy-mm-dd hh:nn:ss") Debug.Print Format(DateAdd("s", -1, #6/1/2016 12:00:01 AM#), "yyyy-mm-dd hh:nn:ss") Debug.Print Format(DateAdd("s", -1, #6/1/2016#), "yyyy-mm-dd hh:nn:ss") 1899-12-30 00:00:01 1899-12-28 00:00:00 1899-12-29 23:59:59 2016-06-01 00:00:01 2016-06-01 00:00:00 2016-05-31 23:59:59 思うてたんと違う! Dim d1 As Date Dim d2 As Date d1 = Date Debug.Print CDbl(d1) d2 = Date Debug.Print CDbl(d2) Debug.Print (d1 = d2) d1 = DateAdd("s", 1, Date) Debug.Print CDbl(d1) d1 = DateAdd("s", -1, Date) Debug.Print CDbl(d1) d2 = Date Debug.Print CDbl(d2) Debug.Print (d1 = d2) 42522 42522 True 42522.0000115741 42521.9999884259 42522 False >>321 は忘れてください。 もう意味わかんない Dim d1 As Date Dim d2 As Date Dim i As Long d1 = Date d2 = DateAdd("s", 3, d1) For i = 1 To 3 d2 = DateAdd("s", -1, d2) Debug.Print Format(d2, "yyyy-mm-dd hh:nn:ss") Debug.Print d2 = d1 Debug.Print CDbl(d2) Debug.Print CDbl(d1) Debug.Print Next >>322 2016-06-01 00:00:02 False 42522.0000231481 42522 2016-06-01 00:00:01 False 42522.0000115741 42522 2016-06-01 00:00:00 False 42522 42522 >>322 おそらく計算結果の日付が同じなのに、比較が一致しないということだろう 日付のシリアル値は 浮動小数 っぽいので丸め誤差かなんかで 内部的な見えない部分で微妙な誤差が生じてるんだろう 日付を文字列に変換して比較するか もしくは DateDiff("s",d1,d2)=0 なら日付が一致とかにすればいい そりゃそうだろうけど VBなんだから その辺はお節介機能が働いて 自動調整してくんないとさ。 社内サービスエンジニアは気づかないよ。 accessvbaの学習がしたいのですが、おすすめの本がありましたら教えていただけませんか? excelvbaやvb.netは業務で使用していたのですが、accessはあまり経験がないので、体系的に学べる書籍があると助かります。 Webのしくみと応用 第9回「リレーショナルデータベース」 6/5 (Sun) 16:00 〜 16:45 (45分) 放送大学1 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる