1 :
名無しさん@そうだ選挙にいこう :
2010/10/17(日) 07:31:31 ACCESSに関する質問はこちらへ
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
・何がしたいのか
・どんな処理を試したか
・動作状況など駄目な理由
テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
範囲で詳しく書くと、早く回答が得られるかもしれません。
図解があれば尚良し。
聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
ギブアンドテイクで情報を共有しましょう。
▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境 】 Windows**, Access**
【 VBAが使えるか 】 はい・いいえ
【 VBAでの回答 】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
前スレ
Access総合相談所 其の23
http://pc11.2ch.net/test/read.cgi/bsoft/1265710293/
4 :
名無しさん@そうだ選挙にいこう :2010/10/19(火) 11:01:19
自分乙
5 :
名無しさん@そうだ選挙にいこう :2010/10/19(火) 19:02:16
>1乙です ACCESS2007のVBAでドキュメントのパスを取得方法を教えてください。 OSは「XP」と「VISTA」と「WINDOWS7」でです。 例えばXPなら C:\Documents and Settings\ユーザー名\My Documents\ VISTAなら C:\Users\ユーザー名\Documents\ (WINDOWS7は今持ってないのでどういうファイル構造なのかわかりません) で、ユーザー名はEnviron("USERNAME")で取得すればいいと思います。 ここでわからないのがOSの種類によって変わらないといけないところで そこでOSの種類を取得する方法はありますでしょうか? それとも、もっといい「ドキュメントのパスの取得」する別の方法はあるでしょうか? よろしくお願い致します。
>>5 WScript.ShellオブジェクトのSpecialFoldersでいいんじゃね?
>>1 乙
7 :
名無しさん@そうだ選挙にいこう :2010/10/19(火) 20:15:41
>>6 ご回答ありがとうございます。
そこらへん使ったことないんですけど
調べてやってみます。
8 :
名無しさん@そうだ選挙にいこう :2010/10/19(火) 22:06:27
ある顧客管理ソフトのデータを、新しいバージョン用に変えて、移転させたいのですが サポートセンターに問い合わせたところ Access2007で昔のデータ(mdb形式)を開き、すぐに新規保存(accdb形式)して、新しいパソコンに移せ っと言われました。 ところが、Access2003はあっても、Access2007を持っていないのです。 何か方法はないでしょうか? 教えていただけると助かります。宜しくお願いします。
>>9 Access2010でも出来ますので、購入してください
体験版でもOK
フォームをサイズ変更した時に、コントロールのサイズも自動的に変更(ストレッチ)してくれる なーんて便利な機能なんてない・・・ですよね?
>>12 ありがd
ちなみに自力でなら各コントロールのサイズを変更することはできたりしますか?
>>13 はい、自分でサイズを定めるのが普通です
フォームサイズ変更にコントロール位置は追随させれます
アンカー機能といって、左上とか下とかフォーム内の相対的上下左右位置を指定します
>>14 自力でならできるのですね!
どんなキーワードで調べたら良いか、ヒントを頂けないでしょうか?
「アンカー機能」 では見つからなかったもので・・・
>>15 HorizontalAnchor プロパティ
VerticalAnchor プロパティ
>>16 もしかしてAccess2003じゃ使えなかったりします?
2010ってどうなの?
No、氏名、住所からなるテーブルがあり これを元に表形式のフォームを作成して 検索ウインドウとしてヘッダーにテキストボックスコントロールとボタンを用意してます。 (テキストボックスの名前はtxt氏名) ボタンのクリック時のイベントプロシージャに以下のように記載してます。 dim strA as string strA = me.txt氏名.value me.filter = "氏名=strA" テキストボックスtxt氏名に入力した文字列と一致するもので フィルターされると思ったのですが なぜかパラメータ入力ウインドウが立ち上がり そこに入力するとフィルタがかかります。 これはなぜなのでしょうか?
"氏名='" & strA &"'" でどう?
23 :
名無しさん@そうだ選挙にいこう :2010/10/22(金) 13:08:08
クエリで、未定義の関数があります、みたいなメッセージが出た。 どうしたらいいですか? 普通のreplace関数なんだけど。 どなたか急ぎで教えていただけますか?
昔のAccessではクリエでreplace関数使えない、Access2010にしてください
25 :
名無しさん@そうだ選挙にいこう :2010/10/22(金) 13:18:39
今までもリプレイス関数使えてたと思ったけど、2000とかのバージョンでは無理なんですね。 知りませんでした。ありがとうございます。 文字置き換えで、リプレイス以外の関数ってありますか? よろしければ教えてください。
26 :
9 :2010/10/22(金) 13:39:40
>10様 レスありがとうございます!! あと、オフィス2010の体験版をインストールすると 今まで入っていた2003や2007が上書きされたり、何か今までの動作に異常等は出てしまいますか? 体験版を入れて試したいものの、他の仕事でWORD・EXCELを使っていて、そちらに何か変更が出ると困るもので・・・ 教えていただけると助かります。よろしくお願い致します。
>>26 インストールのウィザードの中で、旧バージョン残すオプションやAccessだけ選んでインストールしたり出来る
2010になってかなり良くなったが、印刷があるなら桐のが良いなぁ。
桐ってVBAみたいな言語とか、ODBCドライバとかあるの?
桐の一括処理はAccessのマクロよりも強力、ODBCドライバはない、ODBC機能はあるのでフロントエンドには使える
32 :
名無しさん@そうだ選挙にいこう :2010/10/24(日) 15:25:02
>>31 ありがとうございます。参考にさせていただきます。
検索ボックスを作り その値を変数にいれてフィルターなどで レコード抽出しようとおもったのですが ワイルドカードの使用がうまくいきません。 変数にワイルドカードを組み合わせることはできないのでしょうか?
>>33 できます。
具体的なコードを書かないとどうすればいいかっていうレスはつかないと思うよ
35 :
名無しさん@そうだ選挙にいこう :2010/10/25(月) 17:11:44
昔ACCESS2002で作られたシステムをVISTA及びWINDOWS7のPCで動かさない といけなくなったのでOSがXPSP3でACCESS2007が入っているPCで accdb形式に変換したものをVISTA+ACCESS2010のPCにもって行って動かしました。 このシステムはVBAで管理ファイルを自動的に書き出すているのですが、 例えばドキュメントフォルダに書き出す様に設定しても次の通知がでます。 セキュリティに影響を及ぼす可能性のある問題点が検知されました。 警告:このコンテンツの発行元が信頼できるかどうかを確認することは できません。このコンテンツが重要な機能を備えており、発行元が信頼できる 場合を除き、このコンテンツは無効のままにしてください。 ファイルのパス:C:users¥・・・・・・・・ このファイルにはお使いのコンピューターに損害を与える危険なコンテンツが 含まれている可能性があります。このファイルを開きますか、それとも操作を 取り消しますか? [開く] [キャンセル] (続く)
36 :
名無しさん@そうだ選挙にいこう :2010/10/25(月) 17:20:58
>>35 の続き
これは管理ファイルが書き出されるタイミングででていると思われるのですが、書き込みなのに
なんで「開く」と出るのかよくわからないのですが、何しろここで[開く]を選択するとまた同じ表示が出て
それを3回くらい繰り返すとその管理ファイルが書き込まれます。
ここで、ACCESS2010でファイルのパス:C:users¥ユーザー名¥・・・・・・・・のフォルダを「信頼できる場所」に
登録すると、
>>35 の通知はでなくなります。
最終的にはVISTA及びWINDOWS7のPCでACCESS2010のランタイムルーチンしか入ってない
PCでこれを動かしたいのですが、ランタイムルーチンだけしか入っていないPCで「信頼できる場所」の設定
はできませんよね。こういう場合、通知を出さなくするにはどうすればよろしいのでしょうか。
よろしくお願い致します。
>>35 うんにゃ、できるよ。
レジストリに書き込めばいいだけよ。独自にインストーラ作るんでもウィザード使うにしてもアプリ初回実行時にしても。
a2010runtime使うんだったら、a2010製品での動作確認は忘れずにな。
38 :
名無しさん@そうだ選挙にいこう :2010/10/25(月) 20:29:56
>>37 >a2010製品での動作確認は忘れずにな。
ありがとうございます。
やはりVBAでエラーがでるところがあり、直しました。
>レジストリに書き込めばいいだけよ。独自にインストーラ作るんでもウィザード使うにしてもアプリ初回実行時にしても。
それをヒントに調べてやってみます。
ありがとうございました。
39 :
名無しさん@そうだ選挙にいこう :2010/10/27(水) 17:07:14
>>38 ですが
その後regeditで手動で「信頼できる場所」をレジストリ登録する方法はわかりました。
これを自動化するにはどうしたらいいんでしょうか?
Accessをパッケージ化したものと合わせて配布してPCに詳しくい利用者も自分で
インストールできるようにしたいのです。
ニーズがありそうな話なので、もうツールかVBの雛形の様なものが
作られて公開されていると思いました。甘かったです。
>ニーズがありそうな話なので、もうツールかVBの雛形の様なものが >作られて公開されていると思いました。甘かったです。 なーに言ってるさ。a2010/2007にツールあるっぺよ。 パッケージソリューションウィザードでだめなん?
Access2003です。 フォームの中にサブフォームを2つ設置してへダーと明細としての役割を持たせてます。 ヘダーとしてのサブフォーム中のデータをクリックしたら、そのデータを基に明細として使用している サブフォームにフィルターをかけたいのですが、サブフォームから別サブフォームへのデータの受け渡しは どうすればいいのでしょうか。
42 :
名無しさん@そうだ選挙にいこう :2010/10/28(木) 15:35:28
>>40 言われて「ハッ」として、ACCESS2010のパッケージウィザードから発行されるaccdrファイルの場所と
運用中に吐出される管理データの場所を同じ(同じフォルダ)になるようにしました。
そうしたら通知はでなくなりました。これでOK・・・と思ったのですが、この時よく見たら
今まで2007ランタイムでテストしていて、2010ランタイムでやるように言われたのを思い出して
今度は同じ設定でランタイムをランタイムだけを2010に変えたものを発行してテストPC
(2007ランタイムはアンインストールしたPC)にインストしました。
そうしたら今度はaccdrファイル開く時にも毎回通知がでるようになってしまいました。
(
>>35 の段階で出ていた通知も出ます。)
次に2010ランタイムをアンインストールして2007ランタイムをインストールしたら
また通知が一切出ずに動くようになりました。
2010ランタイム下で通知を出なくする方法わかりますでしょうか?
>>42 んとね。a2010のウイザードはa2007のをそのまま搭載しちゃったみたいなので、a2010に展開せねばなら
んのなら追加レジストリのところでa2010用のレジストリを登録するか、生成されたmsiファイルをorcaか
なんかで修正する必要があるんだわ。
ルート:必要なの選んで。既定のルートでよいと思うけど。
キー:Software\Microsoft\Office\14.0\Access\Security\Trusted Locations\{GUIDなどUniqueString}
名前:Path
値:[DATABASEDIR]
追加ファイルのサブフォルダ指定は不具合発生中だからやってダメだったらあきらめてね。別パッケージに
すれば可能なんだけど、まぁその必要はないかなと。
44 :
43 :2010/10/28(木) 20:43:39
2010が見に行くレジストリがここで、 Software\Microsoft\Office\14.0\Access\Security\Trusted Locations\ 2007が見に行くのがここ。 Software\Microsoft\Office\12.0\Access\Security\Trusted Locations\ ってことね。よしなによしなに。
45 :
名無しさん@そうだ選挙にいこう :2010/10/28(木) 22:57:25
かなり初歩的な質問ですが・・・ テーブル Key1,Key2,Key3 0001,0002,0003 0011, ,0013 , ,0023 と入力されている場合 クエリ Key1,Key2,Key3 0001,0002,0003 0011,0013, 0023, , というように寄せる ようにするにはどのようなやり方をすれば 良いでしょうか?
47 :
名無しさん@そうだ選挙にいこう :2010/10/31(日) 19:58:21
初歩的な質問じゃない気がするけど・・・ クエリだとどうやってやるのか分らんけど、VBAなら簡単に出来るよ。
>>47 すごい!VBAなら簡単なんですか?
クエリだと、if文でisNotNull判定を駆使しないと
出来なさそうでしたけど・・・
49 :
名無しさん@そうだ選挙にいこう :2010/10/31(日) 22:49:31
昔ACCESS2002で作成されて、ACCESS2002ランタイム+パッケージで配布されてずっとXPのPCで使っていたシステムがあります。 これの元のMDBファイルを別のPC(OSがXPやWIN7でACCESS2010が入っているPC)に持って行って開くと 「データベースまたはプロジェクトにファイル'comdlg32.ocx'version1.2を参照する切断された参照が含まれています。」 と表示されます。それでも開いて使用すると 「VBAのコンパイルエラー:プロジェクト又はライブラリが見つかりません。」 ○=Right(□,×)の「Right」のところでカーソルが止まっています。 VB6のランタイムを入れると動くようになるのですが、どのような命令?(関数?)を使った時にVB6のランタイムが必要になるか わかりますでしょうか?このシステムのVBAのコードを見てもよくわかりません。それにそれ程難しいしいことをしているシステムには見えないのに 何でVB6のランタイムがいるのかと思いまして。それで削ってもいいような機能の部分なら削除するし、他の方法に置き換えられそうなら 書き換えようと思います。(これの作成者は大分昔に退職されていて聞くのが困難です。) 何でこんな質問をしたかと言いますと、現在ACCESS2010でパッケージ化してWIN7のPC等にインストールするものを作っていたのですが、 これを配布した時に、「パッケージ化したもののセットアップをやった後、VB6のランタイムのセットアップもやってね」と言うと 「一つにまとめられないか?」と言われそうなので。 またVB6のランタイムを使うということは古い方法であり、ACCESSの将来のバージョンでサポートしなくなるのではないかと思いまして。 取り留めもない話ですみません。
50 :
名無しさん@そうだ選挙にいこう :2010/10/31(日) 23:59:09
51 :
名無しさん@そうだ選挙にいこう :2010/10/31(日) 23:59:49
>>49 ググれはいくらでもヒットすると思うけど・・・
52 :
名無しさん@そうだ選挙にいこう :2010/11/01(月) 13:58:50
リボンのカスタムで参考になるファイル ダウンロードできるとこはありますか? USysRibbonsテーブルのxml記述の参考 恥ずかしいのですが、マクロ全然分かりません
54 :
名無しさん@そうだ選挙にいこう :2010/11/01(月) 17:04:28
他のDBは使ったことがあるのですが、Accessに関しては初心者です。 実はある方が作ったAccessのDB(mdb形式)を他のDBへ移植したいのですが、 既に定義済みテーブルを解析して、対応するSQL文(Create Table)を生成する方法 ってあるのでしょうか? あるいは作成してくれるツール類なんてあるんでしょうか?
>>55 VBAで自作したら? 経験者らしいので、それなりに自分で探したとしてだけど。
テーブル名は取得できるし、テーブル名が取得できれば
フィールドのデータ型とかも取得できるでしょ。
mdbの解析って世界で一二を争うくらい無意味な仕事だと思うんだ
刺身にタンポポを乗せる仕事に戻るんだ
59 :
名無しさん@そうだ選挙にいこう :2010/11/02(火) 21:00:30
60 :
55 :2010/11/02(火) 22:45:34
>>56 実は知り合いに相談したら、同じような回答が来ました。
ただ、VBA/Accオブジェクトはあまり知識がなくて・・・
>>59 とりあえずそれっぽいの見つけました。
SQLの窓 っていうのでできそうです。
http://winofsql.jp/ みなさん、コメントありがとうございました。
ずっとググってきましたがどうしても見つからないので質問します。 Access2003でTreeView上で動く右クリックショートカットメニューを動的に作ろうと思っています。 ツールバーへの登録まではVBAでCommandBarsオブジェクトでいけたのですが そこから先、ショートカットメニュー上のユーザー設定への登録(種類をポップアップにする)がわかりません。 どんなコードを書けばいいのでしょうか?
基本的な質問で申し訳ないんですが、アクセスってどんな時に使用するソフトなんですか? 出来れば判り易い実例を交えて教えてください
本格的なアプリを作る時のプロトタイプ作成専用品
>>62 暇なとき──というのは冗談で、まったく別のソフトだがExcelでVlookupを多用するような処理を得意とする。
詳しく知りたければ、「データベース」あたりで検索すればいい。
簡単に言うと、データを効率的に保存するための仕組み(DBエンジン)に接続、開発を容易にするためのソフト。
ぶっちゃけ、SQLやVB(ADO、DAO)を扱えるのなら、Excelでも開発はできる。
DBエンジン自体はWindowsマシーンならすでに入っているからね。
例)
マンガ本をたくさん持っているので一覧を作るとする。
ただ一覧を作るだけじゃ面白くないから、いろんな風にデータを取り出したいとか思わない?
作者別に一覧にしたり、出版社別に一覧にしたり。またはデータに棚番を持たせて
探している本がどこにあるかを検索できるようにしたりと、データの持たせ具合によって
いろいろな形で抽出できる。
65 :
名無しさん@そうだ選挙にいこう :2010/11/03(水) 11:37:31
>>53 さんありがとうございます。
どこが分からないは質問すらできないほど知識ありません。
ちょっとずつ読んでいます。
アクセスのコントロールのidMso値を調べるには?
アクセスの画像のimageMso値を調べるには?
教えて下さい。
>>64 例えがとても判り易いです
なるほど
ありがとうございました
67 :
53 :2010/11/03(水) 16:35:05
Access2010です。 非連結フォームのテキストボックスにバーコードリーダーで値を読み込み、 そのタイミングでテーブルにレコードを追加する処理を考えています。 フォーム上での作業をなくすため、レコードを追加したらすぐに次のバーコードを読み込みたいのですが、どのイベントで実行すればいいのかわかりません。 現在ではテキストボックスの更新前処理で実行していますが、一度他のオブジェクトにフォーカスを移動しないとなりません。 変更時にも試しましたがうまくいきませんでした。 アドバイスをお願いします。
まあ、バーコード側で改行コード付加設定ってことじゃね
>>68 バーコードリーダー側の設定で、バーコード入力の末尾に Enter か Tab を出力できるなら、
テキストボックスの更新後処理イベントでレコード追加 → レコード追加後に SetFocus でテキストボックスにフォーカスを戻す。
設定出来ないなら、変更時イベントでテキストボックスのテキストの長さが、必要な長さになったかをチェック。
必要な長さを満たしたときにレコードを追加→レコード追加後にテキストをクリア。
でいけると思うけど、やったことないから分からない。
>>70 自分が使っているリーダーでは次のテキストボックスに移動してくれないんですよ
移動してくれれば対処できるんですけど。
次のテキストボックスへのSetFocusのタイミングもつかめません。
>>71-72 リロードしてませんでした
リーダーの説明書を探してみます。
ただ実際に使用するのは別の部署で、どのリーダーを使用するかわかりません。
>>72 さんの方法も検討してみます。
75 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 16:42:51
ACCESS2010のパッケージ化機能を使ってパッケージ化した物があります。 ファイル「setup.exe」をクリックしてのインストールのテストには成功しています。 次にCD-Rにこのパッケージ化したものをコピーしてオートランでインストールが始まる インストール用CDを作ろうとしましたが PCに内容をコピーしたCDをセットしてもCD内のフォルダが表示されるだけです。 何故でしょうか? (パッケージ化した時に生成された次のものをそのままCDにコピーしています。 ファイル「autorun.inf」、ファイル「setup.exe」、フォルダ「Files」) ファイル「autorun.inf」の中身は [autorun] OPEN=SETUP.EXE /AUTORUN ICON=SETUP.EXE,1 です。 他のMS-OFFICEなどのCDをセットすると自動的にセットアップが始まるので PC側でオートラン禁止になっているわけでもないと思いますが。 CD-Rを焼く時の設定で何かあるんでしたっけ?
74です IMEがオンになっていたのが原因でした。 オフにしておけば自動的に次のテキストボックスに移動してくれました。 お騒がせしました。
78 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 17:19:07
>>77 ACCESS2010のパッケージ化で吐き出したautorun.infってそのまま使えるのかどうかという点で・・・
フォームのPopupプロパティをプログラムから変更することはできませんか? フォームをdialogで開くと作業ウィンドウを固定もtrueになってしまいます。
ダイアログフォームは、作業ウインドウ固定のフォームです
>>78 [Autorun]
open=setup.exe
これでオートランしたぞ。RWが手元にないからこれ以上の実験はしたくない。
82 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 19:05:36
>>81 ありがとうございます。ちょっとやってみます。
(もしかしてCD-R焼いてテストして下さったんですか。すみません)
83 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 20:05:29
>>81 XP SP3とVISTA SP1でやってみましたけど駄目でした・・・
[autorun]
OPEN=SETUP.EXE
よく見たらこの↑ように大文字でやっていましたけど、関係ないですよね。
ACCESSの問題とかじゃなくて別の要因か・・・
Access2003です プロパティ(ピクチャ)でコマンドボタンにビットマップを貼り付けてます ボタンが有効の時は良いのですが、無効にした時イメージが消えてしまいます 何か良い対処方法がありましたらご教授ください
85 :
81 :2010/11/04(木) 23:09:43
>>83 大文字、小文字は関係なさそう。俺はXP SP3で試したけど。
まずは問題きりわけだね。メモ帳あたりをOpenさせて確認してはどうか。
WindowsでAutorun切ってあれば動かないけどな
87 :
名無しさん@そうだ選挙にいこう :2010/11/05(金) 10:09:19
>>85 >>86 画面にメッセージを表示して止まるバッチファイル「a.bat」というのを作って
autorun.infファイルは
[autorun]
OPEN=a.bat
というのを作ってみました。
それをCD-RWに焼いたのをXP SP3のパソコン3台とVISTA SP1 1台にセットして試してみました。
XP SP3のパソコン2台はCDの中身が自動的に表示されるだけ、もう1台は何も起きませんでした。
VISTA SP1もCDの中身が自動的に表示されるだけでした。
試しにOFFICEの製品版のCDを入れてみたら、XP SP3で先程何も起きなかった1台以外はセットアップが開始されました。
VISTA SP1のパソコンは「SETUP.EXEを実行」、「フォルダを開く」の選択の画面がでました。
CDを焼いているPCが変なのかと思って別のPCで焼いてみましたが結果は同じでした。
これはもうACCESSとは違う分野になってますね。
>>87 なんかのアプリが邪魔しているとか。
ライティングソフトが入っているようなら、それが常駐していないか確認。
常駐しているようなら、終了して試してみる。
あとはパソ一般板あたりで質問したほうがいいかも。
89 :
84 :2010/11/05(金) 11:03:16
無効にした時イメージが消えてしまうのではなく、 イメージがグレーで塗りつぶされているようです。 その為、無効の時に異なるイメージを表示したいのですが それは可能でしょうか? もし可能であればその手段をご教授いただけないでしょうか
91 :
名無しさん@そうだ選挙にいこう :2010/11/05(金) 11:26:24
>>88 わかりました。
皆さん お世話になりました(゜゜)/~ m(。。)m
>>90 なるほど、コントロールを重ねて、有効時と無効時で
表示;/非表示を切り替えるってことですね!
試してみます!
93 :
名無しさん@そうだ選挙にいこう :2010/11/05(金) 16:35:54
>>91 ですがその後、
autorun.infファイルをウイザードで作成するソフトを見つけて、
それで生成したautorun.infファイルの中を見たら「shellexecute=」というコマンドを使っていたのでこれを参考にしてテストで
↓のようにしたらa.batがオートランで動きました。
[autorun]
shellexecute="a.bat"
同じコマンドを使ってACCESSでパッケージ化したものもオートランで動くようなりました。
このshellexecuteというコマンドの正体がよくわかりませんが、これでいいとこにします。m(。。)m
94 :
名無しさん@そうだ選挙にいこう :2010/11/25(木) 19:47:41
Access で特定フィールドの単一化って、どうすれば良いですか? [ID],[年月日],[時間] 、でレコードが沢山あります。 各[年月日]のなかで最大[時間]のレコードを抽出したいです。
リレーションを組んだテーブルAとテーブルBがあり テーブルAをソースとしたフォームをつくり その中にテーブルAの各フィールドと連結したテキストボックスをおきます その中のテキストボックス1のデータで テキストボックス2にテーブルBのデータを表示させたい場合 テキストボックス2のコントロールソースはどのように設定すればよいのでしょうか?
97 :
名無しさん@そうだ選挙にいこう :2010/11/25(木) 22:01:29
>>95 バージョンは何?
リレーション組んであれば普通に追加フィールド候補で出てくるから、ドラッグすればOK
98 :
名無しさん@そうだ選挙にいこう :2010/11/28(日) 18:57:17
アクセス2010を使っていますが、フィールドの並び替えが出来ません。 もちろんレイアウトビューで並び替えをしようとしているのですが、 フィールド名が編集可能な状態になってしまいできません。 どうしたらいいのでしょうか。
>>98 予約語をフィールド名に使うのはやめれ。子テーブルの主キーインデックスはなんでこんなだ。
>>99 オレンジの枠をつかむ感じで、そっと優しく。
DLookUPについて質問なんですが
form1からform2へ値を渡し、それによって
form2にレコードを1件、単票形式で表示させています。
そのさいにtextbox1に表示されたフィールドデータを参照させて
textbox2(非連結)に別テーブルから表示させたいのですが
ここまで書いてる途中で気づいたけど
>>95 さんとほぼ同じ内容ですね。
textbox2にdlookupをどう書いても循環エラー?だからエラーでっぱなしに
なってしまいます。
ちなみにこういう風に書いてます。
=DLookUp("[顧客名称]","T_顧客リスト","[顧客ID] = " & [Forms]![frm詳細]![txt顧客ID])
自分の解釈↓
=DLookUp("[表示させたい物]","表示させたい物が入ってるテーブル"_
,"[表示させたい物と紐づく物] = " & [Forms]![単票形式のフォーム名]![参照したtextbox1])
102 :
98 :2010/11/30(火) 10:15:30
>>100 レスありがとうございます(>_<)
やっぱり予約語は使わない方がよいんですね(>_<)修正します
あと、子テーブルの主キーインデックスについてですが、
このやり方は、「はじめてのデータベース」って本のやり方を真似てみたのですが、
この場合、どのようにするのが一般的なのでしょうか?(´・ω・`)
103 :
GOMA :2010/12/04(土) 08:56:36
>>101 もう解決しているかもしれませんが、textbox2の名前はどうなっていますか。
コントロールソースに式を入れる場合、レコードソースのフィールド名と同じ
場合はエラーになりますけど、こんなことではありませんか。
104 :
名無しさん@そうだ選挙にいこう :2010/12/04(土) 10:35:51
Access2010のツリービューコントロールで質問です。 TreeViewのチェックボックスを有効にしていて、VBAでノードチェックのSubにおいて、以下のようなコードを書いても、フォーム上でチェックボックスの値が変わらない問題に直面しています。 これは仕様なのでしょうか? Private Sub TreeView_NodeCheck(ByVal Node As Object) '以下のコードでも同じでした。 Me!TreeView(Node.Key).Checked = False 'ByValなので、駄目だとは思いますが。。 Node.Checked = False End Sub
Me.TreeView.Nodes(Node.Key).Checked = False としても、これは何をしたいんだろか
【 システム環境 】 WindowsXP,Access2000 【 VBAが使えるか 】 少しだけ・・・ 【 VBAでの回答 】 できればクエリの関数で。。。 下記のようなテーブルがあるとします 日付 時間 商品名 取引内容 2010/12/01 17:00 みかん 入荷 2010/12/01 17:00 みかん 出荷 2010/12/01 17:30 桃 入荷 2010/12/01 18:00 メロン 出荷 2010/12/01 19:00 スイカ 入荷 2010/12/01 20:00 スイカ 出荷 2010/12/01 21:00 バナナ 入荷 2010/12/01 21:00 梨 出荷 ・ ・ ・ このとき、同一日のある時間帯で”出荷”しかないレコードだけを クエリで抽出したいのですが、取引内容を使った関数としては どのようなものを書けば良いのでしょうか? 例)Between関数で時間の17:00〜21:00を指定 → メロン、梨のレコードだけ抽出される ”出荷”で絞るクエリと”入荷”で絞るクエリの二つを作って さらに不一致クエリを使うという方法はあると思うのですが、 単純にクエリ一つでできるという方、ご教示いただければ幸いです。 よろしくお願いいたします。
↑訂正 誤:このとき、同一日のある時間帯で”出荷”しかないレコードだけを 正:このとき、同一日のある時間帯で”出荷”しかない商品のレコードだけを
>>106 テーブル名は tb1 、日付は見ていないので適当に。何も考えずに入れ子にしているだけですが、無理矢理1行で書くならこんな感じ?
select t1.* from (select * from tb1 where tb1.取引内容 = '出荷') as t1 where not exists (
select t2.* from (select * from tb1 where tb1.取引内容 = '入荷') as t2 where t1.商品名=t2.商品名) and t1.時間 between cdate('17:00') and cdate('21:00');
109 :
108 :2010/12/07(火) 01:29:15
上の例で日付を見るなら、少し長いけど select t1.* from (select * from tb1 where tb1.取引内容 = '出荷' and (tb1.日付=cdate('2010/12/01')) and (tb1.時間 between cdate('17:00') and cdate('21:00'))) as t1 where not exists ( select t2.* from (select * from tb1 where tb1.取引内容 = '入荷' and (tb1.日付=cdate('2010/12/01')) and (tb1.時間 between cdate('17:00') and cdate('21:00'))) as t2 where t1.商品名=t2.商品名);
>>106 SQL だと、こんな感じ。
select * from 入出荷 t1 where
t1.時間 between #17:00# and #21:00# and
t1.取引内容 = '出荷' and
not exists (select * from 入出荷 t2 where
t1.日付 = t2.日付 and
t1.商品名 = t2.商品名 and
t2.時間 between #17:00# and #21:00# and
t2.取引内容 = '入荷')
意味は
>>109 と同じで、サブクエリを1個省いた版。
>>108 ありがとうございます!
これで今日やってみます!
ACCDEはAccess Services に対応してないんだな
113 :
104 :2010/12/07(火) 10:03:38
>105 チェックを入れたくないノードにチェックが入った場合は、それをundoしたいんです。 BeforeUpdate等のイベントがないようなので。。
>>113 ゴリ押しだけど、どうかな。スペースキーについては考慮してないけどなんとなくわかるべ。
Option Compare Database
Option Explicit
Private pkey As String
Private Sub TreeView0_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long)
Me.TreeView0.Nodes(pkey).Checked = False
End Sub
Private Sub TreeView0_NodeCheck(ByVal Node As Object)
pkey = Node.Key
End Sub
115 :
名無しさん@そうだ選挙にいこう :2010/12/07(火) 23:32:50
Access for iPadが出たら即Access 2010とセットで買うんだがな。
全くの素人ですが、会社のAccess2003でスケジュール管理システムを作りたいと考えています しかし、諸事情により会社だけでこれを作るのは困難なので、 自宅でも作業(Accessの勉強も含む)を引き継ぎたいと思います。 ところが、いざソフトを購入しようとしたところ2003は非常に高価で手が出せません。 なぜか最新の2010の方が安価なので、もし開発作業および学習用途に支障がないのなら2010を購入したいところですが、 上級者の皆さんはどう思われますか?
>>116 会社と自宅の両方で Access 2010 を導入することを薦める。
Access 2010 でも 2003 形式の開発は可能だけど、画面はかなり違うし、機能制限等で戸惑うと思う。
どうせ勉強するなら Access 2010 に一本化した方が効率的だし、機能も多いし、使い易い。
>>117 >会社と自宅の両方で Access 2010 を導入することを薦める。
ありがとうございます。
自分も出来ればそうしたいのですが、
会社のソフトに関しては自分の一存では決められないですね。
そして今後2010が導入されるとしてもかなり先のことになりそうです。
>Access 2010 でも 2003 形式の開発は可能
一応可能なのですね。少し安心しました。
ちなみに2003(会社)→2010(自宅)→2003(会社)…というように少しずつ交互に編集することも可能でしょうか?
>画面はかなり違うし、機能制限等で戸惑うと思う。
やはり2010を使うとしたらある程度割り切りが必要のようですね。
2003が1万円くらいで買えれば最高なのですが…
119 :
104 :2010/12/10(金) 00:16:34
120 :
117 :2010/12/10(金) 00:28:38
>>118 > 交互に編集することも可能でしょうか?
可能だよ。
何度も言って悪いけど、開発が1人なら 2010 を1個買ってもらって、
使うだけの人には無料のランタイムを配布して使ってもらうのが一番安く済むと思う(開発コスト・時間的にも)。
ただ、2003 と一緒に使うと競合が起きて面倒かも?(試したことないから分からない)。
開発が始まったら、とりあえず 2010 の評価版をインストールして使ってみたら?
それから買っても遅くないでしょ。
121 :
名無しさん@そうだ選挙にいこう :2010/12/12(日) 20:10:13
Access2010なんですけど、accdrにした場合に既定のショートカットメニューを使う方法はありませんか? 右クリックしたときに出るテキストフィルタとか並べ替えとかが便利でaccdrでも使いたいです。
>>121 Application.CommandBars("Form Datasheet Cell").ShowPopup
とかでだめかね。Form Datasheet Cell 以外は自分で探してけろ。
123 :
名無しさん@そうだ選挙にいこう :2010/12/12(日) 21:52:24
124 :
名無しさん@そうだ選挙にいこう :2010/12/12(日) 22:55:00
できました。 CommandBars(4)ですね。 色々と勉強になりました。
125 :
名無しさん@そうだ選挙にいこう :2010/12/14(火) 21:09:03
VBAのレコードセットについてお聞きしたいのですが・・・ (宣言略) Set RS = New ADODB.Recordset RS.Open "テーブル名", CN, adOpenKeyset, adLockOptimistic のように、テーブルやSQLをセットするのと同様に、 クエリ名を入れてレコードセットすることは可能なのでしょうか? よろしくお願いします。
>>125 ヘルプを読めば済むことだが、クエリでもSQL直書きでも可能だよ。
ただ、接続先がAccess以外ならば注意が必要。SQLは接続先に依存。
Access2007を使用しています。 ↓の様なデータベースについてなのですが・・・。 項目 sort A 1 B 2 C 3 D 4 新たにEというデータを入力してBとCの間に挿入(sort順を3にして) それ以降のデータのsort順を1つずつ下げるにはどうすればいいのでしょうか・・・? 4つなら手動でやるのですが、当然そんな訳もなく、 普段Accessは使用していなかったのですが、どの機能を使えばいいのでしょうか?
そういう変ちくりんなのは桐を使えばよいよ
>>127 更新クエリで必要なだけ加算してから、レコードを追加
130 :
名無しさん@そうだ選挙にいこう :2010/12/17(金) 20:04:53
>>126 ありがとうございます。
勉強になります。
131 :
名無しさん@そうだ選挙にいこう :2010/12/21(火) 10:30:55
Access2010ですけど、ランタイムモードで印刷できないようにするには、どんな方法がありますか?
>>131 ショートカット/コマンド自体を使用不可とか不可視にするって感じじゃね?
ACCESSのフォームの色って、コードから変えられるの? プロパティからだけ?
コードでプロパティを設定する
Access2003でレポート(名簿)を作成したいのですが、テーブルに ID、氏名、部署 1、一郎、営業 2、次郎、営業 3、三郎、営業 4、四郎、営業 5、五郎、開発 6、六郎、開発 7、七子、経理 みないなデータがあるとして、このテーブルをレコードソースにした時 部署ごとで改ページを入れたいのですが、可能でしょうか? もし可能であれば、どうすれば良いのでしょうか? よろしくおねがいします
部署でグループ化して部署セクションの改ページプロパティで制御
>>136 ありがとうございます
セクションとか良く分かってないので、そのキーワードで調べながらやってみます
また行き詰ったらお願いします
>>137 セクションは詳細とかレポートヘッダーとかのこと
部署でグループ化すれば部署ヘッダー、部署フッターが詳細セクションの上下にできる
>>138 お蔭様で部署ごとの改ページができました
ありがとうございました
今度は、ある条件の場合のみ部署ごとの改ページを行う/行わないを切り替えたいのですが
同じレポートを使って改ページする・しないと言う制御もできるのでしょか?
とりあえず試してみたのは
1.部署ヘッダーの改ページプロパティで「カレントセクションの前」 → 「しない」に変更
2.レポート(詳細)の中に改ページコントロールを追加
3.部署ヘッダーのフォーマットイベント内で、条件によって改ページコントロールの有効/無効を切り替え
という事をやってみたのですが、いかなる時も改ページが有効になることはありませんでした
何か考え方自体が間違ってるのでしょうか・・・
140 :
139 :2010/12/22(水) 17:31:56
自己解決しました グループヘッダーのForceNewPageプロパティを変更することで 問題なくできるようになりました お騒がせしてすみませんでした
セキュア桐は利用者コード書き込まれてる部分も暗号化してくれんかなぁ かなり違ってくると思うんだが
143 :
名無しさん@そうだ選挙にいこう :2010/12/25(土) 10:41:18
Access2010です チェックボックスやトグルボタンのコントロールソースに式を指定してあって、それをクリックすると、 「プィポッ」の音とともに以下のメッセージが出ます。*******は式です。 このコントロールは式'************'に連結しているため、編集できません。 この警告音とメッセージを抑止したいのですが、方法はありませんか? マウスクリックイベントが使用できるのが前提ですので、.enable=True のままで
>>143 うらー、こんなんでた。
Private Sub CheckBox1_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "Keystroke"
KeyCode = 0
End Sub
Private Sub CheckBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "click"
End Sub
Private Sub CheckBox1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
DoCmd.CancelEvent
End Sub
Private Sub togglebutton1_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "Keystroke"
KeyCode = 0
End Sub
Private Sub togglebutton1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "click"
End Sub
Private Sub togglebutton1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
DoCmd.CancelEvent
End Sub
145 :
名無しさん@そうだ選挙にいこう :2010/12/25(土) 17:34:27
>>144 なんとなく文意は解りました
いま出先なので月曜日に試みて見ます
2010 複数レコードフォームの明細部のトグルボタンのコントロールソースに式を設定して、テーマを適用すると 他のフィールドのデータ表示が旨く行かないね クリックしないと表示しないレコードが多々出現 テーマ解除すると治る
2003で作ったシステムって、2010でも問題ないと考えてよいのかな?
Accessはファイル共有状態でもインデックスが効くんですかね。
>>147 まぁ、2010の新機能だし、そんなこともあるでしょ。
でもさ、トグルのコントロールソースに=[フィールド1]という使い方は本来じゃないってこともあるしな。
そのような使い方だと、帳票フォームで詳細Paintイベントが無限に発生するからやめておかないとだよね。
>>148 作りが悪いか、作り込んだシステムほど問題が発生する傾向があると感じた。
まったく問題ないとするのは、楽観視しすぎかもだな。
2007からjetじゃねぇし、2010はVBA7だからコンパイルエラーということもある。
WinXPとAccess2002です。 テキストボックス内でAtokで変換を確定すると同時にその値を使って検索したいんですけど可能でしょうか? 通常は文字変換時に「やまだ」→「山田」と確定するためにAtokに対してEnterを押す、そしてAccessに対してEnterを押すと更新後イベントが発生する。 このEnterの2回押しを1回に減らしたいのですが、どのようにしたらよろしいでしょうか?
>>151 多分無理。つーか変更時イベントを使えばいいんじゃね?
>>152 確定したものを変更するので、手数が変わらないんですよ。
具体的には
やまだ→山田へ変換→Enter押下→山田確定→変更作業→変更時イベント発動 なので、Enter押下と変更作業の二手間は省略できません。
検索専用の非連結テキストボックスだとダーティーも使えないし、無理ですかね…
あっ、もしかしてデフォルト値を設定しておけば使えるかな?
>>153 152が言ってる変更時にTextプロパティみりゃいいじゃねぇか
つーことで、みんなよいお年を
>>154 ありがとう!出来ました。valueを使わずにtextを使うのが味噌なんですね。
アクセスは何かフォームやレポートが不自由だなぁ
157 :
名無しさん@そうだ選挙にいこう :2011/01/07(金) 21:52:38
ACCESSからEXCELを操作すると、 (VBAで)EXCELを終了させてもプロセスが残ることがあります。 タスクマネージャーを開かずに、また、一旦ACCESSを閉じることなく EXCELを終了させる方法をご存知の方いますか?
>>157 変数名Application.Quit
159 :
名無しさん@そうだ選挙にいこう :2011/01/08(土) 15:01:11
>>158 それが、SAVE、CLOSE、QUIT
全て(単独、複数の組み合わせで)試しましたが、ダメなんですよ。
ACCESSやEXCELは2000、WINDOWSはXPです。
バージョンの問題なのかな。
160 :
名無しさん@そうだ選挙にいこう :2011/01/09(日) 10:24:38
フォームに、同じようなコントロール(例 text1〜text5)があって、 同じ処理を繰り返し行いたい場合の処理について、教えてください。 例えば、このように全てにtextに全ての処理を書いています。 Me!text1 = "A" Me!text1 = "B" Me!text1 = "C" Me!text2 = "A" Me!text2 = "B" Me!text2 = "C" Me!text3 = "A" Me!text3 = "B" Me!text3 = "C" ・ ・ ・ なんとかまとめられないでしょうか?お願いします。
>>160 関数化して呼び出せという回答しかできんなぁ。
まずくない範囲で実際の該当部分のコードを晒してみたら? 別解があるかもしれない。
162 :
名無しさん@そうだ選挙にいこう :2011/01/09(日) 11:47:39
>>161 レスありがとうございます。
具体的なコードがすぐ出てこないのです。すみません。
コントロールを、変数に置き換えることは可能でしょうか?
コントロール名 = "text1" とか代入すれば、
あとは繰り返し処理で済むのかなと思うんですが。
>>162 コントロール名が本当にtext1とかだったら
For i = 1 to 5
Me("text" & i) = "A"
Next i
とかで回せる。
164 :
名無しさん@そうだ選挙にいこう :2011/01/09(日) 14:45:31
>>163 なるほど。ありがとうございます!
これでコードがすっきりします。
>>160 を見直してみたら、随分おかしなプログラム例を書いていました。
これじゃ、全部が"C"ですね・・・恥ずかしいです。
165 :
名無しさん@そうだ選挙にいこう :2011/01/10(月) 10:40:17
ACCESSのバージョンによって、nullの扱いが違うことってありますか?
>>165 関数の戻り値が変わることがあっても、nullはnullだと思うよ。
Accessが完璧だとは言わないがまず゛、Accessを疑う前に自分のコードを疑うべき。
具体的にコードを晒してみなよ。
167 :
名無しさん@そうだ選挙にいこう :2011/01/11(火) 08:52:39
Access2010です フォームで、Ctrl+C,Ctrl+A,Ctrl+P 等々を無効にしたいですが、何か方法はありますか?
キートップを破壊する
169 :
167 :2011/01/12(水) 23:59:44
お陰様で出来ました 本当に有難うございました
170 :
名無しさん@そうだ選挙にいこう :2011/01/13(木) 20:05:23
>>166 レスありがとうございます。クエリでの質問になります。
テーブルで、値のないレコードにはスペースだけ、値のあるレコードには末尾にスペースが
入っています。抽出したいのは値のあるレコード。
コード 名称
- --------
1 あいう__
2 ________
3 え______
抽出条件を <> NULLとし、値の入ったレコードのみ抽出。
以下のように希望通りの抽出ができました。ACCESS2000です。
コード trim([名称])
- --------
1 あいう
3 え
一方、自宅のACCESS2003で同条件で試したところ、以下のような結果。
コード trim([名称])
- --------
1 あいう
2
3 え
条件を <> ""として抽出すると、希望通りの結果になります。
というわけで、バージョンによって、NULLの扱いが変わるのか?と疑問になりました。
>>170 当方2002なので比較的2003よりの挙動のはずだが
ヘルプによれば2003の抽出が正しい。
TrimがNull値を返すのは、対象文字列にNull値が含まれる場合のみ。
バリアント型 (内部処理形式 String の Variant) の値を返すとあるから
スペースのみがが入ってるフィールドでNull値が返ってくるほうがおかしい。
172 :
名無しさん@そうだ選挙にいこう :2011/01/15(土) 13:18:01
>>171 レスありがとうございます。
何故2000での抽出がうまくいったのかは疑問ですが、
この抽出目的での正しい条件は、<>""ということなんですね。
>>172 クエリでの話しだと思うけど、後は自動修正が切れているのかもね。
<>Nullは Is Not Nullに自動修正されるはずだけど。
されていないのなら<>"Null"と解釈されているのかも?
174 :
名無しさん@そうだ選挙にいこう :2011/01/17(月) 23:01:57
>>173 条件は、<>NULL入力後、 Is Not Nullに修正されています。
自動修正が切れるということもあり得るんですね。
勉強になりました。
桐のスレなくなったのか、誰か立ててくれよ。
ComboBox.ListItemsEditForm プロパティ は、ランタイムでは無効なのですか?
ランタイムで無効なのはデザイン関係だけじゃないのかな 使う分には制限ないと思うけど 使ってない俺が言うんだから多分間違ってない
Access 2010での質問になります。 選択クエリを実行するとフィールドの関連付けがうまくなされていない現象 に出くわしたのですが、皆さんの環境でも以下は再現しますか? 1) Access起動し、新規データベースを作成(テスト.accdb) 2) テーブル「T_商品」を以下の条件で作成 ・フィールド「ID」のデータ型をテキスト型に変更 ・フィールド「商品名」(テキスト型)とフィールド「単価」(通貨型)を追加 ・データは適当に入力 例) 101 鉛筆 \50 102 消しゴム \100 103 下敷き \150 3) テーブル「T_商品」でのクエリウィザードを以下の条件で実施 ・選択クエリウィザード ・フィールド「商品名」「単価」を「選択したフィールド」に追加 ・「各レコードのすべてのフィールドを表示する」 ・クエリ名「Q_商品」で「クエリを実行して結果を表示する」 4) ナビゲーションウィンドウにて「テーブルと関連ビュー」を選択 5) すると、なぜか「Q_商品」が「関連付けられていないオブジェクト」として分類される 6) 「Q_商品」をデザインビューで開くと、フィールド名が [ ]付で表示されているので [ ]の部分を削除すると、5)の状況が改善される 【 システム環境 】 Windows7 64bit, Access 2010 (32bit)
180 :
179 :2011/01/29(土) 01:18:38
>>179 5)は発生、6)は発生しない 64bit+64bit
2007から持ち越したのや、64bitだけに発生するのや、32+64だけに発生する不具合もある。
Win7SP1で修正されるであろう不具合もある。まぁ気にスンナ。
>>181 検証ありがとうございました。
こちらで症状確認した時も最初は6)は発生しなかったような気が。
バグなら直してほしいのでMicrosoftサポートに相談したほうが
いいかな。インシデント消費するのが癪に障るけど。
>>182 障害報告に電話したら?
「情報提供ありがとうございました」で終わる可能性が高いけど
Access2010での質問です。 生年月日を、年、月、日に分けて、それぞれフィールドを用意していたのですが、 このたび、一緒にしたほうがすっきりすると思い、生年月日の一つのフィールドに まとめようとしたところ、年はわかるが、月日がわからない人が何人かおりまして、 その方たちは入力出来ず、行き詰ってしまいました。 このまま年、月、日それぞれのフィールドに分けたままのほうが良いのでしょうか。 それとも、何か良い方法がありますでしょうか。 よろしくお願いします。 【システム環境】 Windows7 (64bit) Access 2010 (32bit)
185 :
名無しさん@そうだ選挙にいこう :2011/02/01(火) 11:56:19
[生年月日]=[年] & Nz([月],"") & Nz([日],"") [月] と [日]は空欄のままで良いんじゃね?
>>185 さっそくの回答ありがとうございます。
現在はその方法ででやっておりまして、適宜年月日を合わせてレポートに出力させています。
ですので、年しかわからない人も入力出来ておりました。
ただ、年月日にフィールドを3つも使い、後からクエリで統合させて利用するのも
すっきりしないと思いまして、年月日をまとめて1つのフィールドにし、個別のフィールドは
削除しようとしたところ、年だけの人のデータをおさめることが出来ず、どうしたら良いのか
考えております。
187 :
名無しさん@そうだ選挙にいこう :2011/02/01(火) 13:26:52
だから、月日は空欄でアスタリクスでも入れとけば 2011年02月01 → 20110201 2011年 → 2011**** で良いんじゃね? もしかして、日時型 で持ちたいとか? 生年月日は時間軸の一点でなく、8文字のデータ
>>187 はい、日時型で持とうと思っていました。
日時型ですと、入力時にカレンダー入力出来るのが便利かなと思いまして。
189 :
名無しさん@そうだ選挙にいこう :2011/02/01(火) 23:22:29
accessの入ってるフォルダの権限が読み取り権限だとレコードロックのファイル作成できないから開けないですよね?
191 :
名無しさん@そうだ選挙にいこう :2011/02/02(水) 14:54:49
189です。読み取りでひらいてもldbは作成されますよね?
192 :
名無しさん@そうだ選挙にいこう :2011/02/03(木) 09:46:48
DoCmd.TransferText で選択クエリの内容をエクスポートしたいのですが、この時クエリをスナップショットで処理することはできますでしょうか? エクスポートしたいクエリのエクスポート処理に時間がかかり、テーブルがロックされてしまっているみたいで困っています。
>>192 クエリに、レコードロックプロパティとレコードセットプロパティがあると思うんだけど、
それではダメだったってことなのかい?
194 :
192 :2011/02/03(木) 17:42:57
実はそのクエリというのは動的に作成しているクエリなんです。 クエリを動的に作成し、そのままエクスポート処理を一連でおこなっているので そのレコードロックプロパティの値を変えることができないんです... っていうか変える方法が見つからないです。 クエリデザインの画面からは変更できますよね。 どうやらVBAからは読み取り専用のプロパティとなってるみたいで変更できません。 今は仕方が無いので、そのクエリをレコードセットにスナップショットで開いて そのレコードの先頭からループで回してテキストファイルを吐いています。
>>194 >どうやらVBAからは読み取り専用のプロパティとなってるみたいで変更できません。
Dim Db As DAO.Database, Qdef As DAO.QueryDef
Set Db = CurrentDb
Set Qdef = Db.QueryDefs("クエリ1")
Qdef.Properties("RecordLocks") = 2 'スナップショット
とはいえ、現在選択している手段でいいとおもうけど。
196 :
192 :2011/02/04(金) 12:02:15
>>195 ありがとうございます!
RecordLocks プロパティはクエリデザイン画面のプロパティで確認できるところの「レコードロック」ですね。
>>194 で私が「レコードロック」プロパティと書いてしまったからですよね(^^;
本当は「レコードセット」をスナップショットにしたかったのですが...
誤記でご迷惑をお掛けし、申し訳ございません。
お教えいただいた「RecordLocks」の方法も試してみます。
197 :
192 :2011/02/04(金) 12:06:49
>>194 qdf.Properties("RecordsetType") = 2
これでした!
隠しプロパティなんでしょうかね、コーディング時にヒントとして候補に出てこないですね。
でも各プロパティの名前をイミディエイトウィンドウで確認したらありました。
どうもありがとうございました!!!
198 :
192 :2011/02/04(金) 14:16:43
ところでこの RecordsetType プロパティですが、環境によって有無が分かれています。 WinXP + Access 2003 でもそのプロパティがあったりなかったり。 Access のパッチの差かも?と思い、同じサービスパックを適用して OS を再起動しても RecordsetType プロパティが出てこないです。 参照している DAO のバージョンが微妙に異なっていたので、同じ DAO を使用しても RecordsetType プロパティがない... いったいなぜ RecordsetType がなかったりするのでしょうか? いろいろとググってみたりしているのですが、RecordsetType があるのが当然のようで。。。
199 :
名無しさん@そうだ選挙にいこう :2011/02/04(金) 20:06:47
"並べ替えの解除" ("フィルター/並べ替えの解除"ではない) の msoControlButton faceID は何になりますか?
>>200 別名「知恵遅れ」って言われているんだっけ、そこ。
念のため聞いておくけど、ベストアンサーじゃないよねw
AllowBypassKey と同様の機能で非公開のプロパティname接頭語があるんだぜ 最初14文字の接頭語は決まってるが残りは自由に決められる 教えてほしい人は居るかい?
203 :
名無しさん@そうだ選挙にいこう :2011/02/07(月) 10:33:54
>>200 /⌒ ⌒\ ━━┓┃┃
/(  ̄) (_)\ ┃ ━━━━━━━━
/::::::⌒(__人__)⌒:::: \ ┃ ┃┃┃
| ゝ'゚ ≦ 三 ゚。 ゚ ┛
\ 。≧ 三 ==-
-ァ, ≧=- 。
イレ,、 >三 。゚ ・ ゚
≦`Vヾ ヾ ≧
。゚ /。・イハ 、、 `ミ 。 ゚ 。
205 :
名無しさん@そうだ選挙にいこう :2011/02/08(火) 14:05:01
これは質問者の悪戯としか思えないな
MukkuZMukuさんは質問したら答えてくれるんかなぁ、勿論、ロハでアクセス教えて貰おうなんて気はなくて、ブログの記載事項に限った質問なんだけど。 どこにメールすれば良いのかなぁ。
すみませんが質問です。
【 システム環境 】 Windows Server 2003, Access 2007
【 VBAが使えるか 】 はい、一応
【 VBAでの回答 】 可
【 検索キーワード 】 思いつくキーワード全て試しました。
質問:
一つのAccessで定期的に指定の別のAccessがオープンしているかどうか確認して、
もし開いていなかったら、オープンするという操作をしたいんです。
ttp://support.microsoft.com/kb/285822のような方法で別のファイルの確認ができれば 良いのですが、分からないです。
間違って同じものを二つオープンする事を極力避けたいんです。
以上、よろしくお願いします。
>>207 リンク先のコードで
Set cn = CurrentProject.Connection
を
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=accessファイルのフルパス;"
cn.Open
てな感じにすれば状況が取得できるべな。どう使うかはお好みで。
>>206 コメントしておいてくれたらいい。なんらかリアクションはすると思う。
期日とか返答の約束ができないだけですわ。古い記事については役に立てないかもしれない。
そもそも、記事の内容はいい加減だし。
と、裏のおじいちゃんがつぶやいてた。
>>208 おお、すばらしい。試して見ます。どうも有り難うございます。
実際の仕事でAccessを使えば幅が広がる事はわかっているのですが、 習得が面倒で、なんとなくExcelで済ましちゃう。 そんな状態が何年も続いています。 今年こそはと、今無性にヤル気になっています。 どなたかAccess習得にオススメのeラーニングをご教授下さい。 今はAccessで8万件のテーブルを作り、Excelのピボットテーブルで分析する そんな中途半端な初心者です。
テーブル上のテキスト型のフィールドをコントロースソースにしてコンボボックスで表示します. フィールドサイズを50→255に上げて長文を入力する. それをコンボボックスで表示しようとするときに「フィールドサイズが大きすぎます」と怒られます. コンボボックスを新たに作成すると怒られないので,既存のコンボボックスのフィールドサイズを変更すればいいと思われます. その変更の仕方がわかりません.どうしたらいいのでしょうか?
212 :
211 :2011/02/11(金) 14:10:14
あっ,解決した.すまん.無視してくれ.
エクセルのデータをアクセスのデータベースに入れたり、 アクセスのデータベースからエクセルに落としたりするvbaを作成したいのですが、 参考になるよい本を教えてください。
>>213 本屋に足を運んで、実際に中身を確認して買ったほうがいいぞ。
俺にはよかったからといって、あなたにもいいとは限らないから。
まったくの初心者なら、何でもいいから初心者向けの本を一冊買って
最低限の用語を覚えればいい。そうすれば、あとはネットで調べ放題だ。
こういうところで質問するときにも、コミュニケーションが取れるしね。
Access2010でアプリケーション作ったのですが、オプションで起動時に開くフォームをメニューフォームに指定してポップアップ最大化で開いています。 メニューフォームが開かれるまえに、ごく短時間ですがアクセスのみっともない画面が表示されます。リボンとかナビゲーションウインドウとかも見えてみっともないです。 アクセスのアプリケーション画面を見せないでメニューフォームを開かせることは可能ですか?
>>215 ショートカット使って最小化で起動したらいいんじゃね?
もしくは、君の思うみっともないAccessを使わない。
有難うございます。でもショートカットで最小化しても、ユーザーがタスクバーのアイコン触ったら元の木阿弥ですよね。
>ユーザーがタスクバーのアイコン触ったら元の木阿弥ですよね。 ポップアップ使うからそんなことなるんだよ
>>215 さん
コマンドラインオプション
( /runtime とか?)
VBSで該当mdbを非表示で起動するとか。
221 :
215 :2011/02/14(月) 22:14:35
皆さん色々と有難うございます。 従業員に入力させる為に、テーブルを見せないように二重起動にしてます。 他も弄らせたくないために、ポップアップ最大化での運用にしました。 ので、オプションやVBSでの直接起動ができませんです。 パーソナルデータベースAccessの限界なんでしょうか、桐だとオーバーラップフォームで容易にできるのですが。 根本的に考え直します。
ショートカットの実行時の大きさを最小化にしておくだろ、
そしてメニュー用のフォームをpopupにしないでさ、ドキュメントタブは表示しないようにしておいて、
AutoExecでこんなの実行すればいいんじゃねって話だ
Function StartUp()
DoCmd.NavigateTo "acNavigationCategoryObjectType", ""
DoCmd.RunCommand acCmdWindowHide
DoCmd.ShowToolbar "Ribbon", acToolbarNo
DoCmd.RunCommand acCmdAppMaximize
DoCmd.OpenForm "StartForm"
End Function
実行時は
>>220 と同じだと思うけど、最小化で起動されるからいい感じで開くんじゃねぇの?
>>221 ちょっと待て。
起動時にACCESSの画面が表示が嫌
テーブルとかいじられるのが嫌
結局どれが本命なの?
後者ならAPIたたけばいいんじゃないのか。
224 :
215 :2011/02/14(月) 22:30:45
>>222 有難うございます。
> そしてメニュー用のフォームをpopupにしないでさ
以外は、同様にしています。
やっぱり、タスクバーやデスクトップにアクセスされちゃうのは防げませんかね。
KIOSKform が理想なのですが。
>>223 両方嫌なのですが。
> 後者ならAPIたたけばいいんじゃないのか。
これ、教えて頂けませんでしょうか、宜しくお願いいたします。
225 :
215 :2011/02/14(月) 22:39:07
むむ、見覚えあるURLだな。 ちょっと記事書いてくる
うーむ、慣れないことをやってはならんと思った。じゃ、おやすみ
229 :
215 :2011/02/15(火) 08:53:03
MukkuMuku さん、有難うございます。 何か、難しいですね…。 でも頑張ってみます。
【 システム環境 】 WindowsXPSP3, Access2007 【 VBAが使えるか 】 はい(ただし不慣れです)【 VBAでの回答 】 可 【 検索キーワード 】フィルタ 値集合ソース フォームフィルタで絞り込まれたレコード群の特定の値をリストボックス で表示させたいです。つまり、リストボックスの値集合ソースを SELECT 値 FROM テーブル WHERE [forms]![フォーム].[Filter] みたいな感じにしたいのですが、これではうまく動かないです。 (WHERE以下が式として認識されていないのでしょうか?) また、フィルタが入力されていないときにWHWRE以下が空白になってしまう ことや、FilterOnを考慮しないことも問題なのではないかと思います。 この目的のためには、どのような式あるいはVBAを書けばよいでしょうか。 また、フィルタ変更時にその変更をリストボックスに反映するには どのようにすればよいでしょうか?
>>230 フォームのフィルタ実行時イベントで
条件:[Form].[FilterOn]=True
アクション:値の代入
引数:[Forms]![form1]![ListBox1].[RowSource], "select field1 from table1"
条件:[Form].[FilterOn]=False
アクション:値の代入
引数:[Forms]![form1]![ListBox1].[RowSource], "select field1 from table1 where " & [Form].[Filter]
こんな感じでできるよ。実際のフォームとかコントロールの構成は解らないからおそらくだけど。
ちょい補足忘れ すべての場合においてうまくいくということではないからね。 値の代入でRowSourceを書き換えているということがポイントね。
234 :
名無しさん@そうだ選挙にいこう :2011/02/16(水) 18:20:05
235 :
名無しさん@そうだ選挙にいこう :2011/02/16(水) 22:50:48
メッセージボックスで、「はい」「いいえ」「キャンセル」 とかではなく、任意の文字を設定することって出来ますか? インプットボックスでないとダメでしょうか?
【 システム環境 】 Windows7, Access2010 【 VBAが使えるか 】 はい(ただし不慣れです) 【 VBAでの回答 】 可 【 検索キーワード 】print ページ毎の合計 アクセスで伝票を作っているのですが、ページ毎の合計を、 ページヘッダーに出力するときの書式で悩んでいます。 ページヘッダーに出力させる方法は、なんとかprintを使って 出来たのですが、数字にカンマを入れて、なおかつ、右揃えという書式にする、 というところで詰まってしまいました。 textAlignは試してみたのですが、動きません。 どうぞよろしくお願いします。
>>235 テキストボックスでもいいし、任意のキーが押されたらというのなら
表示すらいらない。
ループさせて任意のキーが押されたらブレイクするだけ。
DoEvents必須。
238 :
237 :2011/02/17(木) 04:23:32
テキストボックスじゃなくて、自作フォームな。 何を書いているんだか。
239 :
名無しさん@そうだ選挙にいこう :2011/02/17(木) 09:58:14
普段、Excelでデータを加工して資料を作るぐらいしか経験がなく、Accessは未体験の
初心者です。
現在Excelで作った部品管理台帳があり、WindowsXPのファイル共有で事務所・工場・倉庫の
3台のパソコンから開いているのですが、同時に入力はできません。
ブック共有をかけると、同時入力も可能にはなったのですが、時々ファイルが壊れたり、
入力したデータの更新がうまくいかなかったりします。
そこで、ネットで調べたり勉強本を読んで、Accessならパソコンにインストール済みだし、
初心者でもなんとか作れそうだという気はしています(無料のMS SQL Server Expressは
私には荷が重そうなので諦めました)。
作り方として、ネットを見ながらA案とB案というのを考えてみたのですが、Accessに詳しい
ヒトから見てどちらがお勧めでしょうか?
※ A案とB案
http://up3.viploader.net/pc/src/vlpc006331.jpg 個人的には、スキルの低い我が社の人間が触ることを考えると、Accessよりは使用経験が
あるExcelを使うB案のほうが良さそうにも見えるのですが、倉庫と工場で同じレコードを
同時に変更しようとしたらどうなるのか?とかも良くわかりません。
両方作って比較するだけのパワーもないので、「こっちがお勧め」という方にトライして
みようと思います。
よろしくお願いします。
>>239 A案かな。
Excelで入力させると、大抵修正が必要になるのでやめておいたほうがいい。
ただし、フォームを作らずテーブルに直接入力とかを考えいているのならB案のほうがまだましだ。
同時に同じレコードに更新すると、良くて警告、最悪はDB破損でデータがぶっ飛ぶ。
同じレコードを同時に更新する可能性が高いのなら排他処理を考える必要がある。
それほどかち合わないというのなら、非連結にするとかで更新時のみ接続するようにするだけでも
同時更新の可能性は減る。
Access 開発者用リファレンス NavigationPane オブジェクト NavigationPaneObject は、ナビゲーション ウィンドウを参照するために使用します。ナビゲーション ウィンドウとは、データベースを開いたり新規に作成したりしたときにデータベース オブジェクトが表示される領域です。 バージョン情報 追加バージョン: Access 2010 使用例 次のコード例は、Application オブジェクトの NavigationPane プロパティを使用して NavigationPane オブジェクトへのアクセスを取得し、ナビゲーション ウィンドウに表示できるカテゴリの数をイミディエイト ウィンドウに出力します。 Visual Basic for Applications Debug.Print Application.NavigationPane.Categories.Count ↑↑ おれの、Access2010 でこれが機能しないんだが、メンバーが見つからないとか何とか 何か変? 他の人は機能してる?
242 :
名無しさん@そうだ選挙にいこう :2011/02/17(木) 16:35:58
なんてこったい、未完成品かよ
つーか、2010βでは VBAで直接 Navigationpane.Visible = False とか出来たんだが…
>>239 A案のほうが良いと思いますが、アクセス開発中は
B案で進めざるを得ないと思います。
ある程度出来上がったところで利用者と相談しながら修正を加え
段階的にA案へもっていくほうが良いと思います。
いきなりA案を導入すると、あなたが大変になります。
利用者のスキルが高くないのであれば、なおさらです。
使いにくいだの、エラーだので時間がとられますし
開発・修正の苦労って、周りの人には良くわからないので
逆にあなたの評価が下がってしまうことも。
ご参考まで。
>>208 さん、教えて下さったおかげで、毎日の生活が楽になりました。
なんか嬉しくなったので再度お礼したくなりました。有難うございました。
>>240 ありがとうございます。
フォームは作ろうと思っています。
>>245 なるほど。
利用者のことまでは考えていませんでした。
段階的にできたところまでをレビューして、利用者の意見も取り入れながら
作っていこうと思います。
質問です。GPLなコマンドラインアプリや、DLLをAccessから呼び出して使う場合、Accessのソースを公開する必要はあるのでしょうか。
バカですか?
もちろんです
>>248 そのAccessが動いているWindowsのソースも公開する必要があります
253 :
名無しさん@そうだ選挙にいこう :2011/02/19(土) 11:30:59
>>237 ありがとうございます。
自作フォームをメッセージボックスに見立てて
表示させるということですね。
勉強になりました。
>>248 勝手に使っても、改造しても、ぶっ壊しても、自由で何の義務も必要もないよ、何も考えなくて良いぞ
他者に二次配布するなら考えてね
256 :
248 :2011/02/20(日) 12:22:04.43
同梱配布は考えていません。しかし、このGPLなexeがあれば、DOSバッチをはさんで、実行すると、機能が追加されますと記述するつもりです。
wikipediaのここを見る限り、明確に違反とは書かれていませんが。
ttp://en.wikipedia.org/wiki/GNU_General_Public_License Communicating and bundling with non-GPL programs
By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs.
それに、「Courier-MTA」とか「qmail」はGPLだけど、これと通信するOutLookとかは、ソースを公開する必要はあるのでしょうか。。
257 :
248 :2011/02/20(日) 12:30:39.41
>>252 ありがとうございます。
DLLは使いません。GPLなCLIアプリをDOSバッチを経由して使うつもりです。
しかし、それがないと書くアプリ自体の機能が成立しないわけではなく、悪まで機能が追加されるという点を謳うつもりです。
お騒がせして申し訳ありません^^;。
バカですか?
OpenCurrentDatabase でタンタイムモードで開く方法はありますか?
【 システム環境 】 Windows7, Access2010 【 VBAが使えるか 】 はい(ただし不慣れです) 【 VBAでの回答 】 可 【 検索キーワード 】グループ毎のヘッダーとフッターの出力 アクセスで会計システムを作っています。 毎日レポートで、現金・口座毎のその日までの累計と、その日のそれぞれの 動きを印刷したいと思っています。 ただ、日によっては現金のみのレコードだったり、何もレコードが無い場合もあります。 そういう場合でも、すべての現金・口座が一覧に表示されるようにするにはどうしたら 良いでしょうか。どうぞよろしくお願いします。 以下、例です。 現金 会議費 10000円 事務費 20000円 ■現金合計 1500000円(累計) 口座1 事務費 5000円 ■口座1合計 1000000円(累計) 口座2 ■口座2合計 112000円(累計)
下記のコードで、今まで[地図表示]ボタン押下でIEが起動して住所のGoogleMapが表示できていたのですが、
いつの間にか、IEは起動してもアドレスバーとタブに下記DispGoogleMapのURLが表示されるだけで、空白ページが出るだけになってしまいました。
更新(F5)すれば、正常に地図が表示されます。もしかしたらMicrosoftUpdateしたのが原因かもしれません。
以前の様に、ボタンクリック後すぐ表示出来るように対策ご存知の方がいたらお願いします。
※WinXP SP3, Access2003, IE8
※普段はIEでは無く別のブラウザを利用してます。
----------------------------------------------------------------------------
Private Sub 地図表示ボタン_Click()
DispGoogleMap = "
http://maps.google.co.jp/maps?f=q&hl=ja&q= " & Me!住所 & "&z=17"
Me!地図表示ボタン.HyperlinkAddress = DispGoogleMap
End Sub
----------------------------------------------------------------------------
262 :
名無しさん@そうだ選挙にいこう :2011/02/22(火) 11:32:56.53
MSの地図サービスを使ってください
263 :
261 :2011/02/22(火) 17:16:04.95
>>262 bingでちょっとやってみましたが、文字化けしてうまく機能しませんでした。
出来ればGoogleでお願いします。
また、既定のブラウザはIEにしていないのですが、(インターネットオプションで確認)
>>261 の記述ではAccessからはIEが起動します。
別のブラウザが起動するように変更するにはどうすれば良いのでしょうか?
265 :
261 :2011/02/24(木) 19:05:43.66
(~) . γ´⌒`ヽ . ___ {i:i:i:i:i:i:i:i:} あたためますか? |[\_398]|\ ( ´・ω・) | ̄ ̄ ̄| | (:::::::::::::) |___l./ ̄ ̄ ̄ ̄ ̄■/| lヽ,,lヽ | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|. | (ω・ ) おながい | .|. | し i します |__________|./ しーJ . ___ |[\1398]|\ (~) | ̄ ̄ ̄| | γ´⌒`ヽ |___l./ ̄ ̄ ̄ ̄ ̄■/| {i:i:i:i:i:i:i:i:}lヽ,,lヽ | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|. | ( ´-ω)ω- ) | .|. | (:::::::`つ⊂´ i |__________|./ し─J.し─J
【 システム環境 】 Windows7, Access2007 【 VBAが使えるか 】 一応 【 VBAでの回答 】 可 【 検索キーワード 】ACCESS 並び替え イベント フォームで並び替え(昇順で並び替え、降順で並び替え)を行ったあとに 特定の処理をさせたいと思っています。しかし、そのままずばりのイベント がみつけられないので他のイベントで代用するなどの方法を御存知であれば ご教授いただけないでしょうか。
>>267 特定の処理ってなに?
もし処理がかち合うのなら、レコードソースで並び替えるとか。
Sub Tudukereyareba() 昇順で並び替え 特定の処理 End Sub
>>268-269 ありがとうございます。
>>269 だとTudukereyarebaを呼び出すボタンなどから処理をさせる必要があります。
フォームの機能で並び替え(メインメニューの並び替えリボンとか
カラムの右クリックポップアップメニューの並び替えメニューアイテムを選択)
を行った時に、その処理(OrderByプロパティの変更)を検知して、
特定の処理(例えば、「並び替えされました」というメッセージ表示)を
させたいのです。
>>270 Me.OrderByで並び替えの状態がわかるだろ。
アクティブ時あたりにぶち込めばいいんじゃねーの?
272 :
271 :2011/03/07(月) 00:45:34.10
アクティブ時じゃ駄目だね。レコード移動時にしよう。
273 :
271 :2011/03/07(月) 01:16:02.65
連投スマン。 嘘だった。寝て頭を休ませてから考え直すorz
274 :
271 :2011/03/07(月) 01:28:35.14
ちなみにタイマー時イベントを使えば、多分悩む必要はない。
275 :
名無しさん@そうだ選挙にいこう :2011/03/07(月) 08:37:02.31
組み込みのリボンやショートカットにはそのような機能は無いので、それらを自分で作った方が早いです。
Form.ApplyFilter イベントじゃだめなん?
データベースパスワードに、セミコロンを含める方法はありませんかね? 無理矢理の方法でも良いです
278 :
名無しさん@そうだ選挙にいこう :2011/03/07(月) 10:03:13.67
Access2003の初心者です OSはXPhomeです
フォルダ一覧名を管理する簡単なデータベースを作り
面倒なフォルダ抽出部分を下記の優秀なフリーソフトで賄ってます
LS - ファイル一覧の出力
http://www.vector.co.jp/soft/win95/util/se247619.html Accessよりshell関数でフリーソフトを呼び出し実行
できあがったTXETファイルをインポートして利用しています
このフリーソフトにはLS.iniファイルがついていて
過去に指定したパラメータを呼び出す便利機能があります
LS.exe プログラム本体
LS.ini 設定値記録ファイル
直接LS.exeを実行すれば間違いなく過去設定がなされます
しかしAccessから実行すると
LS.iniを無視して初期状態でしか呼び出せません
現状は都度設定値を入力し直さねばならずとても面倒です
Access上からの実行させて
過去設定を反映させた起動方法ってありますでしょうか?
現在当該フォルダをエクスプローラでコール表示させ
手動実行の後、読み込み作業継続という情けない状態です
たいへんわがままな質問ですみませんが
解決方法ご存知なかた居られましたら宜しくお願いいたします
>>276 並び替えだとイベントが発生しない。2007以降は知らないけど。
280 :
名無しさん@そうだ選挙にいこう :2011/03/07(月) 18:27:45.53
>>278 そのLSというソフトは使っていないが、書いてある現象から想像するとカレントフォルダから
LS.iniを読み込もうとしているがShell関数から起動されるとカレントフォルダがドキュメントフォ
ルダになるので(通常、exe直接起動の場合exeのあるフォルダがカレントになる)うまく読み込
めていないんじゃないかな。
想像通りならこんな感じでできると思う。(LS.exeのフルパスがc:\ls\ls.exeとする)
Dim currentdir As String
currentdir = CurDir
ChDrive ("C")
ChDir ("C:\LS")
Shell ("C:\LS\LS.exe")
ChDir (currentdir)
ChDrive (Left(currentdir, 1))
281 :
278 :2011/03/07(月) 20:36:17.37
>>280 きちんとLS.iniファイルを読み込み動作するようになりました!!
これで面倒だった作業が省け楽になりました ありがとうございました
282 :
名無しさん@そうだ選挙にいこう :2011/03/08(火) 01:09:39.64
>>267 の状況が今一つ分かってないが、ソート時はCurrent(レコード移動時)イベントが
発生するからそこで何とかできない?OrderByプロパティが変化したかどうかとか?
ただCurrentイベントはソート時以外にも発生するから注意しないといけないが。
>>282 それでいける。
Dim OldOrderBy As String
Private Sub Form_Open(Cancel As Integer)
OldOrderBy = Me.OrderBy
End Sub
Private Sub Form_Current()
If OldOrderBy <> Me.OrderBy Then MsgBox "並び替えされました", vbOKOnly
OldOrderBy = Me.OrderBy
End Sub
こんな感じか。昨日は一部コメント化していたのを忘れて、一人で右往左往していたw
284 :
名無しさん@そうだ選挙にいこう :2011/03/08(火) 10:53:10.82
現在、ファイルメーカーで在庫管理をしているのですが、上司がアクセスに替えたいとぬかしやがります 当方、アクセスの知識は全くないのですが、ファイルメーカーからの乗り換えは難しいでしょうか?
285 :
SS :2011/03/09(水) 13:08:57.63
【 システム環境 】 WindowsXP, Access97 【 VBAが使えるか 】 DoCmdが少し使えます 【 VBAでの回答 】 可 【 検索キーワード 】 フォームフィルター null 普段、一つだけ作ったテーブルを使って発注の管理をしています。 発注先が何ヶ所かあるので、フォームフィルターを使って発注先ごとに 表示させ、納品日や請求書処理日の確認をしています。 いつもはフォームフィルターを使うと「発注先」というフィールド には入力済みの発注先がプルダウンメニューで出てきて、それを選択 できるのですが、本日同じことをしたら、is null とか is not null という選択しかできなくなっていました。 昨日、試しにクエリーやフォームを作ってみたのですが、それが影響 しているのでしょうか?(いまはクエリー・フォームとも削除済み) また、普段通りにフォームフィルターで数箇所ある発注先を選択できる ようにするにはどうすればいいでしょうか? accessをexcelのようにしか使えない初心者ですが、 ご教示の程、よろしくお願い致します。
>>285 97を持っていないからちょっと違うかもしれないが
オプションの「編集/検索」の「レコード数が次の値を超えるときは、リストを表示しない」
の値を超えているんじゃないか?
デフォ1000だと思うが、値を大きくしてみるとか。
287 :
SS :2011/03/09(水) 20:15:42.92
>>286 様、どうもありがとうございました。
ご指摘の通りに操作したところ、また復活することができました。
ご親切に感謝いたします。
メモをタグで管理しようと思っております。 Accessでタグクラウド的な検索システムは組めますか? メモとタグが多対多の関係になるので、 間に中間テーブルはさんで、 関連づける方法をとると、 つねにメモとタグの関係を中間テーブルで 管理し続けねばならず、 現実的ではない。 うまい方法はないかなぁと。 無理なら無理ということでお願いします。
>>288 Access2007から複数値フィールドってあるぞ
>>288 ま、まじすか!
調べて見ます。
ありがとう。
うん、複数値フィールド使うとAccessの中の人が自動的に多対多をやってくれるから楽ちん
日時型の書式で、yyyy/mm/dd hh:nn:ss ってやっても時間がゼロ詰め2桁にならないのはバグですか? 表示がズレてみっともないんですが
293 :
名無しさん@そうだ選挙にいこう :2011/03/10(木) 18:46:43.63
>>292 テーブルのデータシートビューならOSの設定変える方法しか知らない。
コントロールパネル→地域と言語のオプション→形式タブ→この形式のカスタマイズ
→時刻タブ→時刻の形式
H:mm:ss→HH:mm:ss
>>293 有難うございます
複数のレコードフォームですが、教えて頂いた方法で解決できました
295 :
名無しさん@そうだ選挙にいこう :2011/03/11(金) 02:32:18.35
行と列が一定していない沢山の「表」を データベースにためこみたいと思っています。 イメージとしては、分割フォームにして、 上のセクション(データシート)で「表」の属性を管理し、 「表」を選択できるようにして、 下のセクションに「表」が表示されるような形にしたいのですが、 いいやり方ってありますか? アイデアを頂戴いたしたく・・・
アクセスで、指定したWEBサイト内のリンクを辿って、全てのページの スナップショットを撮り、HTMLソースと貼り付けられている画像ファイルを 1ページ1レコードに保存するようなアプリケーションは作れるでしょうか? イメージとしては検索サイトのクローラーのような「リンクを辿っては保存、辿って保存・・」 という動作をさせたいのです。
>1ページ1レコードに保存する ここが現実的でない それ以外はプログラムが組めるなら可能
>>297 ありがとうございます。
数ページに渡ると管理が面倒なので1ページ=1レコードは崩したくないところなのですが、
どんな障害が予想されるでしょうか?
Access2007のオートフォーマットでは、フォーマットを選ぶとフォームヘッダーに イメージが埋め込まれていましたが、2010に変更したところ、テーマの選択で フォーマットを変更しても背景色とフォントが変わるのみになっています。 テーマにはイメージが埋められていたのは無くなったという認識でいいのでしょうか?
300 :
名無しさん@そうだ選挙にいこう :2011/03/14(月) 12:06:35.62
2010ではオートフォーマットはありません
タブーかも知れないけど、RunSQLとExecuteどっち使うべきか質問していい?
Oracleに移行する
>>304 アンタに弄られないように非表示にしたんじゃないのか?
取り敢えず、shiftキー押しながら起動してみ
306 :
名無しさん@そうだ選挙にいこう :2011/03/16(水) 17:42:38.39
>>301 RunSQLしか使ったことないんだけど、逆にタブーとかあるのですか?
全然詳しくないので、教えて欲しいです。
>>301 可能ならクエリ作ってExecuteだろ
仕方ない時はRunSQL、遅くなるけど
>>306 RunSQLは非同期だから正しい結果が得られない場合がある。
309 :
301 :2011/03/16(水) 20:14:30.10
RunSQLは非同期で、例えばUpdate文で1行失敗しても エラーを出さない、 逆にExecuteはエラーがよくでるという認識だったので、 結局どっちがいいの? と思ったしだいなんですよ。
>>309 RunSQLは使う機会がなかったので逆に聞くが、
309の例えで出たエラー、On Error Resume Nextで続行できないの?
>>310 なんかエラー内容で対応する処理を書くのがめんどくさくて><
クエリ使えるAccessで、何故にわざわざSQLに戻して処理するのかと小一時間 マゾヒストかと
>>312 VBA使い始めると「クエリを使うなんてどういうマゾ?」になるけどね。
30とか40個クエリがあって、中には多段クエリや
使われていないトラップクエリが存在したり・・・修正が地獄。
自作の初期作品ですら、修正できるか疑わしいw
使い捨てなら同じだけど、何度か使うならQueryDef作れよ
access2007/winxp/vba可 メインform>サブform>サブサブformという構成で、それぞれ別テーブル、別リンクフィールドで連動しているフォームがあります。 サブサブformに直接新規入力すると、サブformのデータが未入力状態になってしまうのを解消する方法はありますか?
【 システム環境 】 WindowsXP, Access2007
【 VBAが使えるか 】 いいえ
【 VBAでの回答 】 否
【 検索キーワード 】(以下のHPを参考にしています。一通り手順に習って同じように練習してうまくいっています。)
http://www.mahoutsukaino.com/ac/access2007/index.htm 取引している会社の車両のナンバーを入力すると次の列に会社名が自動で入力されるようにしたいと思っています。
特定の会社は複数台所有している場合もあるし、一台だけの会社もあります。
また、取引実績のない初めての車両も存在します。
その場合は、会社名は空欄で表示したいです。
「会社マスターテーブル」
会社ID(主キー) 会社名
001 ○○商事
002 ▲▲建設
「車両マスターテーブル」
会社ID 車番
001 1111
001 2222
002 3333
これらをクエリで以下のように。
それぞれのテーブルの「会社ID」同士を結合させて
フィールド: 車番 会社名
テーブル: 車両マスター 会社マスター
以上の設定でクエリを表示すると
車番 会社名
1111 ○○商事
2222 ○○商事
3333 ▲▲建設
となりますが、新しいレコードの車番欄に任意の数字を入力しようとすると
入力ができません。また、たとえば「5555」を「1111」に訂正しても会社名が変更されません。
ACCESSは初めて使います。
よろしくお願いいたします。
317 :
名無しさん@そうだ選挙にいこう :2011/03/19(土) 17:07:18.96
エース-x none.msp って何よ?
【国際】たんすから謎の音、通報した女性が赤面するような“ある物体”が出てくる ドイツ
別スレッドへのリンク(タイトル情報なし/ニュース速報+板)
1 名前:ちゅら猫 ◆CHURa3Ewlc @ちゅら猫ρ ★[sage] 投稿日:2010/03/06(土) 17:17:14 ID:???0
★たんすから謎の音、通報した女性が赤面 ドイツ
【3月6日 AFP】ドイツ西部のボーフム(Bochum)で、自宅で「不審な音」が
聞こえるという女性の通報があり、現場に警官がかけつけたところ、音の正体が
バイブレーターだったという出来事があった。当局者が5日語った。
声明によると、その不審音は非常に大きく、電話ごしにもはっきりと聞こえたため、
警官が「犯罪現場」に急行した。
警察の発表によると、「警察官は女性の了承を得て、音を発している洋服たんすを
開いた。衣類の下からバッテリー駆動する非常にプライベートな物体が発見された。
自動的に電源が入ったものとみられる。女性の顔はみるみるうちに真っ赤になった」という。
その後警官は女性に「よい夜を」と告げて立ち去ったという。
ソース:AFP
http://www.afpbb.com/article/life-culture/life/2706247/5449934
ラベルにアクセスキーを設定してラベルのクリックイベントが発動するようにしたいのですが,仕様上可能でしょうか? 一般的にはラベルのアクセスキーはラベルと関連づけられたテキストボックスへのフォーカス移動の機能があるので,不可能なのでしょうか?
クリックイベント自体をどうやって作成するつもりか知らんが 可能か否かでいうと可能
テキストボックスをラベルのように見せかければいいんじゃね?
>>320 ラベルのクリックイベントは普通に作れますよ。プロパティーを見てみてください。
市販されているmdbファイルなんですけど、ラベルにクリックイベントが設定されているのです。
何のためにボタンでなくラベルにクリックイベントを設定するのでしょうね。?
>>321 テキストボックスにクリックイベントを設定するのですね?
私はボタンを追加してラベルと全く同じクリックイベントを設定して使うことにしましいたが、ラベルにクリックイベントを設定する目的を知りたいですね。
323 :
316 :2011/03/22(火) 08:12:00.46
別の掲示板に移動いたします。 マルチポストになりますので この質問は無視してください。 失礼いたしました。
>>322 すまん。
どうやってと言ったのは、AccessのGUIで作成するのか、vbaで作成するのか聞いたつもりだった。
vbaだとラベルのクリックイベントを作るのは特に難しいことじゃないから。
ラベルにクリックイベントを作る優位性は特に無いから、もしかしたらクリックイベントじゃなくて、
マウスのポインタがラベルの上を通った時にイベントが発生してるんじゃないかな?
>>324 他のフォームが開くクリックイベントなんですよ。私にも何も目的があってそんな仕様にしているのかさっぱりわかりません。
たぶん、最初は単なるラベルだったのが、他のフォームを開くためにボタン代わりにしたのではないかと想像しています。
ところで、アクセスキーはラベルには設定できないということでFAでしょうか?
>>325 なんか混乱してきたけど、
まずラベルにアクセスキーは設定できる。要するにショートカットキーでしょ?
ラベルのアクセスキー(Alt+○)でフォーカス移動以外のイベント作成は、おそらく無理。
ボタンとかだと可能。
327 :
名無しさん@そうだ選挙にいこう :2011/03/23(水) 16:37:43.60
初歩的な質問で申し訳ないです テキストボックスの内容を更新したら 連動して、チェックボックスのチェックをはずす ということをしたいです よろしくお願いします
328 :
327 :2011/03/23(水) 17:12:01.93
すみません あせってテンプレ読まずに質問してしまいました 【 システム環境 】 WindowsXP, Access2007 【 VBAが使えるか 】 いいえ 【 VBAでの回答 】 可 【 検索キーワード 】 テキスボックス 更新 連動 チェックボックス よろしくお願いします
329 :
名無しさん@そうだ選挙にいこう :2011/03/23(水) 23:54:46.56
>>328 テキストボックスの更新後処理でチェックボックスの値を変えるだけ。
Private Sub テキスト0_AfterUpdate()
Me.チェック4.Value = False
End Sub
Me.チェック4.Value = Nullでもいいが、個人的にはFalse一択。
あとは応用。連結ならOldValueプロパティを使って変更チェックしたり
非連結なら規定値とかグローバル変数を使って変更チェックとかね。
>329 ありがとうございました 助かりました
Access2010 前スレで報告および御相談した、レコード数が多い複数レコードフォームで、ESCキーUndoするとスクロールしてフォーカスを失う件 Hot Fix で治りますた
windows7 access2010を使用しています。 データベース初心者です。 商品(物品) 商品(サービス) という2つのテーブルがあります。 それらを管理する売上管理を作っているのですが 売上管理内において 「商品種別」フィールドのBOOL値で対象となる商品テーブルを選び 「商品ID」に対象となる商品のキーが入るようにしたいのです。 ようするに「商品ID」フィールドに異なる2つのテーブルのキーが入る 仕組みがデータベース(Access?)の仕様として許されるのかを知りたいです。 どうぞよろしくお願いします。
【 システム環境 】 Windows7, Access2010 【 VBAが使えるか 】 勉強中 【 VBAでの回答 】 可 【 検索キーワード 】 フォームウィザード オブジェクト 値代入 キー変更 アクセス2010で初めてアクセスに触れました。以前はエクセルで顧客管理していました。 まずフォームウィザードで顧客メンテ画面(単票形式) を作りました。 顧客コードだけではユニークにできない構成なので、顧客コード・顧客区分・都道府県コードをキーにしています。 VBAの参考書やサイトで情報を調べながら検索画面を別に作って、顧客メンテに処理区分とキーを渡して変更・追加・削除が できるようにしたいと思います。 ところが検索画面から検索結果をメンテナンス画面のキー項目にセットしようとすると 「実行時エラー -2147352567 このオブジェクトに値を代入することはできません」というエラーになってしまいます。 顧客メンテ画面を単独で表示したときに最初に表示されるレコードのキーを変更しようとするために起きるエラー らしいのですが、どうすればこのエラーを出ないようにしてメンテナンスできるでしょうか。
>>333 まず宣言部と止まった前後のコードを晒してみ。
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1022064610 ここのベストアンサー回答を行いたいのですが、
コンボボックスを選択すると
実行時エラー2467
指定した式で、閉じているかまたは存在しないオブジェクトを参照しています。
となり、デパックすると
Private Sub cbx01_Click()
If (Not IsNull(Me.cbx01)) Then
★Me.FSUB.Form.RecordSource = Me.cbx01
Else
' Me.cbx01 がNULL の場合の設定
End If
Me.FSUB.Form.Requery
End Sub
★の所が選択されています。
cbx01 FSUB の名前は同じにしてあります。
access2010なのですが、何処が間違いなのでしょうか。
よろしくお願いします。
>>335 Me.FSUB.Form.RecordSource = Me.cbx01 っつーのは、サブフォームFSUBにSourceObjectが
すでに存在していることを前提になってるから、存在しない≒FSUBに何も表示されていない状態で
RecordSourceを設定しようとしてもSourceObjectがないのだからそのエラーになる。
クエリを直接サブフォームに表示するならば、
Me.FSUB.SourceObject = "クエリ." & Me.cbx01
サブフォームに表示しているフォームのRecordSourceを変更するなら
Me.FSUB.Form.RecordSource = Me.cbx01 でいいけど、選んだクエリをRecordSourceとするフォームが
サブフォームのSouceObjectになっていなければどうにもなんだろう
2010だから、似たようなメソッドでBrowseTo/SetFilter/SetOrderByってのもあるから、用途によっては選択しなされ
>>336 ありがとうございます。出来ました!
会社命令で使い始めてもうすぐ一ヶ月
要求ばかり多くて苦闘しています。(^_^;)
【 システム環境 】 Windows7, Access2007 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 Access2007 VBA UserControl Visible ADP VBS CreateObject Mdbファイルを起動すると、デフォルトフォームが表示され、 画面のボタン操作でレポートを印刷するような、VBアプリライクな仕組みを作成中です。 ところが、フォームの背後にアプリのウィンドウが表示されたままで不格好なので これをどうにか非表示にして、画面上にフォームだけが見える状態にしたいです。 ExcelVBA であれば、Application.Visible で容易に実装できますが、Accessだと オートメーション経由でなければ無理っぽいのですが、CreateObject で起動しても Mdbをオープンするメソッドが無いので実現できません。実現する方法はありますか?
なんか難しく考えてるみたいだけど 「access フォームだけ表示」でぐぐれば解決ですお
API
2010にすれば標準でOK
俺の頭はまだ2003のままだお2100えらいことなっとるのお・・・
確かにすごそうだ
そのころ、わしゃ死んどるな
345 :
名無しさん@そうだ選挙にいこう :2011/04/18(月) 08:55:32.09
MukkuMuku さんへ 以下の件、解らないのでヒント下さいませ ---------------------------- 2010/10/25 異常系の操作や動作ではなく可能で、各機能の仕様内での設定を重ねると可能になってしまう。
んと、 Runtime環境であってもフォームをレイアウトビューにすることが可能で編集できちゃうって ことだけ思い出した。ViewsModeMenuをリボンで追加してみるとすぐに確かめられるはずだよ。 そして accdeで製品版環境配布の場合、アプリケーションパーツ使えるようにしてるとだめだよーんって。 Runtime関係ないけど、ついでに思い出した。
347 :
名無しさん@そうだ選挙にいこう :2011/04/19(火) 14:33:08.13
ありがd なんとなく想定外のPitFallではなさそうなので安心できました
348 :
338 :2011/04/20(水) 20:11:48.12
>>339 難しく考えてたようです・・・
ありがとうございます!
予想に反して、タスクバーをクリックしても最大化しないみたいなので、完璧でした。
質問です andと&はどう違うんですか? 抽出条件に「"110" and "120"」と記入するのもあれば、 「Like [地名を入力] & "*"」となることもあります しかし↑で&をandに変えると正しく動きませんでした。 何故なのか教えて頂けるとありがたいです。。
>>350 携帯から失礼します
マジです
本当に悩んでます
352 :
東スポ大好き :2011/04/21(木) 10:32:31.76
>>351 andは、条件文で使い、&は、文字の連結で使います
353 :
名無しさん@そうだ選挙にいこう :2011/04/21(木) 16:27:42.38
TableAからTableBへコピーする処理に関してです。 "INSERT INTO " で大量のデータを一括にコピーをしていると、 その間はTableAへデータを登録しようとしてもオーバーフローなどのエラーが出て、 登録出来ません。 こちらをコピーの速度は(ある程度は)遅くなっても構わないので、 他の登録作業などを邪魔しない様にコピーするにはどんな方法がありますか? 登録・抽出作業はTableAにしか行いません。 今はTableAをDAOのOpenRecordSet(dbOpenSnapShot)で開き TableBをOpenRecordSet(dbOpenTable)で開いたものへループで コピーを試してます。 ループ内にSleepを入れて負荷を軽減しようと試みていますが、こちらでも オーバーフローになってしまうようです。(Sleepは10msを指定)
>>353 リアルタイムは無理と割り切ってファイルをコピーしたものからデータを取得。
自分で作ってもいいが、フリーのバックアップソフトとかを使えばいいだろう。
>>353 TABLEBは、docmdでinsertしてみたら?
表形式でデータが上の行と異なるときに色分けする方法はありますか? たとえばこんな感じです. A A B←色が変わる B C←色が変わる 要するにデーターが変化した場所を目視で探しやすくしたいのですがいい方法はありますか?
>>355 わが国のITはユーザに使用法を十分説明する時間がありません。
このため、初心者がベテランに疑問についてたずねる光景を目にすることがあります。
しかし本来は事故(情報漏えいなど)が発生した場合の責任は、
接続業者、サーバ運営者、システムを開発したエンジニアにあります。
メーカあるいは購入店にたずねるべきです。
利用者の仕事は自治(掲示板の秩序を守ること)です。助言を行ってはなりません。
素人が専門技術に言及するのは「親切」ではありません。「無責任」です。
海外のプロフェッショナルは、「私の仕事ではない」と答えるはずです。
質問したまま逃げるのは良く無いな。
>>357 Accessじゃ無理なんじゃないかなあ。DataGridViewなら
履歴の表示でそれとまったく同じ処理やったことあるけど
>>353 >こちらをコピーの速度は(ある程度は)遅くなっても構わないので、
>他の登録作業などを邪魔しない様にコピーするにはどんな方法がありますか?
・誰も使ってない時間帯にコピーする
・insert into TableB (C1, C2) select C1, C2 from TableAみたいなクエリ
・オーバーフローの意味をぐぐれカス。などってなんだ、などって
・エラーメッセージを略すな。馬鹿は何も考えずスクショとってうpしろ
363 :
名無しさん@そうだ選挙にいこう :2011/04/26(火) 01:39:37.12
A,B,C 1,2,3 1,2,3 1,2,5 2,3,4 B項目が前回値と同じで、かつC項目が違うレコード(1,2,5)を除いたデータを抽出したい。(ORDER BY A,B,Cで並び替え済み) クエリでできますか?
>>363 Queryじゃ無理じゃないかな。VBAなら10分位で出来るよ。
365 :
名無しさん@そうだ選挙にいこう :2011/04/26(火) 09:03:37.55
>>363 まず、[A] & [B]でグループ化しろ
A,Bでグループ化してCount>1 A,B,Cでグループ化してCount=1 を組み合わせるんじゃだめかな 1,2,3 の組み合わせが2件じゃなくて1件でも抽出したいんならだめか
368 :
名無しさん@そうだ選挙にいこう :2011/04/27(水) 15:34:37.49
まだ入門書を読んだだけで自分で設計、製作の経験のない素人ですので こちらでご相談するにはレベルが低すぎるかと考えたのですが、 もし、よろしければ助け船を頂けますと嬉しいです。 ver: Access2007 OS: 7 VBA: 未経験 作りたい物:約200件の顧客へ毎日の品物の配達個数記録と履歴の閲覧、 それの一ヶ月の集計に基づいた請求書と領収書の簡単な作成です。 各お客様に毎日おしぼりの配達をしているのですが、その毎日の配達本数を 顧客ごとに登録して各顧客の単価に合わせて月一で集計して請求書と領収書を 発行する作業をPCにうとい人間でも簡単にできるような物がつくりたいです。 いままではエクセルで単純な集計していたのですがアクセスの勉強を兼ねて 制作したいと考えています。よろしければオススメのサイトや書籍、 まず勉強すべきことなど御座いましたら、教えて頂けませんでしょうか。 言葉足らずで申し訳ありませんがよろしくお願いします。
顧客(顧客ID, 名称, 住所) 配達(配達ID, 顧客ID, 配達日, 配達数) 請求(請求ID, 顧客ID, 請求日, 請求額) 領収(領収ID, 請求ID, 領収日, 領収額) この基本だけは崩すな。
370 :
名無しさん@そうだ選挙にいこう :2011/04/28(木) 11:47:41.43
>>369 教えて頂けましてありがとうございます。
ご指摘頂きました各テーブル&フィールド(顧客には単価フィールドも作成)を制作し、
次いで顧客リストに100件程の登録と各ID(主キー)のリレーションシップを設定しました。
配達にもデータを数件入れてみました、次は請求額等に一ヶ月分の本数×単価の
数字を顧客ごとに出す設定をしなくてはいけないのだと考えていますが、
その考えが正しいのか また、どのように設定するべきかが分かっておりません。
入門書、参考書等も3冊ほど購入してみたのですが自分のしたい事と本の内容を
うまく照らし合わせる事が出来ていません。
申し訳ありませんが助け船を出して頂けませんでしょうか宜しくお願いします。
371 :
名無しさん@そうだ選挙にいこう :2011/04/28(木) 14:28:16.87
配達データ入れたなら 配達テーブルを基に 顧客ID 配達日 配達数×単価 を追加クエリで 請求テーブルの 顧客ID 請求日 請求金額 へそれぞれ流し込む まぁ、請求へ転送済みのチェックはいるがな
>>369 こうした場合、顧客の住所が変わったらどうするん?
・今まで対応したデータの住所も変わるが構わない。
・今までの顧客とは異なっても良いので、新たに顧客IDを割り振る。
・別途ログデータとして吐き出しておく。
例:配達ログ(配達ID, 顧客ID,名称,住所, 配達日, 配達数)
・その他
顧客の名前が変わったらどうするん?
請求作成 -------------------------------------- INSERT INTO 請求 ( 顧客ID, 請求日, 請求額 ) SELECT 顧客.顧客ID, [請求日を入力してください] AS 請求日, 顧客.単価 * SUM(配達数) AS 請求額 FROM 配達 LEFT JOIN 顧客 ON 配達.顧客ID = 顧客.顧客ID WHERE 配達.配達日 Between [開始日を入力してください] And [終了日を入力してください] GROUP BY 顧客.顧客ID, 顧客.単価 このアクションクエリを実行すれば日付を入力して請求を作れる。 これをレポートで印刷する。
実際は、期間も一緒に保存しておかないと後で涙目だろうな。
376 :
名無しさん@そうだ選挙にいこう :2011/04/29(金) 11:13:22.79
>>371 教えて頂けましてありがとうございます。
新規クリエにて顧客ID 配達日 配達数 単価の項目を作り
配達本数は月の合計として作りました。
「配達数×単価」のフィールドを作り「請求額:[単価]*[配達本数]」としたところ
配達本数が顧客IDの合計値で表示されず配達IDごとに表示されてしまいます。
当然といえば当然なのかもと思っていますがどうすれば思ったとおり表示で出来るのかが
分からず悩んでおります。
また、「請求テーブルの顧客ID 請求日 請求金額 へそれぞれ流し込む」の部分も
どのようにして流し込んで良いのか分かっておりません。
私の不勉強で申し訳ありませんがもし宜しければ教えて頂ければ幸いです。
>>374 教えて頂けましてありがとうございます。
恥ずかしながら私はまだアクションクエリという物を理解していない為、
どのように扱って良いか分かっておりませんが、
勉強してご利用させて頂きたいと考えております。
その際にまた、程度の低い質問をさせて頂くことが有るかもしれませんが、
お気を悪くせずご助言頂けましたら幸いです。よろしくお願いします。
素人すぎて話にならんわ。SQLの基本くらいできるようになってこい。 現場で使えるSQLって本がいいぞ。それを完全に理解してからまたこい。
378 :
名無しさん@そうだ選挙にいこう :2011/04/29(金) 21:58:16.63
>>377 答えたく無い奴は答えなければいいだけ
たまたま通りすがったがお前見たいのがスレの一番の害毒
そんなにレベル高いならこんな所こなくていいよw
Access2010って一万ちょっとで買えるんだね。 過去のバージョンはもっと高かったように記憶してたんだけど機能的に大きな変化あったの?
381 :
名無しさん@そうだ選挙にいこう :2011/04/30(土) 02:29:05.55
>>376 あ〜もうそれぐらいの管理ソフトなら作ってあげるから
それ見て勉強して、使いやすいようにカスタマイズしたらいいんでね
本見て一からあれこれ悩むより実践的で覚えも早いかもね
あ VBAはたぶん使うから勉強してね
捨てアド作ったから良かったら連絡を
[email protected]
なんだこいつ。キモイな
383 :
名無しさん@そうだ選挙にいこう :2011/05/01(日) 11:47:25.47
キモイといわれたので作ってあげるのやめます
そこを何とか
えー、どうしようかな・・・
キモイ奴がデーターベースを作るスレと聞いて飛んできました
ちょっと舐めるだけなら、良いよ・・・
ヲトゥィントゥィンをナメラレタときってどんな感じになるんでそうか?
TempVars使えばよいのになっ!と、愚痴をこぼす。
・・・っ!
【 システム環境 】 WindowsXP, Access2003 【 VBAが使えるか 】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 ACCESS 日付 関数 エクセルのDATE関数と同じことをACCESSでやるにはどうしたらいいでしょうか ある処理の実施日の年度末を取得したいのですが、実施日から月をみて その年度を取得するところまではいったのですが、 エクセルでのDATE(年度+1,3,31)みたいな関数の処理の仕方が分からなくて困っています
>>392 DateSerial(Year(DateAdd("m", 9, 実施日)), 3, 31)
ありがとうございますm( )m
フォーム内のアイテムの配置について質問です。
Accessのフォーム上でコントロールをきれいに並べる方法
ttp://okwave.jp/qa/q2014807.html ↑この解決方法ですと隙間なしに並んでしまいます。
フォームウィザードを使用して"表形式"を選択して自動的に
作ったフォームでは少し離れて配置されます。
どのようにしたら簡単に少し離して配置できるんのでしょうか?
>>395 ・縦をきれいに揃えたい場合は「左位置」を合わせる
・横をきれいに揃えたい場合は「上位置」を合わせる
コントロール1・2・3・4があって
12
34
って並びだとすると、「1と3」の左位置を同じにして
「2と4」の左位置を (1か3の左位置の数値)+(1か3の幅の数値)+α(αは好みの隙間幅)
で揃えればいいんじゃないかな?
上位置も同じような考え方でいいと思うんよ
的外れだったらごめんちょ
コントロールレイアウトで余白とスペース調整する
自分はこういうことかな?って思ったけど、違ったらごめん。 2003 書式→左右(上下)の間隔 2010 フォームデザインツール→配置→左右(上下)の間隔を均等にする 例)全部を選択して、左右の間隔を均等に。 A B C D → A B C D
コントロールを全部選択してレイアウトに追加→表形式 余白とスペースの調整
リレーションシップ設定したフィールドで 表示値のフィールドを自分で設定するのってどうやるの? 連結列の設定はプロパティにあるんだけど 同じように表示列 みたいなのがあって欲しかったんだが見つからない
401 :
395 :2011/05/06(金) 06:45:03.67
>>398 さんのおっしゃるメニューにある間隔の調節でイケました
よくメニュー項目を見てませんでした。
ほかの方の書き込みも役立ちましたありがとうございます。
現在手書きである記入書類をAccessのフォーム、レポートで作ろうと思っています。
販売契約書?みたいなものなのですが案外、検索しても出てこないものなんですね。
.xlsよりもいまは.pdfになっちゃってるのが多いのかな。
トレース用にイメージを透過配置しておけたら便利だなと思いました。
ま、そんなにシビアなものじゃないからいいかな。
>>400 連結列ってことは、コンボボックスかリストボックスだよな。
値集合ソースで表示させたいフィールドを追加して、列数を必要なだけに変更するんだ。
そして、列幅でサイズを変更したまえ。0;1.5cm;3cmとか。0の部分は表示されないという算段だ。
403 :
名無しさん@そうだ選挙にいこう :2011/05/06(金) 19:38:54.69
Accessは使えるが、VBA全くダメという人の入門書でおすすめはないでしょうか?
はじめてのAccessVBA 決定版
>>402 >列幅でサイズを変更したまえ。0;1.5cm;3cmとか。0の部分は表示されないという算段だ。
うひょーこんな仕様なのか
表示されるのは0cmじゃない一番左のフィールドになるのか
これはUI観てるだけじゃ気付けねえ
住所DBを作っているのですが、 テーブルには以下のように住所データが入っています 住所1(都道府県) 住所2(市区町村) 住所3(その他) 住所4(番地) カラム通りに区切っていないデータが含まれる住所を検索する時、 どのようにSQLを作ったらいいでしょうか? 例) 品川 が含まれるデータの場合 住所2や住所3に含まれる場合も抽出したいです。 住所1 住所2 住所3 住所4 愛知県 名古屋市港区 品川町 5-4-3 東京都 品川区 南品川 1-2-3
どうせインデックス効かないんで [住所1] & [住所2] & [住所3] & [住所4] Like "*品川*"
408 :
406 :2011/05/08(日) 17:12:58.09
>>407 WHEREの所で & で連結すればいいんですね。
無事に抽出できました。
ありがとうございました!
ACCESS2010ってマルチコア対応してないですか? 処理が遅いのにCPU占有率1コアしか高くなってなくて
うん
411 :
名無しさん@そうだ選挙にいこう :2011/05/10(火) 20:33:03.82
フォルダ1→フォルダ2→フォルダ4→データベース という感じの位置関係でデータベースを使っています。 現在、フォルダ4をフォルダ3にリネームしようと思っています。 しかし、現在データベースには外部アプリとの連携などの関係でリネームすると不具合が起こります。 うまくリネームする方法はないでしょうか?
412 :
名無しさん@そうだ選挙にいこう :2011/05/11(水) 20:58:50.88
Accessの学ぶにはどの本がいいですか? vbaも含めて
図書館行くと結構本あるから片っぱしから借りてくりゃいいんじゃね 1から学ぶならどうせ一冊じゃ足りないし 基本は昔からあんま変わってないし
414 :
名無しさん@そうだ選挙にいこう :2011/05/11(水) 22:38:04.64
>>414 お願いも何も、設定しなおすしかどうしようもないんじゃないの。
initファイルとかで参照先が設定しているのならともかく。
>>412 SQLが基本だよ。
VBAとかAccessの小技なんて枝葉末節だよ。
417 :
名無しさん@そうだ選挙にいこう :2011/05/12(木) 18:46:08.61
>>416 そうですよね
私もその結論に同意です
記述式のSQLドリルみたいなのにしましょうかね
クエリがあるAccessで、あえてSQLに戻る必要ないだろ
Access使う上でSQLとVBAどっち知らないと困るかっつうと 後者だと思うが
今日びVBAも要らんだろ、全部マクロで書くのが今風
あ、知らないっつっても Acceessでクエリ書けるくらいのSQL概念は知識としてもちろん必要だと思うが
>>419 俺はクエリで線引いてるうちに行き詰まって、SQLの勉強を始めた。それで目の前が開けた。
VBAなんてSQLに比べたら簡単だから逆引き本かネットで調べながら書いていけばいいんじゃないかな、と思います。
Accessがあくまでも入門で、その先でもっとDB開発の勉強をしたいのであれば、 SQLとかVBAを学んだら良いんでないの? ずっとAccessで良いのならクエリとマクロを極めればそれでも構わないと思うけど。
テーブル同士をキーコードでリレーションシップをつないで 各テーブルにあるデータを持ってくるのは全く重くないのですが、 テーブルを一度クエリに変換して書式変更等を加えた物同士を リレーションシップでつなぐととんでもなく重くなるのですが回避策はありませんでしょうか? ex id 0123456を val([id]) みたいに変換した中間クエリを作って リレーションシップを組んだりした場合
Accessできます、VBAできます。で時給3500ってとこか PLSQLできます、DB設計できます。で時給5000ってとこかな
426 :
名無しさん@そうだ選挙にいこう :2011/05/13(金) 07:29:58.63
>>423 リレーションに集合の概念とSQLが必要じゃないか
Access2003で作成したツールですが 初回起動時に何故かツールバー(「設定」しかないもの)が表示されてしまいます。 これを表示されないようにする方法をご存知の方いませんか?
>>424 関数を使って変換した値にはインデックスが使えないので連結は遅くなるよ。
値の変換は最後に行うか、クエリに元の値も含めておいて、それと連結すれば良い。
どうしても変換後の値で連結する必要があるなら、変換後の値をテーブルに保存しておく。
リレーションシップに使うには関数通さない方がいいんですね。 ありがとうございました
430 :
名無しさん@そうだ選挙にいこう :2011/05/14(土) 18:08:19.64
どなたかご教示よろしくお願い致します。 【 システム環境 】 WindowsXP Pro, Access2003 【 VBAが使えるか 】 いいえ 【 VBAでの回答 】 可 【 検索キーワード 】 Access VBA ダブルクォーテーション テキスト ・36列のカンマ+ダブルクォーテーション区切りのTXTがあります。 以下の作業をVBAかマクロで自動化したいのですが、コードサンプル を教示いただけないでしょうか? AccessにTXTインポート(名前任意) ↓ 24列目にフィールドを1列追加(空フィールド) ↓ カンマ区切りのみでTXT書き出し
TransferText acImportDelim (SpecificationName) ALTER TABLE ADD 又はあらかじめインポート用のテーブルを追加コラム付で作っておき、そこにインポート TransferText acExportDelim (SpecificationName) (テーブルにインポートする場合は、開始時又は終了時に全レコード削除) って、こんな感じかな?
433 :
名無しさん@そうだ選挙にいこう :2011/05/14(土) 23:02:36.85
>>431 ありがとうございます、早速やってみます。
教えてください Access2010 LocalVars!項目名 に、テキストボックス名が入っています LocalVars!項目値 に、当該テキストボックスの値を取得したいです ご教授くださいませ
me!LocalVars!項目値 = me(me!LocalVars!項目名)
437 :
435 :2011/05/15(日) 22:46:46.73
localVarですのでマクロ限定です
>>435 [Form].[Controls]([LocalVars]![項目名])
439 :
435 :2011/05/16(月) 09:56:05.31
440 :
名無しさん@そうだ選挙にいこう :2011/05/17(火) 21:09:47.71
Access 2007で、プリンターでの印字調整をしていたのですが、 デザーンビューでは、全て項目が表示されるのですが、 急にフォームの項目が全て#NAME?の表示に変ってしまいました。 どうしたらよいか教えてください。
やっと来たね Office 2010 SP1 on track for late June
あっ臭せえっす!
IIF関数で真の時に1を指定するとなぜか文字列になってしまうんですが 数字にするにはどうすればいいでしょうか?
>>444 EXCELのIFと同じじゃなかった?
まずどういう風に書いたか提示するのが筋だろ。
IIF(判断式,1,偽)でいいんじゃないか。
大方ダブルクォーテーションで1を囲っているのだろう。
代入先の変数がStringになってるとか
ACCSESS2003のMDBファイルに以下のテーブルがあります。 [TABLE1] ID,項目1,項目2,外部ID [TABLE2] ID,データ1,データ2 SELECT * FROM TABLE2 RIGHT JOIN TABLE1 ON TABLE2.ID = TABLE1.外部ID このSELECT文で呼び出したとき、TABLE2が新規項目だった場合に、 TABLE2に新規登録して、TABLE1の外部IDに新規登録したTABLE2のIDを入れたいです。 一度にTABLE2へ新規登録とTABLE1の更新の2つをうまくやる方法はないですか どんなふうにやるのが良いんでしょうか? 考え方だけでも教えて頂けるとありがたいです。
>>447 俺はDcountなりDlookupなりを使って既存チェックして、あとはVBAでガシガシ書き込んでしまうが。
Access2003なのですが、特定のプロセスが起動しているか否かを判断する方法はありますか? (例えばExcelが起動してる?などです) もしご存知でしたらご教授お願いします。
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ┏━┓ ┏━━━━━┓ ┏━┓ ┏━━━━━┓┏━┓ ┏━┓ ┏━┛ ┗━┓┃ ┃┏━┛ ┗━┓┃ ┃┃ ┃ ┃ ┃ ┃ ┃┗━┓ ┏━┛┗━┓ ┏━┛┗━━━┓ ┃┃ ┃ ┃ ┃ ┗━┓ ┏━┛┏━┛ ┗━┓┏━┛ ┗━┓ ┃ ┃┃ ┃ ┃ ┃ ┏┓┃ ┃┏┓┃ ┃┗━┓ ┏━┛ ┃ ┃┃ ┃ ┃ ┃ ┃┃┃ ┃┃┃┗━┓ ┏━┛┏━┛ ┗━┓ ┃ ┃┗━┛ ┃ ┃ ┃┃┃ ┃┃┃ ┃ ┗━┓┃ ━ ┏━┛ ┏━┛ ┃ ┏━┛ ┃ ┗┛┗━┛┗┛ ┗━━━┛┗━━━┛ ┗━━━┛ ┗━━━┛ ┏━┓┏┳┓┏━┓┏━━┓ ┏━┓ ┏━┓ ┏━┓ ┏┛ ┗┻┻┫┃ ┃┗┓ ┃┏━┛ ┗━┓┏━┛ ┗━┓ ┃ ┃ ┃ ┃┃ ┃ ┃ ┃┗━┓ ┏━┛┗━┓ ┏━┛ ┃ ┃ ┗┓ ┏━━┛┃ ┃ ┃ ┃┏━┛ ┃ ┏━┛ ┗━┓ ┃ ┃ ┃ ┃┏━┓┃ ┃ ┗━┛┃ ━ ┃ ┗━┓ ┏━┛┏━━┓┗━┛ ┃ ┃┗━┛┃ ┗━┓ ┗━┓ ┃ ┏┓┗━┛ ┗━┓┃┏━┓ ┃ ┃┏━┓┃ ┃ ┏┛ ┃ ┃┗━━┓ ┏┛┃┃ ┃ ┗━┛┗━┛┗━━━┛ ┗━━┛ ┗━━━┛ ┗━┛┗━┛ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂ ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
451 :
名無しさん@そうだ選挙にいこう :2011/05/21(土) 15:02:55.88
ぐぐっても無かったので教えてください。仕事で使ってるaccessの選択クエリのデザインを見てるんですが ふたつのテーブルから出来てて、フィールド名が 式1:***(一方のテーブルのフィールド名) だけで そういうの式だけのフィールドがいくつもあって何を計算しているのか、何をしたいのか よくわかりません。テーブル同士の結合線もなくグループ化もされてません。 式1: ってつくフィールド名って大体 単価*個数 みたいな感じのものしか知らないので 混乱します。データビューを見てもよくわかんないし。 ぴんとくる方いらっしゃいますか??
452 :
447 :2011/05/21(土) 17:09:52.67
>>448 ありがとうございます。
TABLE2の既存チェックして、無ければ新規登録してからでないと出来ないんですね。
もっと簡単な方法あるかと思ったんですが甘くなかったですね。
>>451 SQLビューで見たら何してるかわかるのでは?
SELECT ○○ as 式1 〜〜〜
てなっていれば、○○の部分で推測できるんじゃないですかね
454 :
451 :2011/05/21(土) 17:46:43.99
>>453 さん
ありがとうございます。SQL見ても不慣れなせいかよくわかりませんでした。
もっと勉強します。
mdeを引数渡しで起動できる?できれば引数の取得方法を教えてください。
456 :
455 :2011/05/23(月) 11:49:48.78
自己解決しました、スレ汚しすみませ^^:
汚れちまったぜ
一意な数字の伝票番号をキーにして データ入力フォームを作成しているのですが すでに登録されている伝票番号を入力した場合にエラーメッセージを出す処理は どのようにしたらよいのでしょうか? いまはADOで新規データ入力後に「完了」ボタンを押したらテーブルに保存という風にしています。
あたし、お嫁にいけない。。。
テーブル作ったときにフィールドのプロパティに設定しておけば重複エラーメッセージはAccessが勝手にやってくれるんじゃないのか 自分で判断してエラー処理するということか
> その時は、他のパソコンで実行するとうまくいったのです。が、そのパソコンには、Access2010がインストールされていました。この時もruntimeで実行しました。 製品版とruntimeを両方入れて使い分けることできるの? 教えてください。 あっちで聞くのは恥ずかしい質問でした。
あっちで聞いたら、そんなことをしてはいけません!!って言ってくれるかもしれないよ。 こっちなら、自分で試せよ。
>>461 runtimeは知らんが、97、2000の同居環境みたいになるんじゃないの。
97のmdb使用後2000のmdbが起動しなくてとかはよくあった。
それを防ぐためにショートカットで起動するexeを指定してやる必要があったと記憶している。
あえて製品を持っているのにruntimeを入れる必要はないと思うけど。
ありがとう
会計管理から顧客に紐づけて 日々の売上管理って一連の動作をAccessで作ることって可能ですか?
466 :
名無しさん@そうだ選挙にいこう :2011/05/27(金) 17:24:37.59
access の sql で、 いわゆる正規表現での量指定子( + * ? {M,N})などに相当するものってありますか。
尼とかで2010のアカデミックが対象者以外が 買えて、使えてしまうのですか?不公平感でいっぱいです
469 :
名無しさん@そうだ選挙にいこう :2011/06/01(水) 16:36:01.21
会社で使用しているソフトがアクセス95で作られておりwindows7への移行で使えなくなりました。 ソフトを作った会社は倒産していて、代替えのソフトは予算の都合でできるだけ控えたいと思っております。 windows98時代からソフトを使い続けていて、vistaに移行した際には互換でXPモードで使用しておりました。 windows7で互換をXPモードにして使おうと思ったところ、起動はするのですが入力をしようとするとパラメータ値を変更しろと出ます。 パラメータ値という言葉の意味すらわかりません。 こんな情報で助言は厳しそうですが誰か助けてorz
470 :
469 :2011/06/01(水) 16:46:07.59
OSはwindows7 accessはオフィス97の物 他のオフィスは2007を使っています
VirtualPCとか仮想マシン上のXPとかで使えばいいんじゃねぇの?
2010runtime使ってみるとか
>>471 私のOSはホームプレミアムなのでお金をかけるのは最後の手段にしたいですorz
>>472 ランタイムインストール後にファイルを確認するとアイコンが変更されて起動したらデータベースの変換がどうのと出て駄目でした。
古いアクセスに関連付けをして起動してみましたが変わらずでした。
> 他のオフィスは2007を使っています じゃ、Access2007で開いてみろよ
Runtimeって、あれ入れたらユーザにShiftキー押しながらMDB起動されて 中身丸見えになっちゃうアレは防げるの?
>>473 フリーのVPCあるから試せばいいのに
そういうのも面倒なの?ロクに探してもいないの?
>>475 防げるが、製品版Access購入されたら無意味だな
478 :
名無しさん@そうだ選挙にいこう :2011/06/01(水) 23:23:01.33
大変初歩的な質問で情けないですがaccess2007を使っています。 商品テーブルにID、名前、値段というフィールドを作り 1 いちご 100等とデータがあります。 そのデータをテキストボックスに入れて検索ボタンを押すと 結果が表示というようにしたいのですが 手順としてはフォームウィザードでテキストボックスとボタンを作り Me.Filter = "名前 = '" & テキストボックス & "'" でレコードの抽出だと思うのですが、表示がどのようにすればいいのでしょうか? 初歩的すぎて申し訳ないですがよろしくお願いいたします。
>>476 金かけたくないって書いてあんじゃん
ライセンス違反のXPイメージを使う方法を勧めてるのか?
>>474 レスありがとうございます
2007でも勿論だめでした。
>>476 XPはメーカー添付の物しかありませんので使えません。
Win98+AC95 これは大丈夫で Vista+(XPモード)AC97 これも大丈夫 Win7+(XPモード)AC97 起動はするけど、なんか要求される Win7+AC2007 これもダメで Win7+ランタイム2010と2007 これもダメぽい WinXPを持ってない Win7+AC2007でShift押しながら開いてmdbファイルの中身を覗いたりもできないのかな? ・・・と思ったけど、そんな事も思い浮かばないみたいだから 傷口を広げる前におとなしく金払って業者に頼んだ方がいいかもね
>>483 最後の手段しか残されていないってことでしょ
>>482 関数を変えれば解決するのかと思い開いてみましたが何に着手していいかわかりませんでした
>>484 最後の手段とは仮想PCでしょうか
>>485 >
>>482 > 関数を変えれば解決するのかと思い開いてみましたが何に着手していいかわかりませんでした
中身見れるんじゃん
487 :
名無しさん@そうだ選挙にいこう :2011/06/06(月) 13:50:30.00
開発環境がWindows7 64bit Access2007でクライアントがWindows7 32bit版 Accessランタイムです。 64bitの方にはoffice2007と2010が共存しています。 最近、クライアント側でADO接続するコードのCurrentProject.Connectionの部分で以下のエラーが出ます。 「クラスはオートメーションまたは予測したインターフェイスをサポートしていません。」 なんとかこのエラーを回避する方法はないでしょうか? DAOですべて書き直せばいいとは思うのですが、いかんせん場所が多くて・・・。 対処方法があればいいなと思って相談させていただきました。
488 :
名無しさん@そうだ選挙にいこう :2011/06/07(火) 16:58:30.44
Access2003 WinXPSP3の環境での事です。 自分はありえないと思っているのですが、利用者がそうと主張しているので原因を追究中のものがあります。 フォームにコンボボックスを設置しています。 内容としては、コンボボックスで選択された値をデータテーブルに保存するだけです。 ■フォーム レコードソース:データテーブル ■コンボボックス コントロールソース:フィールドA 集合体ソース:テーブル/クエリ 値集合ソース:マスターテーブル 入力チェック:はい [利用者がいう事] マスターのデータが勝手に変わる。 再現性は無し。 2年利用して今までに2,3度起きた。 直接テーブルを操作する事は無い。 なんらかでバグってデザインモードになったりするなどして、マスター側のデータが 変わる(変えれる)事ってあるのでしょうか?
日本語で頼む
>>487 開発環境がWin7SP1で配布先がWin7SPなしってことじゃねぇの?
リッチテキストフィールドを設定した場合、画像とかpdfとか貼ることはできますか?
492 :
491 :2011/06/07(火) 20:52:23.01
ちなみにAccess2010です
493 :
名無しさん@そうだ選挙にいこう :2011/06/07(火) 21:58:09.64
困っています。助けてください。 AccessでパラメータクエリのINSERT文を作成し、 AccessVBAからパラメータを指定し、実行しようと考えています。 ADODBを使用しており、 パラメータクエリのSELECT文は実現できます。 パラメータ無しクエリのINSERT文は実行できます。 ですが、パラメータクエリのINSERT文の実現方法が分かりません。 実現方法を教えて下さい。 ――――――――――――――――――――― Access2000を使用しています。 パラメータクエリのINSERT文は、 Accessのクエリを直で実行すると正常に動作します。 プログラム上(VBA)から実行できません。
494 :
493 :2011/06/07(火) 22:07:03.75
<追記> パラメータクエリ(INSERT文): INSERT INTO D_水着 VALUES ([商品名], '1'); ADODB.CommandのParametersは、 SELECT文以外には対応していないようでした。
495 :
493 :2011/06/07(火) 22:12:00.56
>>488 データがぶっ飛んで文字化けとか。
フィールド名とかにヤバイ文字を使用していると環境によってはエラーメッセージがでることもなく、
いきなりデザインモードで開いたりすることがあった気がする。
どうせなら確実にそうなればいいのに、動いたりしているから発見が遅れたりするんだわな。
>>493 "INSERT INTO D_水着 VALUES (" & [商品名] & ", '1'); "
とかにしても駄目なの? つか、VBA上でパラメータクエリにこだわる必要はないと思うが。
独自に入力画面を作ったほうが細かいコントロールができるし見栄えもいいし。
WindowsXP Access2003 フォーム「01_0A」・・通称A フォーム「02_0B」・・通称B AのボタンからBを開き、BのForm_Load()でAのボタンをEnabled = Falseにしようとしているのですが、 Private Sub Form_Load() Forms!01_0A!Edit_btn.Enabled = False End Sub このコードを書くと、「01_0A」の「_」の部分にカーソルが合わさり「不正な文字です」とエラーが出ます。 サブフォームにフィルターをかける時も同じことが起こり、いじっていたら原因がよく解らないまま治ってしまったのですが、何か分かる方いませんか?
数字で始まる名前は良くないんじゃね?
フォームなら頭にfrmって付けちゃうな・・・
グワッハッハッハ まさかまさかこの俺が勝ち組になる日が来るとは まもとな会社への就職は全部失敗 スーツ着て「上場企業に通ってます」的に15km離れた図書館に偽装出勤する毎日 子供時代から唯一の親友・貯金通帳の残高はリーマンショックで離散 心の支えだった彼女もなんか急に携帯不通でこの絵画のローンはやっぱり俺が払うの? そんな俺が まさか9980円でML110G6を買って勝ち組になれたとは! 取り合えず引き落とし日までに通帳に9980円入金できれば俺のものになる
502 :
498 :2011/06/09(木) 10:09:36.42
>>499 先頭の01_0の部分をフォーム名から取り除いたところ、うまくいきました。
先頭に数字が入ってしまうと、ダメなのですかね。
数字でフォームの並び順を固定したかったのですが、アルファベットでやることにします。
ありがとうございました。
だったらサフィックスにすればいいだけじゃね?
通じないと解ってる相手に通じない単語だして…サフィックス言いたいだけちゃうんかと
シロアリ退治の?
506 :
名無しさん@そうだ選挙にいこう :2011/06/10(金) 19:29:50.57
初歩的なのですが サブレポート内のレコードが二ページ以上に渡る場合、二ページ以降にメインレポートの表示がされません。サブレポートのみ。 どうすれば、二ページ以降にもメインレポートを表示できますでしょうか。 当方バージョンは2007です。
プロパティを墨から墨まで確認せよ
508 :
名無しさん@そうだ選挙にいこう :2011/06/10(金) 23:02:15.19
| ̄``''- 、 | `゙''ー- 、 ________ | ,. -‐ ''´ ̄ ̄`ヽ、_ / |, - '´ ̄ `ヽ、 / / `ヽ、ヽ / _/ ヽヽ/ / / / / / / ヽハ く / /! | 〃 _/__ l| | | | | | | ||ヽ \l// / | /|'´ ∧ || | |ー、|| | | l | ヽ /ハ/ | | ヽ/ ヽ | ヽ | || /|ヽ/! |/ | ヽ / | ||ヽ { ,r===、 \| _!V |// // .! | | || |l |ヽ!'´ ̄`゙ , ==ミ、 /イ川 |─┘ | ハ|| || | """ ┌---┐ ` / // | V !ヽ ト! ヽ、 | ! / //| / ヽ! \ハ` 、 ヽ、__ノ ,.イ/ // | / ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/ |(/(/(/(/(/(/(/(/(/(/│|| |\ 〃 r'´ ̄ヽ. | | ト / \ /  ̄`ア | | | ⌒/ 入 〉  ̄二) 知ってるが | | | / // ヽ 〈! ,. -' | | ヽ∠-----', '´ ', | \| | .お前の態度が | |<二Z二 ̄ / ', | | | _r'---| [ ``ヽ、 ', | | | 気に入らない >-、__ [ ヽ ! \.| l. ヽ、 [ ヽ | ヽ| \ r' ヽ、 |
ヘッダーフッター
>>509 いやなAAだな
レポートでうまくいかなかったときは大抵、各セクションに用意されているプロパティを確認すればいいのでわ。
こんなところに・・・関係ないと思っていた・・・ってな所を良く見る。
512 :
名無しさん@そうだ選挙にいこう :2011/06/12(日) 12:22:13.70
513 :
487 :2011/06/14(火) 13:56:20.67
>>490 遅くなりましたがまさにこれでした。
ありがとうございました。
増税には反対だが、そんなところに意見を出しても意味があるとは思えない。
いや、消費税思いっ切り上げて欲しいわ、こればっかりは公平だかんね 不公平な累進課税はもう勘弁
現行の税制改革であるならばまだ良いけどな。 単なる増税だからノーだ。 次は財務官僚言いなりの野田か谷垣が総理候補だとか、アホすぎ。
システム内の税率値を変更しなければ
ならなくなるかもしれないから気をつけろ、おまいら。
という
>>514 の親切なカキコなのでした
大丈夫だ 税率あがったら首つるしかないから もう俺には関係ない
520 :
514 :2011/06/16(木) 20:49:01.81
http://www.garbagenews.net/archives/1778034.html http://www.garbagenews.com/img11/gn-20110614-05.gif 消費税新設直後は税収項目の新設に加え、景気が良かった(後述)こともあり、税収が増加。
しかしそれもすぐに失速し、2年目からは減収。3年目以降は「消費税導入時点より」一般会計税収が少なくなる事態に陥る。
1997年の消費税税率アップにより、消費税税収は4兆円ほど上乗せされ、その後は10兆円前後の横ばいを維持する。
一方、一般会計税収そのものは導入直後の1997年度はやや上向きになるものの、すぐに失速。
「税率アップ以降、一般会計税収がアップ時より上回る年度は皆無」の状態のまま現在に至る。
「景気が良かった云々」を明確にするため、一般会計税収推移のみと、各年度の年度終日における日経平均株価の推移を
重ねたのが次のグラフ。
景気を表すバロメーターは各種存在するが、株価が一番身近で分かりやすく、さらには税収とも深い関係があるからだ。
http://www.garbagenews.com/img11/gn-20110614-06.gif ややズレが生じているものの(株価は景気に先導する傾向がある。売上と利益、税収もまたズレが生じる)、株価動向と一般会計税収は
近しい動きをしているのが見て取れる。
因果関係まではこのデータからだけでは実証できないが、少なくとも相関関係は説明できるし、「企業業績が上がる」のと
「株価が上がる」「企業の利益が増えて法人税が増収する」という関係は容易に理解ができよう。
また、企業の業績アップによる収益増で、周辺にもその利益が分配されれば、さまざまな経済活動が活性化し、他の税収増も期待できる。
521 :
514 :2011/06/16(木) 20:49:37.70
これら二つのグラフを見て「経験則として」把握できるのは、基本的に「消費税をアップしても税収全体は増加しない」こと。 税率を上げればそれだけ経済活動が縮小萎縮し、市場での金周りが悪くなるのだから、結果的に「利益に対して」 かけられる税収が減るのは当然の話といえる(経済促進を推し量るために「経済特区」と称し、さまざな優遇税制措置を取るという、 逆のパターンを考えれば理解は容易くなる)。言い換えれば「消費税を上げて税収をアップし、その差額で●×をすると言ったな、あれはウソだ」というあたりか。 では何故消費税を上げる必要があるのか。表向きは昨今の論議にもあるように、「何かに充てる税収を確保するため」。 しかし一つ目のグラフにおける消費税税収の動き「10兆円前後の横ばいを維持」の動きを見れば分かるように、 「景気動向にほとんど左右されない、安定税収源を確保するため」と考えるのが道理といえる。 もっとも日常社会の実情経験や、上記2グラフの動きを見れば分かるように、消費税の導入・増税は大抵において 経済を委縮させ、他の部門の税収を減退させてしまう。 ナントカの一つ覚えでは無いが、「税収が減った、ならば増税だ」では、自らの首だけでなく、自分の未来と自分らの子供たちの 首まで絞めてしまいかねないことに、十分留意する必要があろう。 税率を上げる方が考えとしては簡単ではあるが、むしろ経済の活性化を促し、社会全体の利益を拡充させ、 そこからの収益増を期待した方が、全体的には、そして中長期的にもプラスの面が多い。 無い物からしぼりとるより、あるものから受け取る方が、健全なのは言うまでも無いのだから。
フォームにレコードソースを設定し、レコードソースから取れる値を元にコンボボックスの初期値を変更したいと考えています。 フォームに表示するレコードは、呼び出し元からidをOpenArgsで渡すことで解決します。 Me.RecordSource = "SELECT * FROM A WHERE id = " & Me.OpenArgs & ";" Me!cmb1 = Me!cmb1.ItemData("Bの値") 最初は上記のように設定したのですが、当然エラーが発生しました。 レコードソースから取り出す「Bの値」を利用して、コンボボックスの初期値を設定する方法はありませんでしょうか。
523 :
522 :2011/06/17(金) 18:06:46.15
自己解決しました・・・ ItemDataでないと初期選択させることができないと思い込んでいました。 Me!cmb1 = "Bの値" としたら、無事に選択してくれました。
システム環境 】 WindowsXP, Access2000 【 VBAが使えるか 】 いいえ 【 VBAでの回答 】 可 【 検索キーワード 】 フォーム リストボックス 絞り込み 選択 初心者です。テーブル入力用のフォームを作成しています。リストボックスで値集合ソースのクエリビルダの抽出条件で絞り込みまではできました。再クエリもできて、リストボックスに思うとおりに候補が出てくるようにはなりました。 ただ、フォーム上でそのリストボックスをクリックしないと、入力が反映されません。(テーブルは空白のまま) 候補は一つに絞られてます。毎回リストボックスのところをクリックしなくても確定させたいです。 イベントプロージャの再クエリの後にクリックするみたいなのを記述すればよいのでしょうか? 言いたいことが分かりにくくて申し訳ないです。下記みたいな感じです。 テーブル1 工種 単位 舗装 m2 伐木 本 運搬 m3 テーブル2入力フォーム 日付 出来高 数量 単位 6/18 伐木 10 本 ←フォームで伐木が選択されると単位も自動的に反映して入力したいです。
【 システム環境 】 Windows7, Access2003 【 VBAが使えるか 】 いいえ 【 VBAでの回答 】 可 【 検索キーワード 】 クエリ プロパティ ハイパーリンク 結合 外部画像(同じディレクトリ)へのハイパーリンクをクエリで作成したいと思っています。 FOLDER FILENAME EXT .\123 0000001 jpg .\123 0000002 jpg .\124 0000003 jpg このようなデータがテーブルにあり、 選択クエリのフィールドに 式1: HyperlinkPart([FOLDER] & "\" & [FILENAME] & "." & [EXT],1) と入力したのですが、文字は出てくるものの 黒文字で、リンクされていない状態です。 どうしたら青色でリンクされるのでしょうか。 よろしくお願いいたします。
>>525 クエリの出力結果は青くならず、
データ型がハイパーリンクになっている別フィールドへ格納してそれを表示すれば青くなるんじゃね?
(あたりまえか)
通貨型を左に90度倒して表示させる方法はないでしょうか?
___ クルッ… / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / || ̄ ̄|| <⌒ヽ )) < 前に調べて、 | ||__|| < 丿 | できないって結論だったと思うけど。 | ̄ ̄\三⊂/ ̄ ̄ ̄/ \___________ | | ( ./ /
ACCESSのVBAって、VB.netやってたらある程度使えますかね?
VBA自体は非常に取っつきやすい 問題はデータベースの概念を理解しているか
>>525 文字列を合体さしてハイパーリンク型フィールドに格納して、
それを取り出すときに使うのがHyperlinkPart関数
レポートでページ全体にわたる囲み枠を描きたいのですが角を丸くすることってできますか?
CircleとLineで頑張るか、背景イメージでいいんじゃね
フォームのデザインや画面変遷 みやすいフォームの作り方ってどうやって勉強してますか? 技術的な部分を解説した本は沢山あるんですが フォームのデザイン的なものを解説したようなのは見当たりません。 どうも自分で作ったフォームは使いづらい?見づらい?ように感じてしまいます。 人の作ったフォームとか沢山みたいです。
そのCSVはANSI(ShiftJIS)なのか? CSVをリンクすりゃいいだけの話じゃねぇの?
539 :
名無しさん@そうだ選挙にいこう :2011/06/26(日) 18:26:21.59
ExcelVBA+AccessVBAで作成したシステム(mdbは共有サーバ内,ADO接続)が Win7(32bit)+Excel2010環境でエクセルが落ちる現象が出ています 調べた結果、Accessのローカルテーブルに更新する際に落ちています ただ、ほかの既存のローカルテーブルの更新は問題なく出来ます 私が後から追加したローカルテーブルの更新が出来ないです Accessのテーブルのセキュリティは同じになっています Accessのローカルテーブルを更新をしないような設定があるのでしょうか WinXP+Excel2007→ OK WinXP+Excel2010→ OK Win7+Excel2010→ 一部NG という感じです
DAO
541 :
名無しさん@そうだ選挙にいこう :2011/06/28(火) 14:31:17.10
2011年06月28日 Microsoft、「Office 2010 SP1」を今晩リリースか?! WinRumorsが、Microsoftは今週にも「Office 2010 SP1」をリリースするだろうと伝えています。 Microsoftは「Office 365」の正式サービス開始と共に「Office 2010 SP1」をリリースする事を計画しており、Microsoftの計画に詳しい情報筋によると、太平洋標準時の6月28日午前9時に「Office 2010 SP1」をリリースする予定とのこと。 (日本時間では6月29日午前2時)
542 :
名無しさん@そうだ選挙にいこう :2011/06/28(火) 19:43:16.98
543 :
名無しさん@そうだ選挙にいこう :2011/06/29(水) 09:09:28.50
2010SP1では分割フォームのフォーカス移動は改善されてますか?
544 :
名無しさん@そうだ選挙にいこう :2011/06/29(水) 10:43:28.46
>>543 試したら、変わってた
.SetFocusで、データシート部とカード部でフォーカスが維持されるようになった
545 :
名無しさん@そうだ選挙にいこう :2011/06/29(水) 10:49:26.80
というか2007時の挙動に戻った
Access 2010 のデータシートビューで数値フィールドにフィルタをかけるとき 複数の数値を or で繋ぎたい時はどうやればいいの?
フィールドラベルのところのフィルターメニュ開くか リボンのフォームフィルタで指定すればいいんじゃねぇの? サブフォームにするんなら、フィルタの実行/SetFilterでもいいんじゃね?
>>546 2007まではシンプルにフィルタにorを書けばよかったのにね。
明らかな改悪だな。
2010はカスタマイズしたプリンタのプロパティにマクロとかできなくなったの?
2010SP1にしたら複数行のコピペが出来なくなったような…
551 :
500 :2011/07/02(土) 20:27:10.82
いや、ヘッダーのコンボボックスの更新後処理イベントが内部トランザクションに影響する仕様に戻ってたのが原因だった そっちを弄ってOKになった
すまぬ、Ctrl+Zを無効にするには、キートップを破壊する以外でなんとかならないもんですか?
まぁ、きっとフォームなんだろうから、KeyDownイベントあたりで制御すればいいんじゃね?
sage
555 :
552 :2011/07/05(火) 16:57:16.80
>>553 ありがとう、もうこの際それ以上戻されたくない時点でフォームをRefleshすることに致したっす。
WindowsVISTA、Access2007です。 サブフォームにデータの一覧を表示し、さらに各データの右側に更新と削除の 二つのボタンを表示して、そのボタンを押すと更新画面や削除メッセージが 表示されるようにしたい思っています。 東京都 | 13,161,751 | 更新ボタン | 削除ボタン 神奈川県 | 9,049,500 | 更新ボタン | 削除ボタン 大阪府 | 8,862,896 | 更新ボタン | 削除ボタン (略) こんな感じです。 でもデータ一つ一つにボタンをつける方法がわからなくて悩んでます。 どのようにすればボタンをつけられるでしょうか?
557 :
名無しさん@そうだ選挙にいこう :2011/07/06(水) 18:38:40.30
サブフォームはデータシートじゃなく、複数のレコードフォームで作れば良いんじゃないの
access95から2010に安くアップデートできますか?
2010のアップグレード対象は2000以降だぜ
560 :
名無しさん@そうだ選挙にいこう :2011/07/08(金) 18:23:54.84
2010 自分で作ったアプリケーションパーツを開くと必ずエラーになって既存テーブルが倍に増えるんだけど 既存テーブル全てに連番着いたコピーが作成される なんか間違えてる?
office365とInfoPathでどうだい、Access要らないじゃん。
既存のテーブルっつーか、アプリケーションパーツ(accdt)に含まれるテーブルがインポート されてるっつーことではないの?
563 :
560 :2011/07/09(土) 10:16:50.01
2010
オリジナルのアプリケーションパーツ作る時に
accdb内にテーブルやフォームやクエリやレポートやが沢山あって
そのうち一つのフォームをアプリケーションパーツにしたいときに、どうやるの?
そのフォームを指定すると、
>>560 みたいなことになっちゃう
一部だけをテンプレート化することはできないから、 対象とするフォームやテーブル、モジュールだけにしてからaccdtにしないとだめさぁ。 ざっくばらんな話accdtからインポートってことだから。 参照設定とかMSysResourceテーブルの内容とかもaccdtからインポートしてしまうから 必要に応じて調整せねばですな。 そんで、単なるテンプレートにするならフォームのインスタンス化を指定しない。
565 :
560 :2011/07/09(土) 15:15:14.04
566 :
名無しさん@そうだ選挙にいこう :2011/07/10(日) 07:22:09.25
よろしくお願いします。2003利用者です。 フォームが一番手前に来るたびにイベントを発生させることは可能ですか? 具体的には、Aというテーブルがインポートされていない場合には フォームに「Aをインポートして」といった内容の指示が表示され、それを読んだ人が テーブルをインポートし、その後開きっぱなしだったフォームを手前に持って来たら、 このときはAというテーブルが存在しているので先ほどの指示文は消え、別のコントロールが 現れる…といった動作ができればと考えています。 それが無理ならメッセージボックスに「Aをインポートしてから改めてこのフォームを開け」みたいな 文言を載せ、一旦自動でフォームを閉じてしまおうかとも思うのですが、 できればフォームは開いたまま、Aテーブルがインポートされたら指示文が消えるという 動きをさせたいです。よろしくお願いします。
フォームActivateイベントでやりくりしてみたら?
568 :
566 :2011/07/10(日) 12:28:48.86
>>567 既に試したのですが指示文に変化はありませんでした。
あと「マウスクリック時」とかにも入れてみたのですが、それでも無理でした。
フォームを開いた一番最初に表示される指示文が、あとはフォームを閉じるまで続きます。
無理ですかね、無理なら諦めますがもし可能であればその方法を取り入れたいです
2010SP1 For Each ctl In Forms(0).Section(acDetail).Controls Debug.Print ctl.Name Next 特定のコントロールが必ず漏れる…、なんてこったい バグ大杉
きちんと再現できる情報でない限りカス情報と何ら変わりがない。
571 :
569 :2011/07/11(月) 09:06:33.90
複数のレコードフォームでコントロールレイアウトにフィールドを出し入れ繰り返すと、そうなっちゃう もう修復不可能
商品の登録管理をしたいのですが、 複数のフォーマットのxlsやcsvの中から、必要な列のデータを 1つのデーターベースに登録していきたいです。 例えば、商品名の列や型番の列など、それぞれインポートしようとするファイルは ばらばらの列にあります。(A2から下以降、B5下以降…のように。) これはAccessで対応できますか?
はい
574 :
572 :2011/07/11(月) 12:37:45.29
>>573 上司に報告をしたいので簡潔に説明したいのですが、
何か特別な機能とか必要でしょうか?インポート機能とかで簡単にできるのであれば、
問題ないと思いますが。
>>574 インポートするデータが列名付だったら何も考える必要はない。
つか、フォーマット統一したほうが絶対早い。
フォーマット統一ができないとか抜かすようなら、現状にさほど不満がないのだろうからやるだけ無駄。
>>575 それぞれクライアントが別で、向こうが出してくるものを受けるので、
統一は無理ですねえ・・・。それをまとめるためにAccessを検討しているので。
577 :
名無しさん@そうだ選挙にいこう :2011/07/12(火) 12:18:28.47
じゃ、クライアント毎に変換操作作る、当たり前だが
>>576 >>577 が無難。
へい、兄弟。難しく考えるのはやめて、一歩一歩着実に行こうぜ。
まず各クライアントごとのDB構築を考えるんだ(実際に作るかは別として)。
これができてしまえば、あとは整形された各クライアントごとのテーブルから
必要なデータを引っ張ってくるだけだ。
579 :
名無しさん@そうだ選挙にいこう :2011/07/12(火) 14:45:45.05
うちが開発している客先のEDI取り込み画面は クライアント名が書かれたボタンが15個並んでるぜ ええ クライアント毎の専用画面15枚作りましたぜい
アクセスは全くのど素人です。 作り出したDBを、フォーマットの決まってるいくつかのxlsに流しこみたいのですが、 どの機能を使えば複数のフォーマットへ流しこみできますでしょうか。 (書き出し先の列などは、フォーマットによって違うので、書き出しプリセットみたいなのを保存しておきたいです。)
>>580 1行目が列名で2行目からデータとか、列名なしで1行目からいきなりデータというのなら
それぞれのフォーマットにあわせたクエリを介してTransferSpreadsheetでエクスポート。
雛形はすでにあってデータだけをExcelに流し込みたいというのならExcelのVBAの知識が必須。
齷齪
>>581 >>ExcelのVBAの知識が必須。
ガーン・・・ 了解です
584 :
名無しさん@そうだ選挙にいこう :2011/07/13(水) 18:14:05.13
2010SP1 コンボボックスのリスト外入力時に開かれる[リスト入力編集フォーム] Ctrl+↓ 等のショートカットキーが効かない 俺だけ?
585 :
584 :2011/07/13(水) 18:34:50.09
[リスト入力編集フォーム]は、データ入力用に設定しろってことか?
注文書入力のフォームを作ってますが、 同じテーブル設計で過去データ用(格納用)のテーブルと、入力用のテーブルに分けるのってナンセンスですか?
すいません。教えて下さい。今Access2000を使って業務ソフトを加工してます。 総職員テーブルと各個人データテーブルのリレーションシップを個人IDを元に一対一で 作成しようとしているのですが、参照整合性の問題で作成できません。
状況としては、総職員テーブルに各個人ID他のフィールドデータがあり、各個人 テーブルについては各個人ID他のフィールドがあります。 個人テーブルは1から10まであります。1から5テーブルまでは業務ソフト作成時に 造られた作成時に作られており、既に一対一リレーションシップが出来ているの ですが、後から追加した6から10までのテーブルは参照整合性の問題で一対一リレー ションシップが作成できません。
因みに、5をコピーして6に上書きしてもできな いのと、個人IDのレコード数も総職員テーブルと各個人テーブルで同じです。 どのようにすれば一対一リレーションシップが出来るでしょうか。 稚拙ではありますが、宜しくお願い致します。
590 :
名無しさん@そうだ選挙にいこう :2011/07/15(金) 20:47:01.02
重複無しのインデックスをつければいいんじゃないかな 後から作成したテーブルにインデックスが作成されていないとみた
マクロとVBA混在で開発するのはアリですか?
片方だけで開発してたら変態
>>591 ありかなしで問われたら「あり」なんだろう、MS的に。VBAからマクロを実行するコマンドがあることだし。
ただし、あとで絶対死ねる。
マクロを使うにしても、VBAに変換したコードをパクってVBAオンリーにしたほうが後々保守性があがる。
オブジェクトはテーブル、フォーム、レポートだけで十分だ。
マクロでしかできないことがある。 VBAでしかできないことがある。 マクロの方が簡単に実装できることがある。 VBAの方が簡単に実装できることがある。 目的に合わせて自分で線引きをすりゃいいだけだ。
時代の流れに付いていけない人、VBAだけで頑張る男の人って。。。
ステキ。。。
無能な奴が時代に流される
最近購入した業務用ソフト、mdbなのはいいんだけど、VBAとマクロの混合w 馬鹿じゃないかと思う。マクロがVBAに勝ってる点なんて無いだろう常識で考えて。
599 :
名無しさん@そうだ選挙にいこう :2011/07/16(土) 13:20:25.95
>>598 マクロはCで書いてある、VBAに変換するとVBAに書き戻してる
マクロの方が速いど
Chris が言ってた
>>599 早いのかい?そうか…。しかしマクロだとメンテが面倒だよな。
Chrisにヨロシク!
はーい くりすどーんず
>>587 です。
>>590 亀レスすいません。ご助言有り難うございました。
教えていただいたとおりテーブルを確認してみたのですが、
新しく追加したテーブルにはインデックスはい(重複なし)になってました。
結果残念ながら参照整合性を満たす事が出来ませんでした。
なぜ参照整合性を満たす事が出来ないのか本当にわかりません。
解決方法のご助言下さるよう宜しくお願い申し上げます。
603 :
名無しさん@そうだ選挙にいこう :2011/07/19(火) 09:38:40.92
>>602 インデックスが主キーになってないんじゃない?
>>602 です。
>>603 有り難うございます。お騒がせしてすいません。
自己解決できました。レコード数は同じだったのですが、
相互に無いレコードがあり、これが原因でした。
失礼しました。
ただ、今度は一対一のリレーションかつ連鎖更新になっている
新規に追加したテーブルにレコードが(自動で)追加されません。
どのようにすればよいでしょうか?
何度もすみませんが、どうぞ宜しくお願い致します。
テーブル設計ってどうやって勉強したら良いでしょうか?
606 :
名無しさん@そうだ選挙にいこう :2011/07/19(火) 17:51:20.02
>>606 有り難うございます。
自動でレコードは追加されないのですか・・・。
追加するにはどのようにすればよいでしょうか?
稚拙ですいませんが、宜しくお願い致します。
他人の不幸で今日も飯がうまい!! + ____ + + /⌒ ⌒\ + キタ━━━//・\ ./・\\━━━━!!!! + /::::::⌒(__人__)⌒:::::\ + | ┬ トェェェイ | + \│ `ー'´ / + _|\∧∧∧MMMM∧∧∧/|_ > < / ─ / /_ ──┐ヽ| |ヽ ム ヒ | | \/ ─ / / ̄ / / | ̄| ̄ 月 ヒ | | ノ\ __ノ _ノ \ / | ノ \ ノ L_い o o
Access2010 Q1 計算式を設定したコントロールを編集しようとすると、 ステータスバーに「…は式に基づいているので、編集できません。」のメッセージが表示されて プウワァアーーンと警告音が鳴ります この警告音を鳴らなくする方法はありませんか? ソースに計算式を設定したオプションボタンのマウスクリックイベントを使いたいです 警告音が超ウザくて止めたいです 透明なコマンドボタンを重ねるとかでなく行いたいです Q2 フォーム上の特定のコントロールだけ、右クリックメニューを出さない方法はありませんか? 同上、チェックボックスのマウスクリックイベントで右クリック時の動作を指定したいです 全部グレーアウトしている無意味なショートカットメニューが出て超ウザいです
>609 イベントをキャンセルすればいいんじゃねの? コンテキストメニューについては、CommnadBarオブジェクトをこさえて、EnabledプロパティをFalse。 これをコントロールのショートカットメニューバープロパティに割り当ててみれ。 修業が足りんのか?
>>610 隊長、イベントをキャンセルについては既に修行を積んでおりますが、それでは希望を実現できておりません
無理ではないかと感じております
何か他にヒントがあればお願いします
CommnadBarオブジェクトについては修行を再開してみます
>>609 編集ロック はい
使用可能 いいえ
で、カーソルが行かなくなるけどそれじゃだめなの?
>612 それだとマウスイベントが拾えないんじゃねの? >611 MouseDownイベントでDocmd.CancelEventを試したか?
614 :
名無しさん@そうだ選挙にいこう :2011/07/25(月) 12:32:52.08
>>613 うぉ!!
MouseDownイベントに長々と書いてるコードも全部キャンセルされると思って、それだけ試していませんでしたあーー
有難うございました
Access2010で以下の処理を行おうとしています。 Aテーブル ID:データ1:データ2 ------------------ 1 :a :(null) 2 :b :(null) 3 :c :(null) @クエリ1でID1のデータ3をSELECT(抽出条件は where ID = 1) AAテーブルのデータ2(null)をクエリ1の結果 つまりID1 のデータ1でUPDATEを行う。NUllは全てaにする想定。 UPDATE処理にはVBAを利用し、Aテーブルとクエリ1をINNER JOINしてクエリ1の結果でUPDATE 上記の処理の場合、ID2,3のデータ2は更新されるが、ID1のデータ2だけが更新されません。 選択クエリを実行している場合、選択中のデータは行ロックされていると言う事でしょうか? (Access97だと上記の現象は出ませんでした。また、UPDATE処理時、「3件更新します」と出ています) 対応策は在りますので、原因を教えて頂けないでしょうか。
616 :
615 :2011/07/25(月) 22:34:21.39
誤記がありました。 @クエリ1でID1のデータ3をSELECT(抽出条件は where ID = 1) ↓ @クエリ1でID1のデータ1をSELECT(抽出条件は where ID = 1) よろしくお願いします。
はーい、僕だよ! それはね、サブマクロ名は半角ハイフンでいいんだけど、サブマクロが空っぽだと認識してくれないんだよ♪ だからね、空でもいいからコメント突っ込んであげるとセパレータが表示されるよ! 東京ドームシティで僕と握手!約束だよ!
>>619 でけた、thnx
東京ドームホテルは毎月泊まる、叙々苑ミートポーツ店で焼肉食べる為に、酔って帰るのメンドクサイから
621 :
名無しさん@そうだ選挙にいこう :2011/07/28(木) 21:13:36.16
2003で作ったやつが2007で破損していますや表示できませんってなって 中身すら見られないんですが、どうすれば良いでしょうか。教えて下さい
LightSwitchが登場したけど、Accessももう終わりかな・・・。
>>622 それ、納品書とか請求書とか印刷できるの?
625 :
名無しさん@そうだ選挙にいこう :2011/07/29(金) 09:37:45.31
あー、確かにコードなしで作れるwww
教えてください。 Access2003 WinXp です。 テープルA(リレーション設定あり) テーブルB がある状況で、 テーブルA(リンク元)→テーブルB へリンクテーブルの設定をしてます。 テーブルAはリレーション設定が確かにされているのですが、 テーブルBのリレーション情報を見ると、どうもテーブルAのリレーションが 解除されてるような気がします。実際のところどうなんでしょうか。 いまいち判断がつきません。
629 :
名無しさん@そうだ選挙にいこう :2011/07/30(土) 09:12:44.09
>>628 お前がそう思うなら、されてないんじゃないの?
お前の言うリレーション設定ってのがリレーションシップの事だとして
リレーションシップにテーブルの表示がない、もしくは
リレーションシップが設定されていない、とかじゃねえの?
>>627 いや、逆だ、コードなしじゃ何もできん、最初から入力と検索だけがある
コンボボックス作るのにもコード必要
もうPGは中国人だよね! ∧∧ ♪ ∧__,∧ ♪ /支\ < `Д´> ( `ハ´) シナーとニダーが (つ つ (つ つ | | | | 力を合わせて ♪ し― つ し― つ 彡 彡 ♪ ∧∧ m∧__,∧ m/支\ ♪ | < `∀´ > | ( `ハ´ ) 日本の ヽ つ ヽ つ | | | | 幸せを〜 ♪ し―ーJ し―ーJ ♪ , -―-、、 , -―∧∧ ♪ / ∧__,∧ / /支\ l < `∀´> l ( `ハ´) 奪い取るダック ♪ ヽ、_ フづと)' ヽ、_ フづと)' 〜(_⌒ヽ 〜(_⌒ヽ )ノ `J )ノ `J
632 :
628 :2011/07/31(日) 00:53:03.27
<<629 >リレーションシップにテーブルの表示がない、もしくは >リレーションシップが設定されていない、とかじゃねえの? そこまで素人じゃないわボケ 自分で調べるわ、さいなら。
accdb閉じるとパスワードの入力求められて何入れても弾かれます。 作り直してしばらく問題なかったですが、また起こるようになりました。 2010です。 データベースパスワード設定して閉じるときに最適化を設定すると生じる感じがします。 同様な経験の方はおられますか?
Access2010SP1
以下が動作しません、何か対策はありませんか?
How to: Filter a Report Using a Form's Filter
Office 2010 The following example illustrates how to open a report based on the filtered contents of a form. To do this, specify the form's Filter property as the value of the OpenReport method's WhereCondition argument.
Private Sub cmdOpenReport_Click()
If Me.Filter = "" Then
MsgBox "Apply a filter to the form first."
Else
DoCmd.OpenReport "rptCustomers", acViewReport, , Me.Filter
End If
End Sub
http://msdn.microsoft.com/en-us/library/ff192077.aspx
635 :
634 :2011/08/01(月) 14:33:57.49
フォームをフィルタして実行すると、パラメータの入力を求めるダイアログが開いてしまいます
636 :
634 :2011/08/01(月) 15:28:43.89
勘違いでした、レポートのソースが別クエリになってました 失礼いたしました
こんなアホどもに使われるAccessが可哀想
638 :
名無しさん@そうだ選挙にいこう :2011/08/02(火) 10:31:12.37
>>633 俺も何度もあったぞ、その時は空のaccdbに全部インポートして直したが
SP1になって条件付き書式多少早くなったね、使えるようになった。
Access2003で作った.adpをAccess2010で改作中ですが、.adp読み込み中にエラーで落ちてしまうようになった ログにはこんなものが Microsoft Office 14 Faulting application msaccess.exe, version 14.0.6024.1000, stamp 4d83e4fc, faulting module vbe7.dll, version 7.0.16.19, stamp 4d430aec, debug? 0, fault address 0x00023081.?x000d;?x000a; これをAccess2003で読ませると正常。保存してAccess2010で読ませると今度は正常に読む。 編集を続けていくとまたエラーになる。1月前からこれを4,5回繰り返しています。 VBに何か変なものでも入ったんですかねえ。VBコンパイルしてもエラーは無いです。
2010です レコードセレクタの右クリックショートカットをカスタマイズする方法はありませんか?
OS:Windows7Home Access:2010(ランタイム) Accessの地べた(フォームも何もない状態の一番下地)の色って、プログラムで変更する方法はありますか? 実行はランタイム版で行います。 パッケージ版は設定で、青、黒、銀の3色から選択可能ですが、ランタイム版では項目がありません。 #ランタイム版で同じにできたとしても、この色では大顰蹙ですが。 色の種類はプログラム的に。できればフレームの色とは独立させたいのですが。
ラインタイムは使っちゃダメってgoogle先生で調べたサイトにいっぱい書いてあった
>>641 まずはCommandbarオブジェクトを探してみたりすることだな。
>>642 基本的にはねーよ。なにが起きても泣かない根性があるならがんばれ。
青黒銀は "Office" 全体の設定だ。アプリケーションは関係ない。レジストリに記録されとる。
>この色では大顰蹙ですが。
使うのをやめることを検討しては?
>>643 うん、君は使わない方がいいね。
>>644 >使うのをやめることを検討しては?
別言語で作り直す費用と時間が出ればねぇ・・・・
君たち楽しそうだね
2010です レコードセレクタの右クリックショートカットをカスタマイズする方法はありませんか?
Access2010のマクロをxmlに保存するにはどうしたら良いの。
>>650 ,651
君たちは君は使わない方がいいね。
クエリでテーブルを結合するとき 123-4567など 3桁の数字 ハイフン 4桁の数字で構成されたフィールド 1234567など 7桁の数字 で構成されたフィールド で結合させるにはどうすればいいでしょうか。 あらかじめハイフンを消してからフィールド同士を結合するのではなく、 一方はハイフンをつけたまま結合させたいのです。
はいスルー 次の方どうぞ
>>654 mid([hoge],1,3)&"-"&mid([hoge],4,4)
>>654 全部文字列にすりゃええがな、では初歩的すぎるので、なんぞ落とし穴でも?
select 列1,列2... from テーブルA union select 列1,列2... from テーブルB;
ハイフンをつけたまま結合させるのは不可能っしょ
.adpなら select 何か from t_A innner join t_B on t_A.F1 = substring(t_B.F2,1,3) + '-' + substring(t_B.F2,4,4)
ご教授お願いします。 ★ OS win7 ACCESS 2010 ★顧客管理のデータベースを作成しています。 住所の入力にコンボボックスを使用したいと考えています。 日本全国のテーブルが都道府県別に用意してあります。(例:「東京都」「埼玉県」・・・) 現在、都道府県のコンボボックスと、市町村名のコンボボックスを作成してあります。 都道府県のコンボボックスで県名を選ぶと、それに該当した県のテーブルを開いて、 そこから市町村名のコンボボックスを表示して選べるようにしたいのです。 都道府県を一つのテーブルにして、クエリにしないとできないのでしょうか? できたら上記の方法でする方法をお願いします。
>>663 都道府県コンボボックスのAfterUpdateで
Me!市町村コンボボックス.RowSource = "select * from " & Me!都道府県コンボボックス
665 :
名無しさん@そうだ選挙にいこう :2011/08/13(土) 00:01:02.74
2002です。 一時テーブルを使用しているんですが、非常に重いのでメモリに持つようなことはできないでしょうか?
連結フォームの表示が要らないんなら、配列やDictionary使えば良いんじゃね
【 システム環境 】 Windows7, Access2002 【 VBAが使えるか 】 少しだけ読めます 【 検索キーワード 】access 統計 確率 あるスポーツの競技成績を種目や年度、月単位などでの細かい各個人の勝率を 割り出すという作業を行いたいと思っていまして それにaccessが適当ではないかと判断して今学習中なのですが 現状は初心者入門ページでaccessを学び、ざっくりとaccessの概念がわかった状態です 競技結果のデーターベースをクエリで細かな種目別、日別の競技結果などは 簡単に出せるだろうとは思うのですが、それを更に同じように細かな種目や 期間別での勝率を割り出して一緒に表示するなどということは可能なのでしょうか? エクセルなどと併用すれば、現状できるかなと思うのですが、accessでそういう 確率も計算して取り込んだデーターベースの作成の仕方が、ちょっと掴めません。 多少ググって解説ページなども探してみたのですが、どうも目的の作業が解説されている ページを見つけることができませんでした。 ですので解説をしているページ、マニュアルや参考書などの ここで勉強すればいいよという方向性の話でも いいので、どなたか教えていただけないでしょうか?
一緒に表示するように作るんじゃダメなのかな。
>>668 ありがとうございます。
確率がデータービューに表示されるようにクエリをいじくるということですか?
その辺の操作などが解説されてるサイトや、マニュアルはご存知でしょうか?
例えば10人のランナーが100M走を1000回ほどやったときに、各人の1位から10位になる
確率などをまとめて出したいのですけど。
クエリの操作で、試行回数と、順位の個数の分布出したりとかっていうのが、まだちょっと
わからないのですが。簡潔なやり方とかあるんでしょうか?
>>669 アクセスにもSQLServerにも統計を扱う関数はあるが、実際どう適用するかはやってみないとなんとも
まあ、ここで聞いても
>>662 や
>>664 のようなぶっきらぼうな答えしか返ってこないので、
それが得意なサイトへ行ったほうがよい。
accessclub とかmougとか
>>670 ありがとうございます。初めて見るサイトでした。そこで調べさせていただきます。
マスタ登録画面を作る時って、マスタ登録テーブル=一時テーブルみたいなのを作った方が良いですか? 登録ボタンで登録処理するようにしないと、Accessって入力した値がそのままDBに入っちゃいますよね。
NewReocrdプロパティで新規レコードであることが判るわな、 んで、 Dirtyプロパティで編集中であることが判るんだから、 BeforeUpdateであれこれすればいいんじゃね? 登録したくなければ、CancelしてUndoするなりか
>>672 フォームにテーブル1行分の非連結フィールドを作ってそこに入力させて登録ボタンでごっそりテーブルに持っていく
わかりやすいし、一時テーブルより後腐れがない
Accessの機能は使わずVBAが良いってことか!
VS2010の機能を取り込んで、こっちをLightSwitchにしたら良いんじゃないだろうか
>>672 そういうのを非連結でやる意味が無いんだが
> 登録ボタンで登録処理するようにしないと、Accessって入力した値がそのままDBに入っちゃいますよね。
入りません、他のレコードに移動したときに入ります
入る前に登録ボタンを出させて、Yesなら登録、Noなら破棄
数社分の決められたフォーマット(CSV or Excel)を、1つのDBに取り込みたいのですが、 どういう操作をすればよいでしょうか? それぞれクライアントが用意しているフォーマットは、列の書き方がばらばらなので、 DBに取り込む際に1列1列ちゃんとエクスポート先を指定したいです。
そのままインポートしてから、その後に1つのテーブルに併合するほうが楽かも
>>679 見出しが一致していないと、併合できないですよね?
>>680 table_AにX、Y table_BにW、Zがあって、W、ZをX、Yに追加するには (XYWZは項目名)
INSERT INTO table_A (X,Y) SELECT table_B.W,table_B.Z FROM table_B;
>>678 わかりやすい方法を提案する
まずは複数社分テンポラリテーブルにインポートする
元データの列がバラバラなので、クエリでインポート先に合わせて並べ替える。
インポートしたテーブル分の数のクエリができている状態
この段階で作られたクエリをユニオンでつなぐ→追加クエリでテーブルに書きだす
これでどうだろう
Accessで帳票ソフトを開発しようかと思うのですが 開発する人だけでなく、使用する人のPCにも Accessを購入する必要がありますか?
LightSwitchで作るアプリはフォントサイズ変えられないの? 小っちゃくて見にくいんですけど
>>683 なくても大丈夫です。
でも、開発者が未熟で運用し始めても細かい修正が出てくるようなら、
Accessを入れておくとそのマシン上ですぐに修正作業できるので便利。
687 :
683 :2011/08/21(日) 16:52:54.49
>>684 ,
>>686 ありがとうございます。
Accessさわるのは10年ぶりなのですが
何をどうやってたかすっかり忘れてしまって・・・
さっそく仕事にとりかかります
Accessは俺も10年ぶりに触ることになった。 mdbが新しくなったら、自動的にクライアントにコピーしてから立ち上がるような ショートカット?の作り方してた気がするけど、もう全然覚えてないぜ。
>>681 レスありがとうございます。
これだと、表示結果がtable_Bになってしまうのですが、
結果がtable_Aの状態で出すにはどうすればよいのでしょうか?
>>682 並び替えせずに、インポート元・エクスポート先を選んでできないでしょうか?
列数が多い+エクスポートには不要な列が多いこともあって、並び替えせずにやりたいのですが・・・
桐でやればインポート定義ででフィールド対応指定できるよ
>>691 accessではそういう機能がないということでしょうか?
>>693 エクスポート先は項目があるだけでデータが空で、そこにデータを流し込みたいです。
追加機能だと、インポート元の項目が出てしまうのですが、エクスポート先の項目を出した上で
レコードが追加された状態になるには、どの手順を踏めばよいでしょうか?
>>689 >これだと、表示結果がtable_Bになってしまうのですが、
どうやって表示してる?
>>694 インポート定義で仮のテーブルを作り、追加クエリで解決じゃないの?
>>695-696 ごめんなさい・・・自己解決しました。セキュリティか何かかかっていて、
解除しないと追加できなかったみたいです。
ちなみに、複数列の要素を結合してひとつの列にエクスポートはできますか?
>>697 >複数列の要素を結合してひとつの列にエクスポート
ちょっと質問の内容がピンと来ないけど具体例を教えて下さい
---
テーブルA
.列1|列2
aa | bb
これを
テーブルB
列3
aabb
にしたいってこと?
---
だったら
INSERT INTO table_B ( 列3 )
SELECT [列1] & [列2] AS sample
FROM table_A;
---
だけど。想像で答えたから的はずれだったらゴメンだが
>>698 まさしくそのことでした!
ちなみに、SQL文でないと処理できませんか?
(Accessを使う方は別の方なので、できればGUIの機能的な所だけで済ませたいのですが・・・)
>>699 guiだよ
ここに書くときに表現できなかったからsqlで書いた
クエリのsqlビューで
>>698 を入力してデザインビューで開き直してみろ
>>700 それはわかるのですが、プルダウンで選んだりして処理はできないでしょうか?
コマンドを入れ込む形式だと、別途教え込む時間かかってしまので・・・
テーブル1は型番・名前、テーブル2は型番・値段のレコードがあります。 型番の一致するものだけ、値段のレコードをテーブル1につけたいのですが、 どういう処理をすればよいでしょうか? 【 システム環境 】 Windows7, Access2010 【 VBAが使えるか 】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 Access ピポッド
>>701 他に見てる奴のためにどうやってか解決したのか書いとけよ
--
1)クエリをデザインビューで作成する
2)table_Aを選択する
3)[列1]&[列2]と書いてフィールドを作成する(式1: となるので式1の部分を任意の名前にする)
4)ビューで内容を確認する
5)4が求めてる結果なら、クエリの種類で追加クエリを選択して、追加先としてtable_Bを選ぶ
6)レコードの追加に、4)の結果を挿入したい列を選択する(例では列3)
>>703 まずあんたが提示する条件だとテーブル1に値段フィールドがないけど?
>>705 ではまず、テーブル1に空でもいいので値段フィールドつけないとダメということでしょうか?
>>703 テーブル1にupdateしたいのか
違うテーブルもしくはクエリにしたいのか
708 :
名無しさん@そうだ選挙にいこう :2011/08/22(月) 23:50:27.53
【 システム環境 】 Windowsxp, Access2003(インターフェイス)、SQL Server2000(実データ) 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可 SQL ServerをAccessにリンクさせてデータのやり取りをしている中で、 2万件程度のデータを、全行削除すると数十分掛かるぐらい時間が掛かるのですが これはどのように回避すればよろしいのでしょうか? 削除方法は、以下です。 CurrentDb.Execute "DELETE FROM リンクテーブル名", dbSeeChanges SQLServerのクエリアナライザで直接、"DELETE FROM テーブル名"を実行した場合は、 1,2秒掛からないぐらいです。
パススルークエリ使え
Access2003を使用しています 複数のテーブルを扱う時の質問です。 MDBファイルにテーブルを1つだけ作り、他テーブルはリンクテーブルを設定して INNER JOIN で使っています。 1つのMDBファイルにテーブルを複数作って、INNER JOINで使うのと、 使い勝手は同じなんですが、MDBファイルが別々の方が、 壊れた時の修復が少なくて良いなぁと思っています。 他にメリット、デメリットはありますでしょうか? あれば教えて頂きたいです。
>>710 壊れたとき云々いうならバックアップをしっかりとっとけ
●複数のファイルに保存して修復について
そもそもそのシステムはどれかのテーブルがなくても動くシステムなの?
何かのMDBが壊れて修復がうまく行かなかった場合、
結局システム全体が使えなくなるんだよな?
●ひとつのファイルで管理することに関して
質問のようにMDBひとつにまとめた場合、MDBが壊れて修復失敗の場合も上記と同様に
結局システム全体が使えなくなるんだよな?
※いつでも復旧できるようなデータ(郵便番号や○○コードなど)ならともかく、修復→復旧できなくて困るのは誰だ?
つまり重要なのは分散ではなくバックアップだ。(リスクを分散させるという考えを否定する意図ではないです)
信頼性についてはaccessではなく上位のsqlserverやその他のデータベースシステム似したらいいんじゃないのかな
mdbだと最適化も必要だから、たくさんあると面倒だね。 うちでは1つのmdbにテーブルをまとめて10台の端末からリンクして使っていた。 8年ほど使って1度も壊れなかった。今はSQLServerに変えたが。
>>711 おっしゃる通り
分散する事によってトラブルの種になる事もありそうですね。
バックアップである程度回避できるなら分散してリスク増やす必要もないですね。
MDBはファイルサイズの制限があるので、
修復が簡単なテーブル(郵便番号など)だけ外部にして
バックアップをこまめにするというのが良さそうですね。
>>712 最適化ですか。
やったことないですが・・・
1ファイル一回の最適化で済んでも、
ファイルの数だけやらないといけないですね。
それでは運用の手間が増えますね。
MDBファイルへのアクセスの仕方丁寧にやれば壊れにくくなるんですね。
714 :
711 :2011/08/23(火) 20:31:05.98
>>713 お前は何に困ってて、何を「管理」したいんだ?
障害時のダウンタイムをを減らすために運用面を工夫したいという薄っぺらい文章に読み取れてしまう。
どんな障害が予測されて、それぞれの対策はどうなっているか。それぞれの障害回復の手順・再ービス停止時間。
ダメだった場合の復旧策・それぞれにかかる時間や能力を一覧にまとめて、コストとして算出してみろ。
例えばユーザーがデータをぶっ壊したを例にとって考えると、
・ユーザーの教育をする
・ユーザーのアクセス制限をする
・ロールバックできる仕組みを作る
・管理者が諸々の調整や復旧を頑張る
・そういうこともあるさ!という文化にする
と、簡単に考えてもたくさんあるな。
で、それにかかる能力値(だれがやるの?だれだったらできる?)をあわせてコストを算出して、その対策をやる価値があるか判断してみろ。
他にもハードウェア障害時(HDD逝った・サーバー電源イカれた・ネットワーク反応しない・VPN(使ってるの?しらんけど)・外部からのどうのこうの・データの改竄・不明の死)
ソフトウェア障害(今回あんたが質問してるのはここのほんの一部だ)・ユーザーがアンポンタン対策・天災対策etc
そもそもそんな事まで考える必要があるの?もそうだ。コストに見合わせて判断すればいい
最後俺が頑張ればいいんだよ。これもその判断の一つ。
冒頭のお前は何に困ってて、何を「管理」したいんだ?ってのは、
データが壊れた時のことだけ考えて分散がいいっすか?集中管理がいいっすか?っていう質問でなんか解決されるんですか。そもそも障害ってそれだけですか?ってことが言いたかった。
長くなってごめん。本当に叩く意図はないんだ
参考に(だいぶ大げさかもしれないが)BCPでぐぐってみろ。各企業の障害時対策の取り組みのヒントがある。
SQLサーバーとaccessはどっちが強いの
やっぱmysqlとかOracleが最強だよな!っていう奴に対して
お前はどれでも一緒だよksって一蹴されるのは
>>714 が真理なんだと思う
716 :
714 :2011/08/23(火) 21:02:13.81
書き忘れた。 大げさに考えすぎて細かい運用ルールで固めすぎないことも大事。
Access使ってる=零細使用なんだから、大それた管理なんて考えもしないでしょ 運用して、痛い目にあって、学習するプロセスも被害がそんなにでかくないから
>>714 おま、それは正論だけどな、厳しすぎwww
実際そこまでの考えを持って仕事できるか?
会社のコンセンサスが必要だし経営者の認識も甘いし、結構ずれている
まあ、あえて合わせてないんだろが・・・
リスクマネジメントが出来てる会社なんて大手でもなかなか無いがな
一人リスクマネジメントごっこならできるかもしれんがな
俺の周りでも、その意識を持って仕事をしている人間なんて限られてくるし
実際思うようには行かないもんだ。だから思考停止している奴もちらほらいる
>>717 の言うとおり内容からもシビアな要求でないし
もしそれがミッションクリティカルなシステムなら
任せている会社も、それをこなす人員も、たかが知れてるって話だろ
Aテーブルのデータを、Bテーブルにある内容を元にレコードの削除を行いたいです。 参照対象は、商品IDが共通するものを削除したいです。 どのようなクエリ操作を行えばよいでしょうか? 環境:2010
>>719 >Aテーブルのデータを、Bテーブルにある内容を元にレコードの削除を行いたいです。
Aテーブルのレコードを消したいのか、Bテーブルのレコードを消したいのか、両方のテーブルのレコードを消したいのかが読み取れない。
>どのようなクエリ操作を行えばよいでしょうか?
削除クエリ。だが、上記の通りどっちのテーブルを消すのかが不明なので、間違って意図しない方を削除しないように、サンプルsqlは提示しません
>>714 言葉はきついが間違ったことは言ってないな
天災対策はさすがに小規模な会社では不要でしょ。会社ごと潰れるからw
BCPなんて言葉始めて聞きました!
>>720 すいません。
Bテーブルは削除対象リストです。
なので、削除の対象になるのはAテーブルのレコードです。
めんどくさいからSQLで書く 動かないかもしれないが、そのときは適当にいじってくれ SQLなら2種類 INを使うか、EXISTSを使うかだ DELETE FROM Aテーブル WHERE 商品ID IN (SELECT 商品ID FROM Bテーブル); DELETE FROM Aテーブル WHERE EXISTS (SELECT 'X' FROM Bテーブル WHERE Bテーブル.商品ID= Aテーブル.商品ID); デザインビューで見たあとSQL変わるだろうが気にするな どちらのSQLがいいかは、宿題にしようか
テーブルAに対し、Bテーブルの内容をインポートしたいです。 テーブルA:名前、住所、・・・(かなりの項目数が続く) テーブルB:名前、住所 テーブルBは名前、住所が完全に入ったもので、テーブルAは住所が抜けてたり不正確です。 名前は両方とも正しいので、名前が一致する場合テーブルAにテーブルBの住所を入れ込む感じです。
>>725 updateをやって次にinnsertするのがわかりやすい
updateは簡単だよな。insertは
>>724 を応用してやってくれ
727 :
名無しさん@そうだ選挙にいこう :2011/08/25(木) 10:45:34.36
ACCESS2003 帳票フォームで、縦スクロールの位置を レコード単位ではなく、スクロール量単位で指定できないでしょうか? やりたい事は、帳票フォームのレコードソースを切替して使用 レコードソース切替前に 現在の縦位置のスクロール量を取得 切替後に、取得したスクロール位置まで復帰という感じです Bookmarkを利用すればレコード単位の位置復帰はできるのですが、 これだと復帰時にレコードがフォームの一番上にきてしまい、切替前と 画面表示が変わってしまいます。 スクロール量の単位で移動が出来れば完全に切替前の状態で復帰できると思うのですが
2010で、複数のフォームにある複数のコントロールの日付選択カレンダー機能を、 一括で無効にすることは可能でしょうか? カレンダーコントロール廃止に伴い自作カレンダーフォームを使用するので、この機能が必要ないのです。 やっぱりVBAでプロパティを変えるループ処理を書くしかないですかね?
>>728 コントロールを複数選択してプロパティ変更すれば一発ですけど
>>727 フォームのレコードソースを切り替えるんじゃなくてフォーム自体をコピーして
新しいフォームのレコードソースにに切り替え対象を当てるというのはどうですか
>>728 ちょっと読み違えました。フォームに複数コントロールがあって、じゃなくて、
複数フォームにあるコントロールを一括して変更ということですか
複数フォームに渉ってコントロールを選択することはできるけれど、
変更されるのは一番上のフォームだけですね。
VBAでやるしかないかな
テキストボックス既定のプロパティを変えておけば、今後は悩まなくて済む。
732 :
名無しさん@そうだ選挙にいこう :2011/08/25(木) 15:30:03.62
>>729 それだと切り替える前のデータの位置が分からくなってしまわないでしょうか?
スクロール位置は動くことなく、Repaintしたときのように
データの表示内容だけが切り替わって欲しいのですが・・・
>>727 > 現在の縦位置のスクロール量を取得
これが無理
>>732 切り替えるのじゃなくて、元のフォームは開いたままにしておいて、新しくフォームを開く
>>729-730 ありがとうございます。
VBAで挑戦してみます。
>>731 既定のプロパティはどうすれば設定出来るのでしょうか?
詳しく教えていただけますか。
737 :
731 :2011/08/26(金) 15:59:53.24
>>735 コントロール既定のプロパティ設定には2つの方法があって
配置済みコントロールをひな形とする場合は、配置済みコントロールを選択した状態で[コントロールの既定値として設定]
もしくは、
コントロールギャラリーでコントロールを選択した状態でプロパティウィンドウで設定
736の張ってるリンクの通りだな。
日付選択カレンダーの表示プロパティを[なし]にしておくってことだ
> 2011/08/25 > 要はSP1でコンパイル済みとするとRTMでは動きませんよということ。 > RTMでコンパイル済みととした場合、64bitSP1では動きません。ということか? RTMでコンパイル済みとするのは どうやんの?
Access2010 For Each で一群のコントロールを非表示にして、後でまた表示にすると対象コントロールの背景色が消えてしまう
Office Home and Business 2010とAccess 2007を同居させてる人いる? Office 2010 sp1を当てた後(たぶん)からAccessでaccdbが開けなくなってしまった。 OSはWin7 64bit、officeは32bit。 とりあえずAccess2010手配したけど何か回避方法あったら教えてください。
>>738 たぶん、RTMの意味間違えてる、最初期版の意味
access2010は何台までPCにインストールできますか?
rtmって最終製品版じゃないのか?
じゃ、まだ出てないのか…2年後? この項目の説明は、Office 14 の最終リリースに表示されます。
てすてす
747 :
名無しさん@そうだ選挙にいこう :2011/08/31(水) 09:41:11.95
レポートについてですが、特定のフィールドで任意の値を入れる、またはマクロで差し込んで処理を させてレポート出力したいのですが、何の機能で実現できるのかアドバイス頂けませんでしょうか おおまかな動きとしては、 支店名と売り上げが書いてあるテーブルで、 レポート開く→支店名を入力→指定した支店の売り上げレポートが出力される ここまではできております。あとは、その支店名をマクロで差し込んでレポート出力→支店毎にpdf化を実現したのですが
クエリに 支店名: [支店名を入力] といったフィールドを作成しておいて、これをテキストボックスの コントロールソースとする。
バックアップデータの分割方法についてご教示ください。 【 システム環境 】 WindowsXP, Access2003 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可 作業履歴テーブルに存在するレコードを作業履歴保存ボタンを押すことにより、 日付をもとに年度ごとに「作業履歴(2010年度)テーブル」、「作業履歴(2011年度)テーブル」に 振り分け、その後作業履歴テーブルの中身は削除、といった動きを行いたいです。 (各テーブルは同じDB内に存在します。) また、今年度以降の「作業履歴(xxxx年度)テーブル」は存在していません。 そのため、作業履歴テーブルの日付が新年度になった場合は新規に「作業履歴(xxxx年度)テーブル」を作成し、 そこに新しくレコードのバックアップをとっていきたいです。 ボタンクリック時のイベントプロシージャ内にどのような記述をすれば良いでしょうか。
750 :
749 :2011/08/31(水) 23:30:23.86
>>749 イメージ図です。
●ボタン押下前
・作業履歴テーブル(T_sagyou)
日付 作業内容
2010/12/25 aaa
2011/5/5 bbb
2011/8/31 ccc
2012/4/1 ddd
●ボタン押下後
・作業履歴テーブル(T_sagyou)
日付 作業内容
・作業履歴(2010年度)テーブル(T_sagyou_2010)
日付 作業内容
2010/12/25 aaa
・作業履歴(2011年度)テーブル(T_sagyou_2011)
日付 作業内容
2011/5/5 bbb
2011/8/31 ccc
・作業履歴(2012年度)テーブル(T_sagyou_2012)←新規作成
日付 作業内容
2012/4/1 ddd
年度の区切りが単純に年のようなので。(3月/4月区切りじゃないよね?) 作業履歴テーブルから年度を抽出して、 --- SELECT Format([日付],"yyyy") AS 式1 FROM T_sagyou GROUP BY Format([日付],"yyyy"); --- このクエリ結果をもとに、年度ごとに追加クエリ→削除クエリでfor文で回せばよい。 ただし、追加クエリは移動先のテーブルがないとT_sagyouに残る(T_sagyou_2012)ので、 残ったものはテーブル作成クエリでやればいいんじゃない? 追加クエリの例 INSERT INTO T_sagyou_hoge ( 日付, 作業内容 ) SELECT T_sagyou.日付, T_sagyou.作業内容 FROM T_sagyou WHERE (((Format([日付],"yyyy"))=hoge)); 削除クエリの例 DELETE T_sagyou.日付, T_sagyou.作業内容, Format([日付],"yyyy") AS hoge FROM T_sagyou WHERE (((Format([日付],"yyyy"))=hoge)); テーブル作成クエリの例 SELECT T_sagyou.日付, T_sagyou.作業内容 INTO T_sagyou_hoge FROM T_sagyou WHERE (((Format([日付],"yyyy"))=hoge)); →このあと削除クエリ --- 先にテーブルがあるかどうか調べて作ってから、追加クエリ→削除クエリでも回したほうがキレイかもね。
752 :
749 :2011/09/01(木) 11:29:48.83
>>751 早速のご回答ありがとうございます。とても助かります。
今外出先なのですが、戻り次第動きを試します。
>年度の区切りが単純に年のようなので。(3月/4月区切りじゃないよね?)
↑こちら、説明が分かりづらく申し訳ございません。
年度は3月/4月区切りです。
応用したら出来る、、と信じてコードをいじってみます!
>>752 751のは年だけ見て抽出してる
3月・4月区切りだと全然違ってくるぞ
>>749 の例がどっちともつかない、つまり悪例すぎるからだな
753だが途中で送信してしまいました T_sagyouが何が入っているかわからない以上、 t_sagyouの年を最小値を得て、そこから1年ずつforでカウントアップして 「>年/3」で都度抽出しないといけないですね
勤務時間って何型でどんなふうにDB格納するのが良いんだろ。 24時間をオーバーした時の処理とか、難しいな。
>>755 うちでは
日付/時刻 の 標準2011/09/01 23:00:00
のような形式にしてます
実際の運用ではICカードでドアのログを読み取ってるので、ユーザーがデータベースに入力することはないのですが、
外出時など例外的に修正することもあるので、修正フォームを作っています。
フォームからユーザーに入力させるのは以下の項目。
・日付(カレンダーから選ばせるので入力はない)
・出勤時間(入力すると日付が補完されてテーブルへ)
・退勤時間(入力すると日付が補完されてテーブルへ)
・休憩時間(勤務時間に応じて自動入力だが、ユーザーが修正することも)
夜勤とか積算時間に対応できないやん
>>755 Accessには時間型ってないからな、桐にすれば解決ってのは置いといて
時間間隔をデータとして持ちたいなら、分単位の計算必要なら分で、秒単位の計算必要なら秒で格納すれば良いんでない?
俺はそうしてる。 DBに計算させた方が良いのか、PGでやるのが良いのかは悩みどころ。
なんで積算時間に対応できないの? クエリ組めばいいのに テーブルに持たせる意味ない
桐ってAccessが1万ちょっとで買える時代なのに高杉
計算すればわかるものを実態としてデータ持たせるとか昭和かよ
開始日時と終了日時をテーブルに持てば計算して出せるから、時間間隔をテーブルに持つのは宗教上の理由で出来ない ってのはバカバカしい考え Accessがどんな宗教に属してる訳でもなく、個々の実務上で有用で便利な使い方をすれば良い
766 :
名無しさん@そうだ選挙にいこう :2011/09/01(木) 23:52:00.36
>>764 おまえ爺さんだろ。
古式ゆかしい。つーか古杉。
みんな自分が最強だと思っている件
Accessスレで桐がどうこうと話を出すから宗教論争になるんだよ Accessスレなのにデータベースを語るなかれ あwwwくwwwせwwwすwww
よーし、パパは累計もテーブルに書きこんじゃってるんだぞー 表形式フォームでグリグリスクロールしながら使う場合は、その方がスムースで良いんだぞー
770 :
名無しさん@そうだ選挙にいこう :2011/09/01(木) 23:58:28.28
2010ではテーブルに計算値フォールドまであるしな。
みんな正規化ってしてますか?
DBの話と型の話は切っても切れないと思うが 累計データを持たせないてのは、MDBでしか開発したことないから?
このスレは正規化卒業して、実務に合わせて故意に正規化崩してるレベルが多いんじぇね
とてもそうは見えないが
建物の高さデータが必要なデータベースなら、建物の高さを格納すれば良いんじゃね 1F地面の海抜 と 屋上頂上の海抜 に分けて格納する必要ないだろ
出勤時間と退勤時間の他に累計をテーブルに持たせるって データベースの使い方を知らない人が、実務レベルではとか逝っちゃってるんでしょ
出退勤を管理するだけのシステムしか作ったことが無いから それ以上のことはわからないんだろう。
俺流データベース教の教義はいいから 皆そういう宗教論争知ったうえでAccessを有用に使ってるし
>>778 他のシステムで使うからに決まってるだろ能無し。
今時勤怠管理システムをAccessで作ってるとか、どこの零細だよって感じだわ
782 :
名無しさん@そうだ選挙にいこう :2011/09/02(金) 00:22:55.70
俺流教義は定説です。説明はできませんが不要です。定説です。それに反するものには説明を求めます。
>>780 他ってなんだよ。お前は開発したことねーんだろ?
妄想乙
パパは表形式でスムースにスクロールしながら使うために累計書き込んでるんだぞー
教義に反するからダメと言われても困るぞー
なんでダメなん?
>>778 説明してほしいぞー
バカ発見器
786 :
名無しさん@そうだ選挙にいこう :2011/09/02(金) 00:48:45.86
君たち、MySQLはUPDATE文にORDERBYを使えるからテーブルに累計を書き込むのが簡単に出来るんだよ。 Access卒業してMySQLにおいでよ。
787 :
名無しさん@そうだ選挙にいこう :2011/09/02(金) 00:51:05.46
俺流教義は定説です。説明は出来ませんが定説です。
いつから宗教板になってるんだw
あなたはERMasterを信じますか?
790 :
名無しさん@そうだ選挙にいこう :2011/09/03(土) 06:48:51.78
宗教であれば個人の選択の自由ということになるが、 「データテーブルなんか持たせない!毎回計算するのだ!」 とする根拠が全く説明できないバカ。
791 :
名無しさん@そうだ選挙にいこう :2011/09/03(土) 08:32:51.72
教義は定説です。説明は出来ませんが定説です。教義に反するものには説明を求めます。
すみません、ちょっと教えてください。 【 システム環境 】 WindowsXp, Access2003 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可 フォームに配置したコントロールそのものをオブジェクト変数に代入し、 コントロールを直接操作したいのですが、どうもうまくいきません。 たとえば、テキストボックスの場合は Dim myTxtBox as TextBox Set myTxtBox = Me!txtHoge --標準モジュールのプロシージャにmyTxtBoxを渡す-- という方法で出来たのですが、チェックボックスの場合にうまく渡せません。 (as TextBox を as CheckBoxに変えてみましたが、なぜか値が渡される。) どのようにすれば良いでしょうか? また、出来れば標準モジュール内で最初からコントロールそのものをオブジェクト変数に 代入して操作したいのですが、標準モジュールに以下のように指定したところ、 Set myTxtBox=forms("Uga")!txtHoge 値が代入されてしまい、オブジェクトが代入されませんでした。 どのようにすればよいでしょうか?
>>792 > Set myTxtBox=forms("Uga")!txtHoge
この後に下記の一行入れて
Debug.Print myTxtBox.Name
で何が返ってくる?
794 :
名無しさん@そうだ選挙にいこう :2011/09/03(土) 17:49:59.97
テーブルに計算値持つのは今風でしょうよ。 正規化とか、そんな時代もありましたねって感じですね。 Web対応したときに困らないテーブル構成に、最初からしといた方が良いですね。
おじさん古い人間だから第5正規化までしないと気が済まないんだぞ〜
796 :
名無しさん@そうだ選挙にいこう :2011/09/03(土) 20:11:07.20
2000のmdb形式を2007のaccdb形式にしてランタイムで使うと「メモリ不足です。」とかいってデータが保存されね場合がある。 ググってもよくわかんないし、めんどくさいからmdbに戻すことにした。
797 :
名無しさん@そうだ選挙にいこう :2011/09/03(土) 20:55:39.82
しょぼいWebアプリばかり作ってて、業務アプリの経験がないんだろう PHP+MySQLに多いが、Accessにも多いんだなそういうの
798 :
792 :2011/09/03(土) 21:30:09.99
>793 すみません、自宅のパソコンで試したら問題なく動きました。
データ量に関係なくテーブルで計算させんの? 一定期間で締めてサマリを別テーブルにもっていくこともしないのか。 俺様理論譲らない人って柔軟に考えられないけど、 毎回似たようなものしか作ってないのかね。
[Access2003]VBAからテーブル上の十進型のフィールドの「小数点以下保持桁数」を取得する方法はありますか? やりたいことは、テーブルをExportする場合に、 「十進型なら、小数点以下保持桁数分、かならず出力したい」 ということです。 たとえば、小数点以下保持桁数3の場合、 ×12.3 ○12.300 このようにExportしたいのです。
★上からつづき★ そのため、単純にExport機能を使用するのはあきらめ、ファイルに出力するロジックを独自に実装しようとしています。 ※もし上記書式で簡単に出力する方法があれば、それでもよいのですが。。。 事前にフィールドの情報を得ていればよいのですが、汎用的に処理するため、 CurrentDb.TableDefs(i).Fields(j).Properties(k) あたりを調べて桁数を取得し、その情報をもとに書式を設定しようとしているのですが、肝心の「小数点以下保持桁数」を取得する方法がよくわかりません。 詳しいひとご教授いただけますでしょうか? よろしくお願いします。
>>801 別途、intする。
すると、小数点以下が削られた状態で出力されるので、その桁数を求める
元々の桁数から、整数だけの桁数引いたら小数点以下部分の桁数が求められるんじゃないかな
>>803 実レコードからでなく、テーブル定義を参照したいのです。
実レコードを使ってしまうと、たとえば精度=5桁、小数点以下保持桁数=3桁のフィールドがあったとして、
12.345
→ int(12.345) = 12
→ 2桁
→ 精度5桁 − 2桁 = 小数点以下保持桁数3桁
2.345
→ int(2.345) = 2
→ 1桁
→ 精度5桁 − 1桁 = 小数点以下保持桁数4桁
のように、誤った小数点以下保持桁数を算出してしまうと思います。
>>804 知恵袋の奴か。
回答しようかと色々試したんだが、分からなかった。
「小数点以下表示桁数」なら取得できたんで、ここに
同じ値を入れておくという運用なら、可能かもしれん。
Xp ACCESS2003です。 フォームの「更新前処理」にVBAで処理をしています。 フィールドA<>0 AND isnull(フィールドB) の条件の時に 「フィールドBが見入力です」の表示を出して、これにOKすると フィールドBにカーソル移動します。 ここまでは出来ているのですが、この後レコードは自動で更新してしまいます。 この条件でフィールドBにカーソル移動した後に自動で更新しないように方法はありますか? 「更新前処理」のイベントのVBAである以上はそこを制御することはできないのでしょうか? よろしくお願い致します。
>>806 > フィールドA<>0 AND isnull(フィールドB) の条件の時に
下記の一行加えてみて
Cancel = True
>>807 うまくいきまいした。ありがとうございます。
(凄い速さで回答を頂いていたのに、返事が遅れてすみません。)
オタクがキモがられるの文化的技術的貢献度の低さと思考の中心がその分野になってることじゃないか どの分野でも「専門家」と呼ばれる人の知識や熱意だけみればオタクと呼ばれるレベルだがオタクとは呼ばれない それは人類の文化的もしくは技術的面で大きく貢献しているから NASAの人が星オタと呼ばれないのは人類の文化的発展に大きく貢献しているから アニオタは他人(アニメ作者)の妄想に関する知識を深化させてるだけでキモい 茶道の家元が茶オタと呼ばれないのは日本の文化的(ry パソオタがキモがられるのも他人が作った規格に関する(ry わかったらさっさとパソコンを組み立てる作業に戻れ
(爆)って何年かぶりにみたな
いつもお世話になります。 Xp ACCESS2003です。 フォーム上で入力はしたけど、また更新(保存)していないデータがあることを 検知する方法はありますか? 今、表示しているデータを利用して別のデータを生成して、他のテーブルに書きこむマクロ を動かしているのですが、そのマクロの先頭で、入力したが未保存であるデータを検知したら 警告を出したいのです。
いつもお世話になります。 Xp ACCESS2003です。 売上の明細データから [年][月][売上区分][売上金額(合計)] まで集計した集計クエリがあります。 年度指定で表示する売上の集計表を 作りたいのですが、 例えば2011年と指定すると 2011年度 1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月 売上区分A 本年売上 昨年売上 売上区分B 本年売上 昨年売上 ・ ・ というフォーマットの売上集計表を作りたいのです。 最初の集計クエリからのデータの選択と 配置だけの様な気がしますが、うまくいきません。 最終表用のテーブルを作って何か関数で(〇〇年は入力値で) 「〇〇年の1月の売上区分Aの売上金額を表示するフィールド」 というようなものは作れるのでしょうか? それよりもっといい方法はあるでしょうか? よろしくお願い致します。
レポート
>>816 ですが、
最初の集計クエリをさらに下の様なクロス集計にして
月1,2,3,4,5,6,7,8,9,10,11,12
区分
年(降順)
年の条件を2011年または2010にしたら
似たようなクエリができたので
これをレポートにすれば出来そうな雰囲気です。
年指定のところは何とかしないといけませんが。
それともクロス集計をかませないで
1発でレポートで行う方法があるのでしょうか?
こちらも考えてみます。
>>818 方法はあるが、君が今の段階でなんとかなるって言うならだれも協力しないだろうな
自己満にすぎないから
>>819 すみません。顔を洗って出直してきます。
821 :
名無しさん@そうだ選挙にいこう :2011/09/06(火) 21:38:00.01
【 システム環境 】 WindowsXP, Access2003 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 access 引数が無効です テーブルから条件に合った明細を抽出して新しいテーブルを作成しようとしています。 「引数が無効です」と出てしまうので検索しましたところ、 mdbファイルのサイズがどんどん肥大化して容量オーバーになるのが原因だと読みました。 この「容量オーバー」というのはパソコンの性能とは無関係に上限値が決まっているのでしょうか。 それとも自分の今使っているパソコンが貧困なだけで、もっと良いパソコンで同じ作業を行うと エラーが出ずにテーブル作成できたりしますでしょうか…
>>821 > この「容量オーバー」というのは
どの容量オーバーですか?
テーブルが作成できなくて困ってるのではないのですか?
> テーブルから条件に合った明細を抽出して新しいテーブルを作成しようとしています。
> 「引数が無効です」と出てしまう
どのように作成しようとしているのですか?
質問の意味を質問しなくて済むように書いてね
825 :
名無しさん@そうだ選挙にいこう :2011/09/07(水) 16:02:28.55
【 システム環境 】 WindowsXP, Access2003 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 フォーム 繰り返し テーブルのでーたが 1-1 A あいうえお 1-1 B かきくけこ 1-1 C さしすせそ 1-1 D たちつてと 1-2 E なにぬねの 1-2 F はひふへほ … となっているデータをフォームで表示する際に 同じ項目を1つにまとめて項目名のように表示したいのですが 可能でしょうか? (excelだと、一番左の列を同項目ごとに セル結合する感じです) 見出しをテキストボックスにして、 その内容をサブフォームに渡したら 出来そうかと思ったのですが上手く表現できません。 どなたかよろしくお願いします。
先生、日本語が通じません 実現したい結果を書いてください
ここやアホー知恵遅れ、AccessClubとか良く見てるけど、 現状や望む結果を正確に伝えられない奴に、Accessが 使えるわけねぇだろといつも思う。
____ / \ / ⌒ ⌒ \ とんこつ / (●) (●) \ | 、" ゙)(__人__)" ) ___________ \ 。` ⌒゚:j´ ,/ j゙~~| | | | __/ \ |__| | | | | | / , \n|| | | | | | / / r. ( こ) | | | | | | ⌒ ーnnn |\ (⊆ソ .|_|___________|  ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二 _|_|__|_
今つないでるDB名とかやってる内容とか進行状況とかをフォーム上に表示させたいんですが(単なるはったり) プログラム中の適当なところにdebug.printいれてコンソールっぽく出力できるといいんだけど。 どうすればいいでしょうか?
Accessの動作を停止しました みたいなの何なの? せっかく作ったのにデザインで開こうとしても落ちる
>>829 進行状況ってさ、どこから始まってどこで終わるの?
接続DB名は簡単に取得できるが、内容ってなんだよ。誰が決めるの?
833 :
829 :2011/09/10(土) 21:03:07.39
>>832 すいません。進行状況ってほどじゃなくて、「今DBに繋ぎましたよ」とか「データのコピーが終わりましたよ」とか
「しばらくバックアップしてないけど大丈夫かよ」とか「今月はデータ登録数がやけに多いですね」とか
メッセージボックス出すほどでもない情報を適宜選んで流したいんです。
今まではテキストボックスを上下に並べて配列化してメッセージが増えるたびに各段をずらしたり消したり
めんどくさいことやってたんで。
>>832 小さなフォームをポップアップで表示。処理終了直前にcloseでいいんじゃね。
836 :
名無しさん@そうだ選挙にいこう :2011/09/11(日) 21:43:47.38
桐V9-2012 キターーーーーーーーーーーー!!
毎日データため込んで月に1度、1万件くらいのデータを集計するだけの使用。 97で作ってXPになった時にリニューアル。端末は2台、せいぜい3台。 業務拡張で処理件数見込みが2倍、テーブルを改造する必要もあって この際だからMySQLに移行しようとDAOをADOに切り替えたり日本語名の テーブル名もろもろをローマ字に書き直したり新機能付け加えたり。 10日で全体の三分の一くらいまできたけどだんだん気が萎えてきた。 もしかしてこの程度の規模だったらmdbにDAOで十分かな、やっぱり、、、
四角形のオブジェクト名教えて 単なるBoxだと思ってたら違うっぽい
>>837 そもそも、ADOにする理由がない。
MSはDAOを推奨しているし、MySQLへは、MySQL Migration ToolkitでMDBをそのまま
移植できるし。
AcControlType でいうところの、acRectangle
842 :
名無しさん@そうだ選挙にいこう :2011/09/12(月) 20:41:30.07
【 システム環境 】 WindowsXPor7, Access まだ持ってません 【 VBAが使えるか 】 はい(若干) 【 VBAでの回答 】 必要ないと思います 【 検索キーワード 】 なんて検索していいかわかりません。 Accessを全く知らない初心者です やりたい事があってこんな事をAccessでできるか教えて下さい(Google等で調べましたが分かりませんでした) 仕事で毎日チェックシートを何種類も何枚も使用しています (製造する製品によって違う) 製品を番号で指定して、あらかじめ登録してあるチェックシートの呼び出し 仕事中にチェックをして、保存 そのチェックや入力した数値を抽出する チェックシートも呼び出して確認する この様な事なのですが、Accessで可能でしょうか? またはどんな事を学べば可能でしょうか?
製品分のテーブルとカードフォームがあれば良いんでしょ
>>843 早速の返信ありがとうございます
>普通にExcel使える人なら、ヘルプ見ながらで可能な範囲
確かにExcelでも可能ですが、チェックシートへの入力をタブレットPCでと考えているため(現場で行う為)
なるべく作業を最小限に済ませたいと考えています
製品毎のエクセルブックを作成して、その日作る分をコピー、名前の変更等せずに行いたい為
Accessと考えてましたが、Accessをそれに使うにはオーバースペックでしょうか?
後、Accessで作成したデータベースに入力するにはやはりAccessが必要ですか?
>普通にExcel使える人なら、ヘルプ見ながらで可能な範囲 ↓ 普通にExcel使える人なら、AccessでAccessのヘルプ見ながらで可能な範囲 > Accessと考えてましたが、Accessをそれに使うにはオーバースペックでしょうか? *Accessは安いから、そういうこと考えないでAccessで良いんじゃない > 後、Accessで作成したデータベースに入力するにはやはりAccessが必要ですか? Window標準のACE形式のaccdbファイルになるから無くても可能だけど Accessないとメンドクサイ *Accessは安いから、そういうこと考えないでAccessで良いんじゃない
意味が違ったかな? > 後、Accessで作成したデータベースに入力するにはやはりAccessが必要ですか? 無料のランタイムがあるから、開発用にAccess1つ買えば、実行用は無料
具体例がないのに、どう説明しろというんだ
Accessで神経すり減らし、精神的に参りました。 二度と関わりたくないです。 障害障害者手帳持ちのメンヘラの俺には適応性がありませんでした。
Accessが悪いんじゃないぞ。 Accessで開発させる会社やクライアントが悪いんだ。
俺も障害者手帳持ちのAccess使いだが、楽しーぞ。
access使いには障害者しかいねーのか、accessつかうと障害者になるのか
タブってあまり使わないよね ププ
>>848 いい時代になったよなぁ。
ランタイム無料配布可能になって非常にありがたい。
桐使ってる俺は勝ち組
すみません。初心者ですので、低レベルな質問だと思いますが、すみません。 名簿テーブルの「名前」フィールドにある文字をレポートで印刷する際に”様”を付けたいんですが、 レポートのほうで、=[名前] & "様" としても、印刷プレビューでみると#エラーになってしまいます。 グーグルで検索して、=[名前] & "様" とするといいみたいなことを発見したのですが、 うまくいきません・・・ どのようにすればいいのでしょうか?教えてください。
859 :
名無しさん@そうだ選挙にいこう :2011/09/13(火) 16:54:25.58
上げわすれました
860 :
858 :2011/09/13(火) 17:42:00.54
自己解決しました・・すみません。
循環参照か
済んだ話にいつまでこだわってんだ。 そんなに答えてヒーローになりたかったのかwwwww
最初から氏名欄に様を入れて入力しておけば悩む必要はないんだが。 実際、某毎糞ソフトのアドレス帳はそうしてる。
解決してると思うが、敬称欄というフィールドを別に設けたほうがいい 法人の場合は御中だったり、個人の場合は様だったりで使い分けるから
フォーム、サブフォーム間で集計関数Sum()が使えない。 ごく普通にサブフォームの「金額」の合計を=Sum([金額])でフォームに表示したいんだが出来ない。 Sumを外して=[金額]とすると個々のレコードの金額が表示されるから設定は間違ってないはす。 レコードソースはリンクテーブルへのSQL文。
>>866 sum関数をつかったテキストボックスを置く場所を間違えている。
横の合計ならクエリでやれば済む話だが、縦計を取るときには、詳細セクションの外のセクションに置かなければ
ならない。
メインフォームに表示したいのか?
いや、普通にサブフォームのフォームフッターに置いててメインフォームに出したいんだが。 昔はそれでちゃんと出来てたのがテーブル構造やSQLをいじったら出来なくなった。 その時はクエリがソースだったけど今は外部DBへSQLして set me.recordset=rs なんてややこしいことやってるからかな。
> =Sum([金額]) [金額] の部分はコントロール名じゃなく、レコードソースの目的フィールド名 になってる?
>>870 うん。
>Sumを外して=[金額]とすると個々のレコードの金額が表示される
から(レコードを動くごとにメインフォームの金額も更新される)
参照はうまく出来てると思うんだよね。
Sam
>>357 桐にしとけ、簡単だぞ、どころでなく普通に基本
874 :
名無しさん@そうだ選挙にいこう :2011/09/16(金) 01:19:12.51
【 システム環境 】 WindowsXP, Access2003 【 VBAが使えるか 】 はい(若干) 【 VBAでの回答 】 必要ないと思います 【 検索キーワード 】 なんて検索していいかわかりません。 次のような「送ってはいけない地域リスト」があります。(東京都、千葉県、神奈川県には送ってはならない。埼玉県は川口市と所沢市のみ送ってはならない) 埼玉県 川口市 埼玉県 所沢市 東京都 千葉県 神奈川県 次のようなデータの場合 埼玉県 秩父市 ○○○ 埼玉県 さいたま市 ○○○ 東京都 八王子市 ○○○ 埼玉県 所沢市 ○○○ 東京都 杉並区 ○○○ 千葉県 茂原市 ○○○ 神奈川県 横浜市 ○○○ 茨城県 取手市 ○○○ 「送って良いデータ」は次のような結果を出したいと思います。 埼玉県 秩父市 ○○○ 埼玉県 さいたま市 ○○○ 茨城県 取手市 ○○○ 現在、↓の手順で2つのクエリをドッキングしてやってますが、これを一度のクエリで出来ないものでしょうか? @東京都、千葉県、神奈川県にマッチングしなかったものをクエリで抽出。 A埼玉県の中で、川口市、所沢市にマッチングしなかったものをクエリで抽出。 B1と2をドッキング
>>874 住所のテーブル構成はどうなっているか、詳細希望
876 :
875 :2011/09/16(金) 05:20:29.66
>>874 補足です。
テーブルの詳細というかフィールド一覧が欲しい理由は、どういう区分でデータを保存してるか知りたいから。
たとえば、
>>874 記載の例だと、
青森県なんとか市xxx 東京都選挙管理委員会青森支部局
とかいう住所がもし存在したら、テキトーなクエリだと正確な抽出ができなくなる恐れがあるので、どういうテーブル設計か聞きたかったです
877 :
874 :2011/09/16(金) 11:15:05.14
>876 お答えありがとうございます。 以下のような形です。 都道府県、市郡、区町村以下の住所 埼玉県、さいたま市、大宮区◯◯5丁目◯番地◯◯マンション801 埼玉県、秩父郡、◯◯村◯◯◯マンション505 東京都、、品川区◯◯5丁目◯番地◯◯アパート202 東京都、、新宿区◯◯4丁目◯番地◯◯ビル705 東京都、立川市、◯◯3丁目◯番地◯号 神奈川県、横浜市、磯子区◯◯3丁目◯番地◯号◯◯ビル5階 神奈川県、鎌倉市、◯◯2丁目◯◯
ご意見くださいアクセス2010です リンクテーブルをレコードソースにしたフォームがあって、コードでフォームを開きます リンクテーブルの作成→フォームを開く→リンクテーブルの削除 要するにフォームを開く瞬間だけリンクテーブルが存在します フォームでデータの追加や編集が出来ます、リクエリも普通に出来ます 何か問題あると思いますか?
879 :
875 :2011/09/16(金) 18:54:10.45
>>878 共有した時にコケる可能性がある
そのデータたちはどこへいくんだ?
そのような設計にした背景を知りたい
880 :
878 :2011/09/16(金) 19:19:54.80
使用者にテーブルを絶対に絶対に絶対に見せないようにしたいため サーバー使わず原則スタンドアロンです
フォームを開いたタイミングでAccessのDB型のTempファイルを作って 大本から必要な部分だけを抜き取ってテーブルコピー、閉じるタイミングで Temp削除、のほうが簡単で安全な気がする。
それだと、フォームを開いた状態の時に、別のアクセス立ち上げてDAOで接続されてTempを弄られませんかね
え、そんなにAccessってダメなの? 内部統制的にAccess使って基幹系で開発するのはアウトになっちゃうじゃん。 上場企業向きじゃないな。
Accessで基幹系は間違ってるだろw
>>878 それ何か良さそう。一度リンク元テーブルとの接続が確立するとフォームから問題なく編集できますね。
AccessMVPのMukkuMukuさんの意見を聞きたいな
>>878
俺です。
>>878 がやりたいことは、テーブルへの操作を絶対にさせたくないということだよね。
残念だけど提示している内容ではそれはなしえないかな。
強制終了されることもあるのだから、抑制方法としてもちょっとどうかなと。
BEにパスワードがかかっていたとしても、フォームを開いているときリンクテーブルは存在しているのだから、
この状態で別プロセスのAccessを使ってFEからテーブルをインポートすることができるはず。
テーブルインポートいいつつも、リンクテーブルをインポートしてくるので結果的にはリンクテーブルが作成
できてしまうね。つーことで、テーブル触り放題となんじゃね?
俺さん、有難う リンクテーブル即消ししても存在してるってことね
お洒落なフォームが作りたいんですけど、なにか参考になるサイト教えて
>>889 ごめんごめん推敲しなかったので誤解を生んだかもしれない。
確かにリンクテーブルを削除した時点で外部からインポートしようということはできなくなるよ。
わずかな時間だけれども確実とは言えないよね。って感じで。
>>897 のの通りのこともありえそうだし
全体的にズッコケたときどうするべという気持ちで書き込んだ。
またまたごめんごめん。
>>897 じゃなくて
>>879 ね。
Private Sub Form_Open(Cancel As Integer)
Me.RecordSource = "select field1, field2 from table1 in BE.accdb"
End Sub
にすりゃいいだけの話だったね。
手軽にセキュリティ求めるなら桐にしとけってことだな。 セキュア桐ってのがあってだな、ファイル持ってかれてパスワード知られても開けない。
>>892 それだと、フォーム開いた直後に Me.RecordSource="" にすると
編集はおろか表示さえできないんじゃないの?
抽出したデータの件数だけフォーム上にチェックボックスを並べたいんだけど アクセスのVBAでコントロールを作成することってできます?
できます
>>896 d
自分で調べてやってみるけどヒントちょーだい。
コントロール名に数字を混ぜて変数や結合でいじって配列っぽく動かすのはできます。
作り方のってるページないかな。あるのはエクセルのばっかりで。
Application.CreateControl メソッド
>>894 あーそーだったね。ごめんごめん
だけどさ、BEには当然パスワードがあるだろうけど、
フォームを開いてリンクテーブルAppend/Deleteしても接続は維持されてるから、
パスワードを聞かれることなくリンクテーブル作れちゃうんじゃね?
となると結局のところBypasskeyなりUIの制御が必要になるんじゃないかな。
そーいえば、 テーブルイベントを使ってテーブル直接操作だけを読み取り専用にするってことは可能だ。 実装の実績はないけど。
永遠にセキュリティの穴を塞ぎ続けるWindowsと同じだな
仕様だからうまく付き合わないと徒労に終わる。
ACCESS2003、OSはXPです。 フォーム上に西暦で年を入力するテキストボックスを作ってあります。 (その年は計算で使っています。) このテキストボックスへの設定だけで、 例えば”11”と入力すると”2011”に自動で変換するようにする方法 はありますか?
>>904 更新後処理あたりで単純に2000を足したものを返せばいいんじゃないの。
1900年代はとか、2100年になったらとかいろいろな問題は出るが。
>>906 具体的に動やったらうまく行ったのかを書くと掲示板としての過去ログとしての効果があがるぞ
11と書いたら2011になるけど、2011と書いたら4011とならずに2011に補正されるところまで書いてほしい
>>907 こうしました。
Private Sub 年_AfterUpdate()
If Me!年 >= 1 And Me!年 <= 99 Then
Me!年 = 2000 + Me!年
End If
End Sub
1から99までの数字を入力すると入力補助が働いて2000がプラスされると
いる仕様です。
もし1999以下や2100以上の年を入力したい時は4ケタを入力してもらうという考えです。
(このシステムではその様な年を入れることはないんですが)
本当は1から50までが2000プラスで51から99までは1900とかした方が汎用性は
あると思いますが、今回は1999年以下の年を入力することはないシステムだったので
この様にシンプルにしました。
「Accessは動作を停止しました」って原因はなんでしょう? win7で2011にしてからやたらと出るけど、 自分のプログラムが悪いのかな?ググってもあまりヒットしないから そんなに頻繁に出る症状ではないのかな?
2011ってなんだよって。 SP1にしてからってことなら、デコンパイルしろい。 時間的余裕があるならSP1インストールしなおしてみろい。
>>908 ,909
BeforUpdate の方が良いんじゃね
重いプログラム走らせるとすぐに画面が白くなって(応答なし)って出るんだよね。 あきらめてタスクマネージャー呼んで強制終了させたくなるんだけど実は裏で健気に働き続けてるんだよな。 この(応答なし)ってなんとかならないもんなのかねえ、無駄に殺されたアクセス君数知れずなんじゃね?
あ、これエクセルのVBAからの時だった
チラ裏連投スマン 100個近いMDBファイルに分かれたテーブル(同じ構造;1テーブルあたり約1万件))を MySQL上のテーブルに全部繋ぎ合わせる作業、VBAでファイル名のリストから 繰り返し処理するようにしたけど絶望的に遅い。 Accdbのテーブルで繋ぐようにして、RAMディスクを作り全部のファイルをそこに置いたら 感動的に激速。マジお勧め。 HDDで1ファイル処理するのと同じくらいの速さで作業完了。 RamディスクはDATARAM社のフリーのものを使いました。 似たようなことをする人の参考のために。
>>912 試しに
Private Sub 年_BeforeUpdate(Cancel As Integer)
If Me!年 >= 1 And Me!年 <= 99 Then
Me!年 = 2000 + Me!年
End If
End Sub
にすると
”実行時エラー2115
「更新前処理プロティ又はこのフィールドの入力規則プロパティに設定したマクロ又は関数のために、このフィールドのデータを
保存できません。」”
がでます。
BeforeUpdateですと
設定したフィールド自身の代入には使えない??
2003ですか、追加クエリで別DBにテーブルを追加すると、ファイルサイズが増えてしまうのですが 400MBのDBから追加クエリすると、移転先のDBが2Gいったり・・・
>>917 それって、「データーベースの最適化/修復」を行うと減ります?
そうだとすると手動で任意の時に最適化するしかないのかな・・・
追加元の方を1回最適化すると以後OKにならないかな
>>916 BeforeUpdateの中では、値の代入は行えないよ。
ヘルプにも書いてあったと思う。
ACCESS2003です。 デザインビューでレポートなどを見ると、テキストボックスの枠の中はコントロールソース(=で始まる式)が表示されていますが これをテキストボックスの「名前」を表示するのに変更することはできますでしょうか? 今名前を設定中なのですが、テキストボックスが大量(500個以上)にあって、プロパティを開いて名前を確認するのが大変なのです。
できますん
使用期限が過ぎたアクセスと、アクセスのランタイムって 機能的には一緒でしょうか
>>925 >使用期限が過ぎたアクセス
この段階でこの質問には答えない
Mysty HeartBreak
答えられない奴が、答えない ってワロタ
>>923 連結で作ればイコールなんて入らなくて、コントロール名がコントロールソース名じゃなかったっけ。
どういう状況なのか今ひとつ理解できていないけど、逆に考えればいいんじゃないの。
コントロールソース名を取得して、それをコントロール名(今回の場合はテキストボックス名)にするとか。
フォームではコントロール名変更を自動化したことはあるけど、レポートはできたっけかなぁ。
>>929 そう言われるとレポート特殊なのかもしれません。レコードソースの指定がなくて、
テキストボックスを作ってコントロールソースに
=DLookUp("金額","[新集計表テーブル]","[集計キー]=" & Forms!集計表画面!今年 & "041100")
の様な式を書いてあります。(最初にフォーム「集計表画面」の今年に作表年を入力します。)
テキストボックスには自動で名前が付くのですが、後からそれを分かりやすいように
”A店A部門今年1月計”の様な名前を付けていっています。
他のテキストボックスで半期計や通年計にも使いますので分かりやすい、ルールに従った
名前にしようとしています。(このレポートは今、作成途中です。)
A店A部門今年4月計 A店A部門今年5月計・・・
A店A部門前年4月計 ・
A店A部門昨年同月比 ・
A店A部門今年累積
A店B部門今年4月計 ・
A店B部門前年4月計
A店B部門昨年同月比
A店B部門今年累積
A店今年4月合計
A店前年4月合計
A店昨年同月比
A店今年累積
店は3つ、部門はそれぞれ2つの固定です。
という状況です。
>>930 >=DLookUp("金額","[新集計表テーブル]","[集計キー]=" & Forms!集計表画面!今年 & "041100")
これの最後にある"041100"ってなに? 店舗コード?
>>931 すいません。
左から
04 が4月
1 が店舗コード
100 が売上区分という意味で
新集計表テーブルは月別、店舗コード別、売上区分別に
金額集計が済んでいるテーブルです。
フィールドは「集計キー」と「金額」です。
A店A部門今年4月計のコントロールソースに
=DLookUp("金額","[新集計表テーブル]","[集計キー]=" & Forms!集計表画面!今年 & "041100")
が入っていて、04(4月)1(A店)100(A部門)の金額を拾ってきます。
(説明が前後しますが「金額」とは売上明細データから集計した売上金額です。)
>>932 訂正:新集計表テーブルは年別、月別、店舗コード別、売上区分別に
金額集計が済んでいるテーブルです。
フィールドは「集計キー」と「金額」です。
>>932 つうことは、この数字をコントロールソースから拾えば
テキスボックスの名前修正は自動化できるって言う話しじゃないか。
>>934 あーそうですね
ありがとうございます。
ちょっとやってみます。
(私だとすぐ作れないと思いますが)
良く考えたら名前をそのまま「041100」とかでも
いいですね。
>>935 別に意地悪をしたかったわけじゃないからね。
手作業だと大変そうだから、自動化できないか考えていただけだから。
で、自動化するということは規則性を探さなくてはいけないわけで──ということなんだよ。
>>936 ありがとうございます。
(意地悪とは思ってませんのでw)
938 :
925 :2011/09/25(日) 23:52:10.39
試用版って期限がきて機能限定モードになるけど ビューアとして使えるって認識なんだけどまずい?
>>938 それでOK、MSが表明している通り期限切れたら作成と保存が出来なくなります。
苦節10年、やっとユーザーにテーブル見せない方法を開発した 世界中ググっても書いてないアクセスのDarkSide 組み込み右クリックもコピー出来たし やっと桐からオサラバ出来る 長かったよ(-_-;)
アンドキュメンテッドアトリビュートあるの知らないの?
10年で成果がそれなのか。苦労してるんだな。
日記乙
レコードセットRsでRs.update したばかりのレコードにつけられたオートナンバーフィールドを知りたい時って rs.update rs.requery rs.movelast でいいんですかね? データ入れるのはこの端末だけで他からはデータが来ないと前提。
updateした段階で仮定されているはずだから rs.update rs.オートナンバーフィールドで参照できるはず。
>>947 d
あれ、やっぱNULLが来ちゃう。ADOだからかな。
>>948 rs.Addnew
rs!どこかのフィールド
rs.Update
とかじゃないの。てっきりレコード追加処理かと思っていたけど。
あと仮定じゃなくて確定ね。
>941 クライアント側とサーバー側に分けて、 データ全てのやり取りをADOやDAOで処理すればテーブルを見せなくて 済むはずなんだが…。
951 :
941 :2011/09/30(金) 11:49:08.25
952 :
名無しさん@そうだ選挙にいこう :2011/09/30(金) 15:08:50.48
未だにAccess97を使用してるんですが、最近「式に未定義関数nzがあります」 と言うエラーが出るようになりました。 参照設定には参照不可になっているものはありません。修復すると直るのですが、 しばらくしたらまたなります。 もう諦めてnzを使わないように書き換えたのですが、今度は他の箇所で出るように なってしまいました。 これって原因と対策はなんでしょう?分かる方教えて下さい。
Access97のサポートは終了しました
>>952 ぜひ、Access2010へ乗り換えましょう。
>>952 同じ目にあって、結局面倒なことやってメッセージ消した記憶があります。
でもなんだっけ?どうしたかは、忘れちゃったよ。
丁寧に発生箇所を探していくのです。
97でも本格的な開発は可能です。実際やってたので。
フォームやプロシージャ間でのデータのやりとりが多いのでやたらとパブリック変数を使ってますが こういうやり方でいいんでしょうか?一応使う前には0や""を代入して混乱しないようにしてます。 フォームに不可視ボックスを置いてフォーム参照するやり方の方がいいのでしょうか? 主義の問題かもしれませんがどっちが主流なんでしょう。
変数使わずに直接参照できないのか?
どのフォームのどのボックスだとか直接記述すると長ったらしくて見づらいし そのうちどれがなんだったかわかんなくなってくるし。 かといっていちいちsetなんとかするのも面倒。 直感的にわかる名前の変数を使いまわす方が楽なのかな、と。
>>958 なんとなくすべての変数をパブリックにしているのならともかく、
明確な意図を持ってやっているのなら問題ないでしょ。
>>959 ども。
特にルール違反とか非常識ってわけじゃないんだね。
ACCESS2003です。 何かをした後からデザインビューの上と左側にあった目盛の様なバーが表示されなくなりました。 どのACCESSファイルを開いても同じなので、ACCESSのシステム自体の設定を変更してしまった のだと思います。 これはどこの設定を変更するれば直るでしょうか?
>>961 すみません自己解決しました。
「表示」の中の「ルーラー」のチェックのON/OFF
で表示、非表示になるのですね。
また日記か
964 :
952 :2011/10/03(月) 18:43:29.60
>>953-954 ありがとうございます。
乗り換えたいのは山々ですが、顧客から使えと言って渡されたのがAccess97のファイルなんです(;_;)
>>955 どこで問題が発生するのか順番に見ていくってことですね。
大変ですが、がんばってみます。ありがとうございました。
>>964 エラーメッセージで検索すると説明してくれているサイトいくつか出てくるんですが、、、。
>>965 見てみたのですが、大抵は参照不可のライブラリを参照しているため。
って話だったのです、、、
今回と同じような症状についてかいてあるサイトありましたら、是非教えてくださいm(__)m
968 :
952 :2011/10/06(木) 11:26:47.35
>>967 ありがとうございます。ODBC接続はしてないのです・・・
NZ関数も使わないように書き換えたのですが、今度は他のユーザ定義関数で、
エラーが出るようになってしまいました・・・
>>968 参照設定で切れているものがあるとか、DAOとADOの参照設定の順序がいつもと
違うとか、Nz関数とは関係ない部分に問題があるんだと思いますよ。
>>967 フィールド名とか関数名でヤバイ名前を使っているんじゃないの。
予約語とか全角英数で始まる名前とか。
というかコード晒せよ
>>971 コードで収拾がつくかな。
データはいらんが、ファイルうpぐらいしてもらわないと原因が特定できそうもなさそうだが。
973 :
941 :2011/10/06(木) 14:39:23.41
>>973 パスワードが正しくありませんってなってお話にならん状態
975 :
名無しさん@そうだ選挙にいこう :2011/10/06(木) 18:21:03.27
>>973 スゲー、今のところ突破できん。応談で売ってくれ。
2003で頼む
.accdr . accdr は、ランタイム モードでデータベースを開くことができるファイル拡張子です。 データベースのファイル名拡張子を .accdb から .accdr に変えるだけで、Access 2010 データベースの "ロック" バージョンを作成できます。 ファイル名拡張子を元の .accdb に戻すと、再びすべての機能を使用できるようになります。
仕入先テーブル ID 会社名 会社名 (フリガナ) 姓 姓 (フリガナ) 名 名 (フリガナ) 電子メール アドレス 部署会社 電話番号 自宅電話番号 携帯電話番号 FAX 番号 番地 市区町村 都道府県 郵便番号 国/地域 Web ページ 備考 添付ファイル
あらら
980 :
941 :2011/10/06(木) 23:12:53.14
>>978 見れたのテーブル構造だけ?
テーブルのデータも見れた?
次スレよろ
983 :
941 :2011/10/07(金) 19:03:56.47
Access達人の皆様、検証願います
ユーザーにテーブルを見せない方法チョッチ修正
(pathの操作が良く解らないのでディレクトリ固定、C:\DAT\ に置いて起動してください)
http://up1m.ko.gs/src/koups864.zip Q) テーブルに登録されている、金子由香里さんのメールアドレスは何でしょうか?
P.S.
次スレ立てておきます
984 :
名無しさん@そうだ選挙にいこう :2011/10/07(金) 19:06:26.54
mdbだと出来ないんです。ペコリ
リンクテーブルのConnectプロパティが ;C:\Dat\be.accdb てな感じな状態でしょ リンクテーブルが存在しているのだから、テーブル定義は推測できるってことだな。一致するかどうかは別として。 BEのパスワードを変更したときと同じ状態にあるような気がしないでもない リンクテーブルをレコードソースとするフォームを開いた状態の時、 要はBEにパスワード付で接続されている状態の時どうするんのって思うわ
991 :
941 :2011/10/08(土) 14:03:54.49
>>987 いまやったら作れませんでした
>>989 検証有難うございます
>>990 検証有難うございます
> 要はBEにパスワード付で接続されている状態の時
それが分割データベースの通常の運用だと思います
手間暇変わらずにNorthwindでも全く同じように動きます、共有でもOKです
突破したら、教えてくださいませ
992 :
名無しさん@そうだ選挙にいこう :2011/10/08(土) 15:06:02.50
確かにフロント幾つでも開ける不思議。
クエリーで八桁テキストを日付の書式設定でyyyy/mm/ddに変換するように、yyyy-mm-ddの形式に変換したいのですが、left関数やmid関数で組み立てる以外に有効な方法ありますでしょうか?
これフロントエンドをランタイムモードで開いても何もできないんだよな なんか、まったく意味がわからんのだが、、、、
>>993 Formatでもつかえばいいじゃねぇの
うめ
996 :
941 :2011/10/08(土) 16:35:45.55
>>994 OpenCurrentDatabaseを使ってテーブルを隠すことは可能ですけど、
その方法ですと、どうしてもランタイムでは使えないので不便なんです
で、今回の方法はランタイムでもちゃんと動きますよって事のサンプルです
勿論、ランタイムでなくてもOKです
omanko() 内の実行条件を AllowBypassKey = False に変えます
>>983 Dim Fname1 As String
Fname1 = CurrentProject.FullName & ".txt"
↑
例えば"D:\test2\sample.mdb"内に上のVBAコードを記述した場合、
変数Fname1の内容は"D:\test2\sample.mdb.txt"になる。
(Access2000〜2007の場合)
これを応用すればpathの問題は解決できないかな?
998 :
941 :2011/10/08(土) 17:53:55.83
>>997 配布やったことないので、Connectプロパティ書き換える方法が解りませんでした
未熟です
>>995 その書式設定方法が知りたいのです。
できればよろしくご指導ください。
>>999 式1:Format(フィールド名, "yyyy/mm/dd")
でいいと思うが、Verが2000で修正パッチを当てていないとバグる。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。