Access総合相談所 其の22
- 1 :名無しさん@そうだ選挙にいこう:2009/08/26(水) 23:39:38
- ACCESSに関する質問はこちらへ!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
・何がしたいのか
・どんな処理を試したか
・動作状況など駄目な理由
テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
範囲で詳しく書くと、早く回答が得られるかもしれません。
図解があれば尚良し。
聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
ギブアンドテイクで情報を共有しましょう。
- 2 :名無しさん@そうだ選挙にいこう:2009/08/26(水) 23:59:53
- ▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【 システム環境 . 】 Windows**, Access**
【 VBAが使えるか .】 はい・いいえ
【 VBAでの回答 】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
前スレ
Access総合相談所 其の21 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1240392946/
- 3 :名無しさん@そうだ選挙にいこう:2009/08/27(木) 00:00:24
- ACCESS2000総合相談所
http://pc.2ch.net/bsoft/kako/965/965614164.html
ACCESS総合相談所 その2
http://pc.2ch.net/bsoft/kako/1007/10079/1007987001.html
ACCESS総合相談所 その3
http://pc.2ch.net/bsoft/kako/1019/10190/1019087338.html
ACCESS総合相談所 その4
http://pc.2ch.net/bsoft/kako/1027/10274/1027491281.html
ACCESS総合相談所 その5
http://pc.2ch.net/bsoft/kako/1033/10331/1033182163.html
ACCESS総合相談所 その6
http://pc2.2ch.net/bsoft/kako/1037/10378/1037856185.html
ACCESS総合相談所 その7
http://pc2.2ch.net/bsoft/kako/1043/10439/1043996834.html
ACCESS総合相談所 その8(消息不明です)
http://pc2.2ch.net/bsoft/kako/1051/10516/1051630268.html
ACCESS総合相談所 その9(消息不明です)
http://pc2.2ch.net/test/read.cgi/bsoft/1061828549
ACCESS総合相談所 その10
http://pc5.2ch.net/test/read.cgi/bsoft/1075378966/
ACCESS総合相談所 その11
http://pc5.2ch.net/test/read.cgi/bsoft/1089812359/
ACCESS総合相談所 その12
http://pc8.2ch.net/test/read.cgi/bsoft/1106963038/
ACCESS総合相談所 その13 【桐にしとけ】
http://pc8.2ch.net/test/read.cgi/bsoft/1121055646/
ACCESS総合相談所 その14 【桐にしとけ】
http://pc8.2ch.net/test/read.cgi/bsoft/1128486351/
ACCESS総合相談所 その15
http://pc8.2ch.net/test/read.cgi/bsoft/1142586697/
ACCESS総合相談所 その16 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1157195290/
- 4 :名無しさん@そうだ選挙にいこう:2009/08/27(木) 00:01:17
- ACCESS総合相談所 その17 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1175943813/
ACCESS総合相談所 その18 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1198885955/
Access総合相談所 其の19 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1216293538/
桐はこちら↓
管理工学研究所「桐」【4】
http://pc11.2ch.net/test/read.cgi/bsoft/1100708378/
- 5 :名無しさん@そうだ選挙にいこう:2009/08/27(木) 00:24:06
- 桐にしとけ
- 6 :名無しさん@そうだ選挙にいこう:2009/08/27(木) 00:24:48
- 桐について語るスレ 2 【サーバー未満 Excedl以上】
http://pc11.2ch.net/test/read.cgi/db/1250856196/
- 7 :名無しさん@そうだ選挙にいこう:2009/08/28(金) 22:43:14
- FAQ
Q1) 桐って何ですか?
A1) このスレで質問されるような事が何でも簡単に出来ちゃう魔法のソフトです。開発期間も1/5で済みますが、アクセスより高価です。
エグゼクティブは桐でさっさと仕事済ませて、空いた時間はホテルのプールでリフレッシュします。
貧乏人はAccessで必死に頑張ります。
- 8 :名無しさん@そうだ選挙にいこう:2009/08/28(金) 22:49:23
- >>7
Accessでさっさと仕事を済ませて、空いた時間はギターを引いてリフレッシュ
している俺は、じゃぁ、なんなんですか?
30歳で貯金は2千万円あります。今日の夕飯は、うまい輪一袋とミックスフルーツ100
です
- 9 :名無しさん@そうだ選挙にいこう:2009/08/28(金) 23:19:33
- なかなか遣るなぁ
おれ30歳時点でその3倍、今じゃ毎晩レモンサワー飲んでる
スイスの銀行紹介してやろうか?
ジュリアスベアーとかピクテとか
- 10 :名無しさん@そうだ選挙にいこう:2009/08/28(金) 23:23:22
- トンスル飲んで寝ろ。
- 11 :名無しさん@そうだ選挙にいこう:2009/08/29(土) 20:03:50
- 42歳で時給900円。
ヒロポンやって昼勤夜勤3連続中(ヒロポンは嘘)。
Access初心者、元桐講師(マジで)。
- 12 :9:2009/08/29(土) 21:18:41
- >>11
同い年
時給換算50万円
国(国税局)相手に行政訴訟(税金裁判)で本業そっちのけの此の頃
Accessも桐も趣味で弄ってる
そろそろアーリーリタイアメント、エーゲ―海にヨット浮かべて美女はべらせて過ごす予定(カリブ海行ったら黒人女ばっかりだった)
- 13 :名無しさん@そうだ選挙にいこう:2009/08/29(土) 21:38:39
- >>12
ふーん。似たもの同士だね!
俺も現場じゃゴリマッチョばっかり。
- 14 :名無しさん@そうだ選挙にいこう:2009/08/29(土) 21:44:25
- 間違えた、時給換算5万だ
どうでも良いが、最近面白い事ない
- 15 :名無しさん@そうだ選挙にいこう:2009/08/30(日) 23:10:48
- >>14
恥ずかしい間違いだな
- 16 :名無しさん@そうだ選挙にいこう:2009/08/31(月) 08:10:55
- ひと月に1時間しか働いてないの?
- 17 :名無しさん@そうだ選挙にいこう:2009/08/31(月) 09:04:31
- 時給「換算」と書いてあるだろ。
30分だぉ。
- 18 :名無しさん@そうだ選挙にいこう:2009/08/31(月) 09:06:55
- だいたい200時間/月 くらい働いてる、もう嫌だ
- 19 :名無しさん@そうだ選挙にいこう:2009/09/08(火) 10:03:47
- pu
- 20 :名無しさん@そうだ選挙にいこう:2009/09/10(木) 00:10:18
- クエリのデザインビューとかに出てくる[テーブルの表示]ダイアログボックスって、
幅変えられませんよね?
長い名前のクエリをたくさんつくっているのだが、表示される幅の文字が同じで
区別がつかん...orz
- 21 :名無しさん@そうだ選挙にいこう:2009/09/10(木) 00:51:40
- >>20
つResizeEnable
- 22 :20:2009/09/10(木) 06:33:32
- >>21
え、変更できるんですか?
ツール(T)→オプション(O)では、それらしい設定は見つかりませんが?
- 23 :20:2009/09/10(木) 21:05:54
- >>21
フリーソフトだったんですね。ありがとうございますm(__)m
使えそうです。助かりました。
- 24 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 05:59:09
- 今OpenOfficeBaseを使ってるんですがAccessもそのうち買おうと思ってます。
そこでBaseで作ったデータをAccessで引き継いで使う事が可能なのかどうか気になってるんですが、実際どうなんでしょう。
- 25 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 12:15:53
- >>24
OOOスレで聞いたほうが早いと思うが、俺なら過大な期待はしないよ。
テーブルをcsvにエクスポートして、Accessに文字化けなしでインポートできれば御の字。
- 26 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 12:20:02
- >>24
OpenOffice.org Baseなんて、データベースのまがい物は使わないほうがいい。
あんな出来損ない、フリーでも使いたくない代物だ。
最初から、Access, FileMaker, 桐にしておけ。
で、データベース格納場所は切り離しておき、できれば、MySQLかPostgreSQLを
使い、ODBC接続としておく。Access2007は最適化すると、データベースが消滅する
バグがあるから、注意が必要だ。
楽しい、データベースライフを!
- 27 :24:2009/09/13(日) 14:45:14
- OOOスレで聞いてみました。
Baseはアクセスを完全に超えたらしいのでこれからもBaseを使い続けたいと思います
本当にありがとうございました。
- 28 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 17:16:01
- 27は偽者です。
>>25-26
ありがとうございます。
うーん、出来るだけ早めに乗り換えた方がいいんですかね。
データベースソフトはBaseしか使った事がないので正直何がそんなに違うのかイマイチ理解してないんですが・・・。
- 29 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 18:02:32
- >>28
外部とのデータのやり取りにDAO,ADOが使えない(Base側から使うなら出来る)というのは聞いた事がある
(まぁあんまり使ったことないからわからんが)
一応ExcelからBaseに接続してる例はあったけど
ttp://user.services.openoffice.org/ja/forum/viewtopic.php?f=16&t=269
- 30 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 18:05:34
- あれっ、前スレ終わったん?
- 31 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 20:17:40
- 【 システム環境 . 】 Windows?, Access2003
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 否
会社のイントラネット内で使用するデータページを作っています。
データページはなんとか作成したのですが、使用する人たち(PCに詳しくない人たち)から
保存したときに何かわかるようにできないかと言われました。
普通のフォームではダイアログボックスを出すことができるようですが、
データページでも可能なのでしょうか?
データページについては書籍もネットもぜんぜん見つからず困っています。
できないとわかるだけでもありがたいです。
よろしくお願いします。
- 32 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 20:42:38
- 宣伝提示版が新しくできましたーーー∈^0^∋ ご検討のほどよろしく御願いします
お役に立てる宣伝提示版に頑張りますので末永いご利用をお待ちしております
http://jbbs.livedoor.jp/movie/9151/
- 33 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 21:14:50
- 開発はVisualStudio使えって
テーブル・クエリ・レポート・フォーム・モジュール
全部対応できるぜ
- 34 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 21:23:01
- >>33
あれ、AccessってVisualStudioによる開発できましたっけ?
VisualSourceSafeによるソール管理ならアドインで対応してますが・・・
よろしければ詳しいとこ教えてください!
- 35 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 21:23:20
- >>33
連結フォーム使えるの?
- 36 :名無しさん@そうだ選挙にいこう:2009/09/13(日) 22:36:52
- >>33
http://msdn.microsoft.com/ja-jp/library/cc326064.aspx
参照して検討されてはどうでしょうか。それなりのスキルは必須と考えられます。
Web展開が必須ならば、Visual Web Developer 2008 Express Editionで開発もいいのでは?
- 37 :36:2009/09/13(日) 22:37:45
- × >>33
○ >>31
- 38 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 16:01:25
- >>33
レポートについてはAccessを超えるツールはないと思う。
- 39 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 16:08:02
- 桐にしとけ
- 40 :1/2:2009/09/14(月) 19:36:54
- よろしくお願いします。
access2000を使っています。
テーブルが二つあり、
T1にはフィールドが3つ、
[加算数]数字[仕事]テキスト[実行日]日付
[実行日]フィールドは空白です。
T2にはフィールドが2つ、
[仕事]テキスト[計画日]日付、とあります。
仕事をキーに、
[仕事][計画日][加算数][実行日]の選択クエリQ1を作成しました。
また、更新クエリQ2で、
[計画日]に入った日付に、[加算数]の数字を加算し、
実行日を入力させます。
- 41 :2/2:2009/09/14(月) 19:38:09
- T2には単数の[仕事]に対して複数の[計画日]の値があります。
例えば
[仕事][計画日]
掃除 9/12
掃除 9/13
掃除 9/20
この状態で更新クエリQ2を実行すると、
Q1には
[仕事][計画日][加算数][実行日]
掃除 9/12 1 9/27
掃除 9/13 2 9/27
掃除 9/20 7 9/27
となってしまいます。
原因はキー設定がうまく出来ていない点かと
自分では考えておりますが、
実行日をうまく表示させるにはどうすれば良いのでしょうか。
長文で失礼いたしますが、
どうかよろしくお願いします。。
- 42 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 20:03:56
- >>40
実行日って必要なのか? 計画日と加算数があれば加算で出てしまうじゃないか。
- 43 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 20:14:57
- >>42
実際は扱うデータが異なるもので、内容までは申し上げられませんが、
必要です。。
私も加算で出てしまうと思っていたのですが、
日付のみが異なる、このケースでいうと毎週行うような仕事があった際に、
UPDATE Q1 SET Q1.実行日 = Q1.加算数 + Q1.計画日;
これだと、最終日のみが認識されてしまい、
同じ仕事で日付が違う他のレコードの値まで最終日の値になってしまいます。
- 44 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 20:28:46
- >>43
仕事 計画日 加算数 実行日
掃除 09/12 1 2009/09/13
掃除 09/13 2 2009/09/15
掃除 09/20 7 2009/09/27
ってなればいいんだろ? とりあえず例でいうとテーブルは1つでいい。
T1(仕事、計画日、加算数)
主キーが必要なら、仕事と計画日の複合キーでいいじゃないか。
- 45 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 20:39:01
- select t1.仕事, t2,計画日, t1.加算数, t2,計画日 + t1.加算数 AS 実行日
from t1 iner join t2 on t1.仕事 = t2.仕事
じゃ駄目?
- 46 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 20:42:01
- ちょいと例を作ってきます。
しばしお時間を・・
あとテーブルは、諸事情でどうしても分けねばならんのです・・。申し訳ない
- 47 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 21:02:44
- お待たせしました。まだいてくれてたらいいんですが・・
実行前
http://2sen.dip.jp/cgi-bin/upgun/up1/source/up32390.jpg
実行後
http://2sen.dip.jp/cgi-bin/upgun/up1/source/up32391.jpg
実行後の実行日が2009/09/15で3レコード共統一されてしまっているかと思うのですが、
これを
2009/09/23
2009/09/18
2009/09/16
となれば望む所です。
>>45
ちと試してきます
- 48 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 21:07:11
- dbより隠れている壁紙が気になる件
- 49 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 21:13:04
- >>45
出来ました・・・。選択クエリで作れるんですね・・・・
ありがとうございます。初歩的な質問を長々とすいません。。
後学のために別解ございましたら、是非お願いします。
スレ違いだと感じられたら放置でお願いします
みなさんほんとありがとうございました。
精進します。
あ、これhttp://2sen.dip.jp/cgi-bin/upgun/up1/source/up32399.jpg
- 50 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 21:16:04
- >>47
テーブル構造が糞すぎ。
第三正規化あたりから勉強しなおしてきてくれ。
- 51 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 21:24:05
- やりたいことはなんとなくわかった。
仕事 加算数
掃除 1
洗濯 2
料理 6
これって固定なの?
- 52 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 21:32:42
- ん。不固定ですが・・
- 53 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 21:51:42
- 31です。36さんありがとうございます。
明日会社でじっくり読んでみます!
- 54 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 21:53:45
- >>49
T2で同一の仕事が複数ある場合(今回は掃除だけど)、どういう規則で1つを選ぶの?
計画日が最小でいいの? だとしたら、グループ化でQ1ひとつで行けそうなのだが。
- 55 :45:2009/09/14(月) 22:55:44
- 加算数と仕事はgroup byしたほうがいい気がするなぁ・・>>45
subクエリかけたら
t1 を(select 仕事,加算数 from t1 group by 仕事,加算数) tp に変更
#Access単体はあまり触ってないから、忘れちゃったよw
#それにしても、なんか違和感かんじるんだけどね
- 56 :名無しさん@そうだ選挙にいこう:2009/09/14(月) 23:06:03
- >>55
たぶんみんな違和感があると思うよ。
逆にどういう目的でDBを構築しようとしているか、ずばり言ったほうが早いかもね。
部分的な目的じゃなくて、スケジュール管理とか人材管理とかの最終的目的。
じつはExcel向きの仕事ではと思っている。
- 57 :名無しさん@そうだ選挙にいこう:2009/09/15(火) 02:03:52
- その壁紙は予想の斜め上行ってた。GJ
- 58 :名無しさん@そうだ選挙にいこう:2009/09/15(火) 03:31:57
- すみません、すごい基本的な話で申し訳ないんですが
追加クエリと削除クエリって どうやって作るんですか?
- 59 :名無しさん@そうだ選挙にいこう:2009/09/15(火) 09:14:19
- >>58
クエリの画面開いて クエリ(Q)のメニューに無い?
- 60 :名無しさん@そうだ選挙にいこう:2009/09/15(火) 10:55:36
- >>58
まずその条件で選択クエリを作る。それを追加クエリまたは削除クエリに変更できるよ。
- 61 :名無しさん@そうだ選挙にいこう:2009/09/15(火) 16:43:34
- Access2007のAccessのオプションをVBAからいじれませんか?
具体的に言うと、「ウィンドウを重ねて表示」と「タブ付きドキュメント」を切り換えたいと思います。
- 62 :名無しさん@そうだ選挙にいこう:2009/09/15(火) 23:19:58
- >>29
遅くなりましたがありがとうございます。
まぁやっぱりBaseじゃAccessに比べれば出来る事が限られてるんでしょうね・・・。
- 63 :名無しさん@そうだ選挙にいこう:2009/09/16(水) 01:16:45
- 58です
基本的なことを聞いてどうも済みませんでした
- 64 :名無しさん@そうだ選挙にいこう:2009/09/16(水) 09:09:46
- >>62
SQL Server 2008 Express でもいいんじゃね?
#資料も多いと思うし、立ち上げすぎればそう変わらん気がする
#AccessのSQLの癖は、ちょっと変だし(2000までしか使ったことがないけど)
- 65 :名無しさん@そうだ選挙にいこう:2009/09/16(水) 09:12:44
- あDBとしてはってとこね。
単体でアプリ作れるとか、レポート等はもちろん評価してます
#自分の場合はExcel出力で、後は好きに出力して が多いから
- 66 :名無しさん@そうだ選挙にいこう:2009/09/16(水) 21:20:37
- お願いします。
access2000を使っています。
既存のエクセルファイルがあり、
シートの最上部数行に文章、
同じシートの最下部数行にも文章があり、
真ん中に数列で数行のデータ群があります。
発注書や納品書をエクセルで送付するイメージです。
このエクセルシートに、
テーブルまたはクエリで編集してきたデータをエクスポートすることは出来ますでしょうか。
- 67 :名無しさん@そうだ選挙にいこう:2009/09/16(水) 21:25:08
- >>66
できるけど、Excel使うんだったらExcelのほうで
ADOなり使ってクエリを呼び出したほうが早くないか?
- 68 :名無しさん@そうだ選挙にいこう:2009/09/16(水) 21:36:20
- 上司のご依頼です・・・・
検索ボタン1個で送り先まとめて、
その下にある出力ボタンで送付できるようちょいちょいっとまとめて!
だそうです。
エクセルからのアプローチのが早いんですね・・
とりあえずは出来るのであればアクセスでやってみます
- 69 :名無しさん@そうだ選挙にいこう:2009/09/17(木) 07:29:21
- >>68
俺の場合、同じようなレポート形式で、データをまとめて、送り先フラグのついた
ものをベースにクエリって、個別PDF出力、連続メール送信をボタン一つでちょい
ちょいってやってます。
パスワードは乱数をつかって自動生成しています。
- 70 :名無しさん@そうだ選挙にいこう:2009/09/17(木) 10:26:46
- AccessからVBAでExcelたたいてもいいんじゃね?
#普通にやる処理だと思うよ
- 71 :名無しさん@そうだ選挙にいこう:2009/09/17(木) 20:51:28
- 1回こっきりならともかく、長期運用を考えるとOLEオートメーションは鬼門
- 72 :名無しさん@そうだ選挙にいこう:2009/09/17(木) 22:01:36
- >>71
なるったけ、内部だけで完結したいと思う俺であった。
BASP21みたいなDLLはOKって考えだけれど
- 73 :名無しさん@そうだ選挙にいこう:2009/09/17(木) 22:28:20
- >>72
できるだけAccessで完結させたいね。どうしてもExcelを使う必要があるなら、
俺もExcel側にプログラムを実装しちゃうな。
LAN環境で違うPCからも接続できるし、フォルダー移動も自由自在、
ほかの人が気に入って自分も使いたいとか言われても
Excelのコピーを渡すだけで、Access側のプログラムをいじる必要がないもの。
- 74 :禿げあたま:2009/09/21(月) 17:19:43
- 【 システム環境 . 】 Windows XP SP3, Access 2007
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 否
田舎のちっぽけなレンタカー屋で働いています。事務処理は今でも手書き伝票切ったりしているので、いい加減社長が切れてわたしがAccessを使ってシステムを作ることになりました。
ここで質問させて頂きたいことは、車輌の貸出期間の算出方法です。
VBAが全くわからないため、DateDiffという関数を使うのであろうというところまでは検索でたどり着けたのですが、それをどのように使うのかがよくわからなくて困っています。
- 75 :禿げあたま:2009/09/21(月) 17:20:33
- 長すぎて一気に書き込めませんでした、上の続きです
入力フォームに「貸出日」「貸出時間」「返却日」「返却時間」の4つを設けてそこから貸し出しに要した日時を出したいと思っています。例えば、「2009/9/15 16:10」 から「 2009/9/20 12:00」まで貸し出したとします。
経過時間は「4日と19時間50分」ですが、レンタカーの貸出料金は1日単位ですので、余った時間が10時間経過していたら1日とみなして繰り上げるようにしたいのです。
つまりこの例での余った時間「19時間50分」は1日とみなされ、経過時間は「5日」ということで5日分のレンタル料金を算出という流れになります。
入力フォームにつきましては別に「貸出日」と「貸出時間」を分けることに特にこだわっていません。「貸し出し日時」として一つに出来るのであればその方がいいと思っています。初心者で2chに書き込むことすら初めてというものですが宜しくお願い致します。
- 76 :名無しさん@そうだ選挙にいこう:2009/09/21(月) 17:53:07
- >>74
int((datediff("h",#2009/9/15 16:10#,#2009/9/20 12:00#)+14)/24)
これでどうだゲーハー
- 77 :名無しさん@そうだ選挙にいこう:2009/09/21(月) 17:59:43
- >>74
int((datediff("n",#2009/9/15 16:10#,#2009/9/20 12:00#)+60*14)/(60*24))
こっちかも知れんゲーハー
- 78 :禿へ:2009/09/21(月) 19:01:13
- >>74
テーブル:貸出管理
ID:オートナンバー型
貸出ID:数値型
貸出日:日付/時刻型
貸出時間:日付/時刻型
返却日:日付/時刻型
返却時間:日付/時刻型
とすると...
SELECT t1.貸出日, t1.貸出時間, t1.返却日, t1.返却時間, IIf([返却時間]>([貸出時間]+#10:00:00#),[返却日]+1,[返却日]) AS 精算返却日,datediff("d",貸出日,精算返却日)+1 AS 貸出日数
FROM 貸出管理 AS t1;
- 79 :名無しさん@そうだ選挙にいこう:2009/09/21(月) 20:30:24
- >>74
値を丸める方法の1つして四捨五入がありますが、例えば小数点以下四捨五入の場合…
[元の値]に[0.5]を加えた後、小数点以下を切り捨てれば実現できます。
つまり、今回の場合は[返却日時]に[14時間]を加えた後で処理をすればOKですね。(>>77)
なお、日付と時刻を別々のフィールドにするのは何かとトラブルの元になりますので
貸出日時,返却日時のようにまとめるのが良いでしょう。
- 80 :名無しさん@そうだ選挙にいこう:2009/09/21(月) 21:07:24
- >>79
>何かとトラブルの元に
どういうことですか?詳しく教えてください。
- 81 :名無しさん@そうだ選挙にいこう:2009/09/21(月) 22:34:27
- Access 2003 でフォームに
日付と時間をコピペで貼り付けているのですが、
元の日付の表示が MM/DD/YY HH:MM:SS という形式で
毎回/YYを削除して MM/DD HH:MM:SSの前にYY/を付けています。
MM/DD/YY HH:MM:SS を貼り付けた瞬間自動で
YY/MM/DD HH:MM:SS に変換できるような方法はないでしょうか。
- 82 :禿げあたま:2009/09/21(月) 22:39:03
- どうも、ゲーハーです。
みなさんレスありがとうございます!
難しいので禿あたまをなでくり回しながら考えているのですがよくわかりません。
>>77
どこに入力するのかわからなかったけど、規定値の所に入れてみたら動いたようです
とりあえずスクリーンショット撮ってみました
ttp://imagepot.net/view/125353979273.gif
>>78
試してみたのですが、エラーになりました。
テーブルのスクリーンショットです。
ttp://imagepot.net/view/125353979460.gif
もしかしてですが、わたしは時間を入力するのにルックアップウィザードを使って、10分刻みにリストボックスから選択できるようにしています。
日付・時刻型になっていないとか言う理由で、エラーになるのかな?
ちなみにクエリで漬かったSQL文は以下のものです。
SELECT 受注管理.[貸渡日], 受注管理.[貸渡時間], 受注管理.[返却日], 受注管理.[返却時間], IIf([返却時間]>([貸渡時間]+#12/30/1899 10:0:0#),[返却日]+1,[返却日]) AS 精算返却日, datediff("d",貸渡日,精算返却日)+1 AS 貸出日数
FROM 受注管理;
その他のレスも読ませて頂きました、よくわからなかったけどみなさんありがとうございます!
- 83 :名無しさん@そうだ選挙にいこう:2009/09/21(月) 22:52:47
- >>82
情報後出しのいい例か
- 84 :名無しさん@そうだ選挙にいこう:2009/09/21(月) 23:25:01
- すいません。
今、テーブルにあるAというテーブルとBというテーブルのなかの
会社名の抽出をしたいのですけど、例えば、Aの○○会社とBの○○会社 ほにゃらら支店みたく
なってるものがデザインビューで抜けません。
Aの列は抜き出したいキーワードが1000種類あり、Bの列は抜かれたい列があります。
完全一致でなくていいのですが、抽出条件になんといれればよいのでしょうか?
詳しい方、どうか教えて下さい。
- 85 :名無しさん@そうだ選挙にいこう:2009/09/21(月) 23:31:44
- >>81
前提がわからんので手順のみ
・コピペする時点では、テキストボックスの書式は
mm/dd/yy hh:nn:ss
コピペ後、つまりテキストボックス更新後にでも、
書式をyy/mm/dd hh:nn:ssに変更すればよかろうぞ
- 86 :名無しさん@そうだ選挙にいこう:2009/09/21(月) 23:38:04
- >>81
更新後処理でもよければ
Dim Y_Buf As String
Dim M_Buf As String
Dim D_Buf As String
Dim T_Buf As String
If Not IsNull(Me!テキスト0) Then
Y_Buf = Mid(Me!テキスト0, 7, 2)
M_Buf = Left(Me!テキスト0, 2)
D_Buf = Mid(Me!テキスト0, 4, 2)
T_Buf = Right(Me!テキスト0, 8)
Me!テキスト0 = Y_Buf & "/" & M_Buf & "/" & D_Buf & " " & T_Buf
End If
とでもすれば。まったく応用が利かないけど。
- 87 :86:2009/09/21(月) 23:39:50
- 訂正
×応用が利かないけど
○融通が利かないけど
- 88 :禿げあたま:2009/09/21(月) 23:59:46
- >>83
後出し部分があったみたいで、すいませんでした。
「貸渡時間」「返却時間」のフィールドを日付・時刻型に変えると78のやり方で出来ました!ありがとうござました。
ルックアップ形式でリストボックスから選択した時間を、計算式の中で使うのは無理なのでしょうか?
時間の入力が楽なので出来ればこの形式で使ってみたいと思っているのですが。
- 89 :名無しさん@そうだ選挙にいこう:2009/09/22(火) 00:02:34
- >>85
> 前提がわからんので手順のみ
サーバーから取得したログのファイルを
DBに登録しています。
そのログの時間表記が先程の形式です。
で、おっしゃった書式の変更は以前試しましたが、
うまくいきませんでした。
というのは年と月の判断をアクセスはできないからでは
と思うのですが。
>>86
何かできそうな気がします。
文字列に置き換えて、位置を指定している
というイメージで宜しいでしょうか。
ひとまず、お二方有り難うございました。
- 90 :>>78:2009/09/22(火) 00:30:42
- >>88
ルックアップ形式ってのがいまいちわからんけど
そのリストボックスの値集合ソースをテーブルか
クエリにするってことならたぶんできそうな。
- 91 :名無しさん@そうだ選挙にいこう:2009/09/22(火) 00:41:47
- >>88
83じゃないけど
日付時刻型は日付のみ入力しても時間部分に
AM12:00が勝手に入力されたような(時間だけ入力だと日付部分には0が入るから大丈夫かと)
上のクエリだと問題なさそうだが貸渡日、返却日とNow関数なんかの
比較が必要なったときに予想外の結果が返るかも
- 92 :名無しさん@そうだ選挙にいこう:2009/09/22(火) 00:51:26
- >>84
外部結合とLike使えばできそうだが、たぶんクエリのデザインビューでは表現できない。
どっかで勉強してきて。
>>89
ログがyyyyなら書式変更でよいが、yyだとあかんね
- 93 :禿げあたま:2009/09/22(火) 00:57:31
- >>90
> そのリストボックスの値集合ソースをテーブルか
> クエリにするってことならたぶんできそうな。
時間を選択するリストを別テーブルにしてみたら出来ました!
>>91
日付は特に問題ないようです。
クリックするとカレンダーが出て日付を選ぶだけですので。
今日は普段使わない頭を使いすぎて眠くなってきたのでもう寝ます。
いろいろ皆さんありがとうございました!
- 94 :名無しさん@そうだ選挙にいこう:2009/09/22(火) 01:05:38
- >>85
何のかわからんけどそもそもlogの形式を変えれば済むんじゃないの?win鯖は解らんけど、LinuxやFreeBSDなら簡単だよね。
- 95 :81:2009/09/22(火) 01:26:11
- >>92
そうなんですよ。
一つのシステムは年/月/日と吐き出されるんですが、
一方は月/日/年で・・・。
仕様変更は別会社へ頼まないといけないらしくお金も掛かるので
Accessをいじって対応できれば良いなと思ったわけです。
今月は月も年も09なんでそのままでもできるのですが、
今月以外や日が12を超えるとおかしくなるので。
- 96 :名無しさん@そうだ選挙にいこう:2009/09/22(火) 01:57:10
- >>80
>>91
91さん、補足ありがとう。
- 97 :名無しさん@そうだ選挙にいこう:2009/09/22(火) 06:09:20
- >>81
こんなんでよかったら
テーブル:log保存
id:オートナンバー型
log:テキスト型
と、仮定して
クエリ:log加工
SELECT t1.log AS 加工前log, Mid(t1.log,7,2) & "/" & Mid(t1.log,1,5) & Mid(t1.log,9,10) AS 加工後log
FROM log保存 AS t1;
コピーしたlogをクエリの[加工前log]フィールドに貼り付ければ
[加工後log]に出力されると思うんだが...
フォームとの関連部分は詳細が判らんから省いた。ごめん。
- 98 :禿げあたま:2009/09/23(水) 00:18:52
- お世話になっております
先日のやり方>>88ではエラー無く表示はできるようになったのですが
結果が違ったものが表示されるので
>>77で教えて頂いたやり方でやってみようと思うのですが、#〜#の間に貸渡日などの値を入れるとエラーになります。
どのように記述すればよいのでしょうか?
実際には以下のように使用したいです
int((datediff("n",#2009/9/15 16:10#,#2009/9/20 12:00#)+60*14)/(60*24))
↓
int((datediff("n",#貸渡日 貸渡時間#,#返却日 返却時間#)+60*14)/(60*24))
- 99 :名無しさん@そうだ選挙にいこう:2009/09/23(水) 01:23:47
- >>98
試してないけど
int((datediff("n",(DateValue(貸渡日)+TimeValue(貸渡時間)),(DateValue(返却日)+TimeValue(返却時間)))+60*14)/(60*24))
でどう?
- 100 :名無しさん@そうだ選挙にいこう:2009/09/23(水) 01:55:07
- >>98
貸渡時間と返却時間の書式を 時刻(S) 入力チェックを はい
貸出合計期間のコントロールソースには、
=int((datediff("n",[貸渡日]+[貸渡時間],[返却日]+[返却時間])+60*14)/(60*24))
#や[]で括ってる件については、Accessヘルプの「式」の項目でも読んでくれ
貸渡日と返却日の定型入力をウイザードから日付っぽいのを設定しておけば問題なかろう
受託管理テーブルについても日付時刻に関するフィールドのデータ型は、日付/時刻型に
合わせる。
テーブル側を先にすべて設定しとけばフォーム作成時自動的にやってくれるけどな。
夜更かしは抜け毛の原因だぜゲーハー
- 101 :名無しさん@そうだ選挙にいこう:2009/09/23(水) 02:38:41
- >>82のSS見ながらの前レスであったが、
車両マスタテーブルと車両稼働を表すテーブルがあれば業務管理っぽいことができそう
な気がするぜ。まぁがんばれゲーハー。
飲みすぎた、寝る
- 102 :禿げあたま:2009/09/23(水) 08:35:47
- お世話になっております。
ありがとうございます。朝起きて早速みなさんのレスを試させて頂きました。
>>99
エラーが出てしまいました
>>100
出来ました!時間もリストボックスから選ぶのではなく手入力に変えました。
抜け毛が気になるのは最初のうちだけですよ(^^)/
>>101
車輌マスタと車輌稼働テーブルで業務管理とかいいですねー。
実際にはお客様にレンタカーの予約を受けて、日付と車輌タイプを入力したら空いている車の一覧とそれぞれの料金(借りる日付によって個々に変動)の表示とか、できるようにしたいです。
最初は嫌々やらされている感じだったのですが、触っているうちに段々面白くなってきました。なんとか業務管理システムを作れるようになるまで頑張りたいと思います!
- 103 :>>78:2009/09/23(水) 09:43:04
- >>102
うまくいっている様だが...
長文失礼
テーブル:[車両管理]
車ID:数値型(主キー)
車名:テキスト型
ナンバー:テキスト型
車種ID:数値型
車ID 車名 ナンバー 車種ID
1 ワゴンR あ0005677 1
2 ムーブ い0001234 1
3 ビッツ う0001111 2
テーブル:[車種管理]
車種ID:数値型(主キー)
車種名:テキスト型
料金:数値型
車種ID 車種名 料金
1 軽自動車 5000
2 小型車 8000
- 104 :>>78:2009/09/23(水) 09:44:02
- >>103のつづき
>>102
テーブル:[貸出管理]
ID:オートナンバー型
車ID:数値型
貸渡日:日付/時刻型
貸渡時間:日付/時刻型
返却日:日付/時刻型
返却時刻:日付/時刻型
ID 車ID 貸渡日 貸渡時間 返却日 返却時間
1 1 2009/09/15 16:10:00 2009/09/20 12:00:00
2 2 2009/09/21 9:00:00 2009/09/21 12:00:00
3 1 2009/09/21 8:00:00 2009/09/23 19:00:00
4 3 2009/09/21 8:00:00 2009/09/22 18:00:00
5 3 2009/09/22 8:00:00 2009/09/23 8:00:00
- 105 :>>78:2009/09/23(水) 09:45:59
- >>104のつづき
>>102
クエリ:[貸出料金]
SELECT t1.ID, t1.車ID, t2.車名, t3.車種名,
t1.貸渡日, t1.貸渡時間, t1.返却日, t1.返却時間,
IIf([返却時間]<([貸渡時間]+#12/30/1899 10:0:0#),[返却日],[返却日]+1) AS 精算返却日,
int((datediff("n",[貸渡日]+[貸渡時間],[返却日]+[返却時間])+60*14)/(60*24)) AS 貸出合計期間1,
[貸出合計期間1]*[料金] AS 請求金額1,
IIf(DateDiff("d",[貸渡日],[精算返却日])=0,1,DateDiff("d",[貸渡日],[精算返却日])) AS 貸出合計期間2,
[貸出合計期間2]*[料金] AS 請求金額2
FROM (車両管理 AS t2 INNER JOIN 貸出管理 AS t1 ON t2.車ID=t1.車ID)
INNER JOIN 車種管理 AS t3 ON t2.車種ID=t3.車種ID;
貸出合計期間1の方は、当日で10時間以内だと貸出合計期間が0になってしまっているが...
貸出合計期間2の方は、以前>>78で掲示したやつの改良版(すまん)
- 106 :禿げあたま:2009/09/23(水) 13:01:26
- >>103,104,105
ありがとうございます!
すぐにお返事できなくて申し訳ないです。時間取れたらすぐにでも試してみたいのですが、今日はちょっとばたばたしてまして......
>貸出合計期間1の方は、当日で10時間以内だと貸出合計期間が0になってしまっているが...
当初、ACCESSでどこまで出来るかも知らずに、とりあえず困った箇所だけを投稿させて頂きましたので、一日以下の料金のことは考えていませんでした。申し訳ありません。
時間が出来たら試してまた結果報告させて頂きたいと思います。
- 107 :名無しさん@そうだ選挙にいこう:2009/09/23(水) 13:59:28
- 困った個所だけって認識あるから、別にいいのだけれども、
4時間/半日/7日間/1ヶ月/時間延長料金が出てきてみんなで軽くズッコケもありだと思う
- 108 :>>78:2009/09/23(水) 22:39:26
- とりあえず
4時間/半日/7日間/1ヶ月/時間延長料金が出てきても対応できるんだが
結局、設定する側のフォーマットが決まらなければなんともできね。
- 109 :名無しさん@そうだ選挙にいこう:2009/09/23(水) 23:01:03
- レポートを印刷するときにバーチャル印刷ソフト、例えばdocuworksとかアクロバットにフォーカスがわたるんだけど、その後に手動でAccessにフォーカスを戻すのが面倒です。
レポートの印刷の後にAccessにフォーカスを戻すコードってどう書くのでしょうか?
- 110 :名無しさん@そうだ選挙にいこう:2009/09/23(水) 23:01:50
- お願いします。
access2000を使っております。
あるマスタクエリがあり、そのマスタクエリの中のフィールドの一つである送信先フィールドに
国名が記載されています。
そして、この国名に沿って振り分けた国別クエリが10国分ほどあります。
この国別クエリは、国ごとにフィールド名もデータの表示形式も随分別の形に加工してあります。
現在はそれぞれの国別クエリのフィールド名やデータ表示形式を、
全て各国の指定した形式で加工する所まで終わっています。
あとはこれを、エクセルに出力し、とりあえずは完了という所です。
お尋ねしたいのは、この作成したクエリを、
既に用意してあるエクセルの内部にエクスポートする方法です。
VBAで何度か試しましたが、どうしても指定した位置にエクスポートすることが出来ず、
用意していたエクセルの内部データを全て上書きしてしまいます。
コード全てでなく、利用できそうな関数やメソッド、プロパティだけで十分有難いので、
是非ひとつアドバイスをいただきたく。
長文になりましたが、どうかよろしくお願いします。
- 111 :名無しさん@そうだ選挙にいこう:2009/09/23(水) 23:20:49
- >>110
ほぼわかんね。っていうかこういうパターンって
情報小出しで回答側が頭にくるパターン。
- 112 :名無しさん@そうだ選挙にいこう:2009/09/23(水) 23:25:35
- .CopyFromRecordset
- 113 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 00:01:40
- >>110
CellsとかRangeで出力先を指定すればいいじゃない。
おおむねExcel VBAの話である
- 114 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 00:02:57
- >>110
Excel オートメーションで調べればいい。
というか、俺はそれで同じように、給与計算のツール作っているし。
ボタンぽちっと押すと、Excelの対象のシートが立ち上がって勝手に
書き込みが始まる。
見ていて壮観だ。
- 115 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 00:19:47
- >>109
Windowの制御か
APIにSetActiveWindowってのがあるが
ワンアクションが面倒とは、どんだけって気がする。
- 116 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 00:35:58
- >>115
100人の顧客毎にレポートを印刷すると100アクションなんですよ。
顧客毎に数種類のレポートがあるから数百アクションです。
手動が好きな人ならパソコンを使わないで手書きにすればいいんでしょうが、私は自動の方が好きなもので…
- 117 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 01:23:47
- 連続印刷するのになぜフォーカスが必要なのでしょうか?
- 118 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 01:31:28
- >>116
自動が好きでも自分で解決できないんなら手動でやることだな。
悪いことい言わんから、出力はXPS/PDFに限定して2007使っとけ。
1.あきらめる
2.ActiveWindowを管理する
3.2007にする
4.Shellつかってコマンドオプション指定してバックグランド可なプリンタを探す
5.お金かけて作ってもらう
- 119 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 01:55:38
- >>117
顧客毎にフォームがあって、必要事項を記載してからレポートを印刷する仕様になっていますので、1枚ずつしか処理できないんですよ。
100人分のデータを入力してから全顧客の最新レコードを抽出してレポートに渡せば一括処理できますね。
うーむ。また改造か。mdbだから改造できるけど、本業がすすまない…
>>118
APIいじることにします。
- 120 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 02:25:37
- >>110
白紙シート作ってそこにそのままエキスポートしてみるとか。
本当に書き込みたいシートのセルには参照だけ書き込んで置けばいいし
- 121 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 07:13:12
- >>116
自動好きの俺からすると、随分と舐めた奴だなあんた。
その程度で自動が好きだとかさ。
何がいいたいのかわかるか?印刷ダイアログがどうとかほざいている
時点で既にな・・・
で、実際に>>119をみていると やっぱりって感じで。
1枚ずつしか処理できない?それは 君の力では ってだけの話だろうが。
その程度で自動化好きだとか、手動が好きならとか貶めてるような馬鹿に
教えてやる必要は感じない罠。
- 122 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 07:42:51
- と、>>121というお方が御指導下さっているんだぞ皆さん!
- 123 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 08:10:22
- ☆☆☆★最大級の注意を★☆☆☆☆☆
☆☆☆★とくに千葉県、静岡県、東京都や関東で大震災の恐れが★☆☆☆☆☆
☆☆☆★とくに千葉県、静岡県、東京都や関東で大震災の恐れが★☆☆☆☆☆
☆☆☆★とくに千葉県、静岡県、東京都や関東で大震災の恐れが★☆☆☆☆☆
☆☆☆★世界の支配者ユダヤが地震兵器を使うのか★☆☆☆☆☆
友人、知人、親類縁者、あらゆるつながりを駆使して巨大地震がくることを教えて下さい。
四川地震より大きいのが来る可能性があります。
http://goldenta★★matama.bl★★og★8★★4.f★★c2.c★★om/
警告!21-23日の地震は外れた次は27日やヴぁいかも5
http://live24.2ch.net/test/read.cgi/eq/1253716942/
ワタスの予言では今月中に関東大地震だす3
http://live24.2ch.net/test/read.cgi/eq/1253594903/
e-PISCO Part11
http://live24.2ch.net/test/read.cgi/eq/1252991726/
ほんとに大震災だったら犯人は特権階級全員だってことにwwwwwwww
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
カナダの世界的科学者ロザリー・バーテルはハープが地震兵器や脳を損傷させる兵器の疑い
があるので情報を公開するように要請している
http://www.youtube.com/watch?v=8AMlqRsHUXI&feature=player_embedded#t=511
- 124 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 08:31:44
- >>121
いろいろとありがとうございます。
ただ、印刷ダイアログの話はした覚えがありませんので、初老期の認知症に気をつけてください。
これです。↓
> 何がいいたいのかわかるか?印刷ダイアログがどうとかほざいている
> 時点で既にな・・・
- 125 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 11:31:19
- >>119
>100人分のデータを入力してから全顧客の最新レコードを抽出してレポートに渡せば一括処理できますね。
普通は、そう考えると思うが?
再印刷が発生した場合、どうするかを考慮する必要があると思うけどね
後は顧客単位の振り分け処理だね
DWは普通に印刷すると本体に吐くけど、それをどうやって区別するのか・・・
#フォルダ・ファイル名指定で出せるのかな?
- 126 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 11:46:21
- >>125
再印刷はそもそものの仕様が顧客毎のフォームから1件ずつ印刷する仕様ですので、それを利用します。
DWでの管理はレポートのCaptionを変更することで対応しています。
CaptionがDWでのファイルネームになりますので。(少し小細工が必要ですけど)
振り分けは振り分けソフトで対応しています。1万条件まで対応するソフトがありますので。
いま使っているmdbは高価な業務用ソフトですけど、痒いところに手が届かない設計でうんざりしています。
業務用ソフトは現場を知っているプログラマが必要でしょうが、なかなか難しいんでしょうね。
コードを眺めると笑ってしまうことがあります。
- 127 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 13:39:51
- レポートのCaptionを変更することでユニークなファイル名を生成できることに気づいているのもったいない
- 128 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 14:32:49
- >>127
ん?全てにユニークな名前を付けていますよ。連番が必要ないようにしていますが…。
そしてファイル名に含まれる複数のキーワードで自動振分していますよ。
- 129 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 14:38:48
- ちなみに振分はゼロックスの業務用ソフトは使っていません。フリーソフトとAccessだけで1万条件までは扱えますから。
振分ソフトのiniファイルを複数用意すればいくらでも条件は増やせますし。
- 130 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 15:04:47
- 業務ソフトだのフリーソフトだのAccessと関係ない話ばっかりで
母さん全然わかんないわよ!
- 131 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 15:22:35
- >>127
そうなんだ?
#Excel出力であとはお任せが多いから、気にとめたこと無かったtks
- 132 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 18:49:28
- >>127
何を言いたかったのか、詳しくよろしく!
- 133 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 19:13:15
- もったいないっつたらエコにきまってる。
ユニークが生成されるのをAccess2000比で25%削減目標目指しますイニシアチブな快感でした。
- 134 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 21:51:44
- ロハスなVBAを教えてください
- 135 :名無しさん@そうだ選挙にいこう:2009/09/24(木) 23:28:49
- 結合
- 136 :禿げあたま:2009/09/25(金) 03:00:40
- すいません、時間が取れず返事が遅くなってしまいました。
>>103-105を試してみたら動きました!すごい、クエリってこうやって作るんですね。
料金はとりあえず1日料金さえクリアすればなんとかなると思っていました。
本当にど素人ですいません。
料金形態は「3時間まで」「6時間まで」「12時間まで」「24時間まで」「1日料金」「1ヶ月料金」となっています。
貸出期間が1ヶ月を超えた場合は1ヶ月 +1日あたりの料金となります。
>4時間/半日/7日間/1ヶ月/時間延長料金が出てきても対応できるんだが
>結局、設定する側のフォーマットが決まらなければなんともできね。
設定する側のフォーマットとはどのようなとこでしょうか?私としては大体このようなことが出来ればいいなと考えています。
■お客さんから注文が入ったらフォームに借りる日付と借りたい車種を入力、空いてる車や、料金などが自動で出てくる。顧客情報もこのとき新規なら登録、既存顧客の場合はリストから選択できるようにする。
■貸渡票・受注伝票・請求書・領収書などの印刷
■どの車輌が月にどれくらい稼働しているかなど表示したい
もう少し細かいことでやりたいこともありますが、とりあえずこれくらい出来れば業務で使えると思っています。
- 137 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 05:14:01
- >>136
なんとなくでも、ゴールできそうと思えれば一歩前進したってことだぁ
やりたいことを明確にするのがベストだと思うのだ。
テクニックもいいが、基礎を固めるんだゲーハー
完全無毛になるまでがんばれゲーハー
- 138 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 08:32:44
- ACCESS 2007 RUNTIME+XP
ADOで作ったレコードセットを表形式のフォームのレコードソースにしています。
実行させるマシンによってレコードが0件のときに「カレントレコードがありません」と
出る場合と出ない場合があります。
この差はどこからくるのかご存知の方いらっしゃいますか。
メッセージが出るマシンも以前は出ませんでした。
その間、何かをしたという記憶はないのですが
メッセージを抑制する方法でもいいのでよろしくお願いします。
開発はAccess2007とVISTAで行っています。
- 139 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 09:04:48
- >>138
びす太を使う以上、解決策は無い。
- 140 :138:2009/09/25(金) 10:11:54
- >>139
レスありがとうございます。
XP2台での挙動が違うのでOSは関係ないと思います。
VISTA+RUNTIME(Access2007は入ってない)でもダイアログは出てきません。
- 141 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 10:26:20
- >>138
http://hatenachips.blog34.fc2.com/blog-entry-173.html#more
- 142 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 14:13:53
- >>138
カレントレコードがありません(3021?)がどの時点で吐き出されてるのかわからんが、
エラートラップしちゃうか、recordset.count>0であるときフォームのレコードソースに
するってのはどうだろうか。
>出る場合と出ない場合があります
と言われてもなんともだなぁ。RuntimeにもSPあるから確認してみては?
まったく同じような環境なんだけど、トラブル発生したのは
・ADOのバージョン
・Xpマシンのメモリエラー
ってのがあった。
- 143 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 16:39:38
- >>128
振分ソフトを使わなければ処理ができないなんてもったいなよねと思っただけだよ
まして上限1万の振分条件とかiniファイルを自分で管理しなくちゃいけないなんて聞くとかわいそうになってくる
だってユニークな名前があるならアクセスで全部できるじゃん・・・・どころか・・・ユニークな名前付けもアクセスでできるじゃん
よほどチープなマシンでなければ1万件を超える条件を格納できるテーブル、オンデマンドで条件を設定できるクエリ、各種条件を管理運用できるフォーム、ファイルシステムを操作できるVBAがあるアクセスがあるならあんたのやろうとしてる作業など容易だよ
- 144 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 16:50:27
- >>126
現場を知っているプログラマが必要・・・じゃなくて現場のプアな説明を整理整頓して適切なロジックを考え的確な仕様書を書けるSEが必要なんだよ
できれば自分のやっている現場業務を冷静に判断し他者へ説明できる語学力を備えた現場業務担当がいればありがたいという話
- 145 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 17:05:08
- >>143
あっ、振分もAccessで出来るのか!
それは考えてもいなかった。調べてみますね!
でも、同名ファイルがあるときのリネームとか面倒かな?VBSでも面倒だったし…
ちょっくら検索してみます!
>>142
同意です。
- 146 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 17:53:12
- >>145
>>振分もAccessで出来るのか
抽出した振分条件をVBAでファイルシステムにぶつければ幸せになれる
リネームは次のメソッド
Name oldfile As newfile
File System OBJ は良いぞ
存在確認、サイズ取得、テキスト作成
おおよそ必要なものはそろっていると思ふ
- 147 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 17:55:35
- >>146
ありがとうございます!
いやー、楽しみだ。
- 148 :138:2009/09/25(金) 19:01:25
- >>141 >>142
ありがとうございます。
>>141のブログを参考にして「追加の許可」を「はい」に設定してみました。
エラーは出なくなりましたが、当然ながら追加用の行が表示されました。
これで妥協するかと思っていたところ次の書き込みが
結果的にはバージョンが違っていたので最新版にしたところ0件のときでもエラーはでなくなりました。
根本的な解決ではないような気がして不安ですがこれでいこうと思います。
環境は全部そろえていたつもりだったのに勘違いしていたようです。
お騒がせしました。
それだけではなんなので提案していただいた方法も試してみました。
レコードがある時だけレコードソースを設定するというのは試していたのですが
0件のときに何もしなかったので前に設定したレコードソースが残ってしまい
この方法はダメだと思っていたのです。
しかし改めて書き込みをしてもらって0件のときはNothingにすればいいのではと気づきました。
で、やってみたところエラーダイアログはでないのですが
各フィールドが#Name?となった1行が表示されました。
1件でもレコードがあれば#Name?の行は表示されません。
ちなみにエラーは「カレントレコードがありません」だけでエラーコードはありませんでした。
なぜ挙動が突然変わったのかが疑問ですがとりあえず解決です。
みなさん、ありがとうございました。
- 149 :名無しさん@そうだ選挙にいこう:2009/09/25(金) 20:06:11
- >>148
コントロールソースもVBAで制御すれば#Nameエラー出さないようにできるぜ
- 150 :138:2009/09/25(金) 21:15:57
- >>149
なるほど!
非連結にすればエラーは出ないですね。
試したところバッチリでした。
エラーの出るバージョンがなくなってしまったのでわかりませんが、
この方法でしたらレコードセットの制御をしなくても大丈夫かもしれませんね。
- 151 :>>78:2009/09/25(金) 21:46:36
- >>136
だからさ
> 料金形態は「3時間まで」「6時間まで」「12時間まで」「24時間まで」「1日料金」「1ヶ月料金」となっています。
どの車は「3時間まで」はいくらで「6時間まで」はいくらでってのが決まらないといけないし、
さらにトヨタでいえばビッツとプリウスはたまたアリストとかそれぞれ違ったりするわけだよね。
- 152 :禿げあたま:2009/09/26(土) 00:56:34
- 長文失礼致します。お世話になっております。
今日社内会議であたらしい料金形態をきっちり決めようということになりまして。
会議といっても、ほぼ社長の独断ですが年始から新しい料金形態でやることになりました。
まず、個人と法人を分ける。という頭がとても痛いことになりました。来年まで猶予はあるので少しずつデータベースの勉強しながらやっていこうと思っています。
個人の貸渡料金
・3時間まで
・6時間まで
・12時間まで
・24時間まで
・それ以降は1日料金
・22日を超えると一ヶ月料金+1日料金に切り替え
法人の貸渡料金(1日以下は無し)
・1日料金
・22日を超えると一ヶ月料金+1日料金に切り替え
44日を超えると2ヶ月料金(1ヶ月x2)になるはずですが、2ヶ月を超える貸出は過去10年一度もないので考える必要はないと思っています。
- 153 :禿げあたま:2009/09/26(土) 01:00:00
-
>>151
車の排気量やタイプ別にで料金は設定されています。一ヶ月料金は法人・個人共に1日料金 x 22となります。
軽四 = 3時間まで 6時間まで 12時間まで 24時間まで 一日ごとに 1ヶ月料金
3000円 3500円 4000円 4500円 4000円 88000円
1300cc = 3時間まで 6時間まで 12時間まで 24時間まで 一日ごとに 1ヶ月料金
3500円 4000円 4500円 5500円 5000円 110000円
例えば、ワゴンRやタントは軽四に属するので軽四の料金が適用されます。
パッソやヴィッツは1300ccに属するので1300ccの料金が適用されます。
これは>>103で作成したテーブル車種管理の車種名に入れて使おうと思っています。
で、>>152で書いた料金設定をこのテーブルに以下のように組み込もうと思っています。
- 154 :禿げあたま:2009/09/26(土) 01:00:22
- 続きです
テーブル:[車種管理]
車種ID:数値型(主キー)
車種名:テキスト型
3時間まで:数値型
6時間まで:数値型
12時間まで:数値型
24時間まで:数値型
1日料金:数値型
1ヶ月料金:数値型
法人1日料金:数値型
法人1ヶ月料金:数値型
車種ID 車種名 3時間まで 6時間まで 12時間まで 24時間まで 1日料金 1ヶ月料金 法人1日料金 法人1ヶ月料金
1 軽四 3000円 3500円 4000円 4500円 4000円 88000円 3500円 77000円
2 1300cc 3500円 4000円 4500円 5500円 5000円 110000円 4500円 99000円
そしてこれらの料金をフォームにて法人・個人のラジオボタンで表示切り替えできるようにしようと思っています。
- 155 :149とか142とかゲーハー:2009/09/26(土) 01:46:04
- このスレIDなしだったな
>>150
まぁそーなんだが、
別のアプローチとしては、FormのOpenイベントで、
if recordsetがない then
Cancel=True
MsgBox "No Record!!",vbOkOnly
exit sub
end if
てな感じでフォームオープンを中止させるのもいいかもしれん。
>>152
とりあえず作ってみれよ
コツコツとがんばれゲーハー
- 156 :155:2009/09/26(土) 01:49:36
- recordsetがないっていう表現は変だな。察してくれ
- 157 :名無しさん@そうだ選挙にいこう:2009/09/26(土) 07:49:28
- そういやおれも大昔のDBはテーブル名に顧客管理とか社員管理とか部署管理とか管理だらけだったわw
- 158 :138:2009/09/26(土) 08:32:13
- >>155
ありがとうございます。
そういうやり方もあるんですね!
今回のはフォーム開きっぱなしで中身を動的に変えていくものなので
使えないのですが覚えておきます。
たまにフォームを呼び出す前にレコードセットのチェックをして
開くか開かないかを決めるというのも作っていたのですが、
教えていただいた方法なら新しいフォーム側の1つのプライベート変数のみで済みますね。
勉強になります。
- 159 :名無しさん@そうだ選挙にいこう:2009/09/26(土) 08:51:16
- >>157
俺のテーブルは、太郎と花子って名前が多かった。
顧客太郎だとか
社員花子だとか。太郎が外向き、花子が内向き用にテーブル名を分けてた。
退職する際には、あまりに酷い会社だったので、テーブルの名前を全部、
車の名前に変えた。年度更新のプログラムは前のテーブル名での設定だから
多分、停止したと思う。
- 160 :名無しさん@そうだ選挙にいこう:2009/09/26(土) 09:09:38
- ワロタw
- 161 :>>78 離島のサンデーPG:2009/09/26(土) 12:39:46
- >>152
1日を超えたら
例えば軽四で1日と2時間だったら
=1日まで4000円+3時間まで3000円=7000円?
それとも
=1日まで4000円*2=8000円?
例えば2日と7時間だったら
どういう料金設定?
- 162 :禿げあたま:2009/09/26(土) 15:46:56
- >>161
>例えば軽四で1日と2時間だったら
>=1日まで4000円+3時間まで3000円=7000円?
そうです、個人に関してはそのまま1日+3時間以内で+3時間料金となります。
実際にはこの場合は以降1日料金を追加してこういうケースで借りるお客さんは少ないです。
>例えば2日と7時間だったら
軽四の場合、初日の4500円 + 2日目以降の4000 + 12時間までの4000円
↓
4500 + 4000 + 4000 = 12500円
法人は以前と同じで10時間超えたらもう1日プラスとなっています。(法人は1日以下の料金設定無し)
- 163 :離島のサンデーPG:2009/09/26(土) 18:58:29
- >>162
疑問なんで聞いちゃうけど
> >例えば軽四で1日と2時間だったら
> >=1日まで4000円+3時間まで3000円=7000円?
> そうです、個人に関してはそのまま1日+3時間以内で+3時間料金となります。
> 軽四の場合、初日の4500円 + 2日目以降の4000 + 12時間までの4000円
↓
> 4500 + 4000 + 4000 = 12500円
1日と2時間なら
初日1日=4000円
2日と7時間なら
初日1日=4500円
この違いはどう考えればいいんでしょうか?
- 164 :禿げあたま:2009/09/26(土) 19:42:40
- >>163
混乱させてすいません。
間違えてました。初日料金(24時間まで)は別なので
1日まで4000円+3時間まで3000円=7000円
↓ こうなります
24時間まで4500円+3時間まで3000円=7000円
個人の方は結構ややこしくて、24時間=初日料金ということでそれ以降の1日料金より少し高いです。
さっきAccessVBAプログラミング開発工房 入門・基礎編を買ってきました。
2300円もするとは、高い〜。この土日はVBAの勉強がんばります。
- 165 :名無しさん@そうだ選挙にいこう:2009/09/26(土) 22:21:25
- >>164
まずなんだが、今の貴男には無理でしょう。
俺だったら、関数作って対処する。ソレで済む。複雑っていっても、それは
貴男にとて複雑だと思っているだけで、その程度は、処理レベルとしては、
むしろ、複雑でもなんでもない。
貴男は、まず、Accessの知識より、情報を扱う記述ってのを身につけた方が
いい。あなたのその整理の仕方じゃ、プログラムは作れない。
- 166 :名無しさん@そうだ選挙にいこう:2009/09/26(土) 22:40:08
- >>165
まあまあ、そうなのは重々承知での話しなワケヨ。
> 混乱させてすいません。
> 間違えてました。初日料金(24時間まで)は別なので
> 1日まで4000円+3時間まで3000円=7000円
> ↓ こうなります
> 24時間まで4500円+3時間まで3000円=7000円
この時点で計算が違ってるし...あんまし真剣じゃないんだなって...
ものを造るって大変なことなんすよーって言いたい。
まずはVBA云々なんかよりも先にSQLと第三正規化までをみっちり学習してから
質問してほしいってのは本音なんだが...。
- 167 :禿げあたま:2009/09/26(土) 22:46:22
- >>165
ご意見ありがとうございます。
私自身プログラミングというものは全く理解できないのですが、
書籍やウェブで少しずつ勉強していければなと思っています。
165さんの仰るとおりプログラミングどころかAccessにふれてまだ3週間の
私には、まだ早すぎるシステム制作だろうと思っています。
ただ仕事の都合でどうしても私が制作しなければならないことになってしまい、ここで質問させて頂きました。
情報を扱う記述というのはどういったことを勉強すればよいのでしょうか?
私のようなレベルのものにも参考になる書籍などを教えて頂けると助かります。
幸いにもAccessを楽しいと思えるので、少しずつでも勉強して今後も使えるスキルに出来たらなと思っています。
- 168 :離島のサンデーPG:2009/09/26(土) 23:02:04
- >>167
楽しいと思えることをやればいいんだよ。
ただし、聞くからにはその前に自分で調べてからってことを忘れずにね。
- 169 :禿げあたま:2009/09/26(土) 23:02:14
- >>166
>> 24時間まで4500円+3時間まで3000円=7000円
>この時点で計算が違ってるし...あんまし真剣じゃないんだなって...
>
>ものを造るって大変なことなんすよーって言いたい。
m(_ _)m すいませんほんと、バカみたいな間違いですね。
真剣じゃないと思われても仕方ないです。
- 170 :名無しさん@そうだ選挙にいこう:2009/09/26(土) 23:34:10
- 「制作」と「製作」
- 171 :名無しさん@そうだ選挙にいこう:2009/09/26(土) 23:54:15
- 「Access」と「木同」
- 172 :名無しさん@そうだ選挙にいこう:2009/09/27(日) 00:22:33
- >>167
例えば今回のケースで言えば、最小単位はなんなのか?
それをベースに一定のレベルで符号化するとかね。この符号ってのは、フラグ
なわけだ。
1だったら、2時間 2だったら4時間 そういうフラグデータをいかに作っていくか?
そしてそのフラグを元に、VBAあたりで、select caseで処理してみるとか。つまり、
重要なのは以下に情報を整理するか?データベース特有なら正規化も当然にし
て重要だ。
データベースはまず情報をいかに整理するか?
殆どの人が自分の情報は整理されているというが、データベースを扱う人間から
したら、それは整理される前のデータにしか見えないというのは山ほど在る。
- 173 :禿げあたま:2009/09/27(日) 01:55:06
- >>172
ありがとうございます。勉強になります。
>例えば今回のケースで言えば、最小単位はなんなのか?
>
>それをベースに一定のレベルで符号化するとかね。この符号ってのは、フラグなわけだ。
私にはその最小単位が何なのかもよくわかっておりません。
データベースを理解するということでまた書籍なども購入してみようと思っています。
とりあえず年末まで猶予があるので、今はVBAを少しずつ勉強できればと思っています。
- 174 :名無しさん@そうだ選挙にいこう:2009/09/27(日) 04:44:21
- >>173
ほとんどの業務では最初は紙ベースの台帳があったはずです。
【貸出台帳】
[借りた人],[貸出車の自動車登録番号],[車両の大きさ],[貸した日時]
鈴木一郎さん,品川500わ12-34,小型,2009/09/27 16:30
これを毎回、面倒だけど手書きする。
そのうち賢い人が「自動車ごとに1号車,2号車って番号を振ったら楽じゃね?」と
思いつくわけです。そうだ車両台帳を作ろう!みたいに。
【車両台帳】
[号車],[自動車登録番号],[車両の大きさ],[基本単価]
こうすれば貸出台帳は、[借りた人],[号車],[貸した日時]の記入だけで済みます。
すると今度は車両台帳を記入する人が「車両クラス台帳を作ろう!」と思いつきます。
【車両クラス台帳】
[車両クラス],[車両の大きさ],[基本単価]
これで車両台帳の記入も楽になりました。
こんな風に、扱う項目を開発の早い段階で細切れにしておく。
そうすると業務が楽になるのは手書きでもAccessでも同じです。
- 175 :名無しさん@そうだ選挙にいこう:2009/09/27(日) 08:15:31
- >>173
あんまり難しく考えんなよ。
あれもこれもってなるとやっぱりAccessじゃなくてもいいやってなるぞ。
まあオレのことなんだがw
最初は現行(手書き?)のシステムの補助的なものでもいいんじゃないかな。
- 176 :禿げあたま:2009/09/27(日) 16:27:39
- >>174
わかりやすい説明ありがとうございます。
とても勉強になります。
>>175
>あんまり難しく考えんなよ。
>あれもこれもってなるとやっぱりAccessじゃなくてもいいやってなるぞ。
>まあオレのことなんだがw
>
>最初は現行(手書き?)のシステムの補助的なものでもいいんじゃないかな。
ありがとうございます。
私はあまり頭が良くないので、地道に勉強しかないと思っています。
今後のことも考えると、ここで誰かに答えを聞いてもいずれ困る日が来るのは間違いないので
焦らずにゆっくり基本から学んでいきたいと思っています。
皆さんいろいろご助言頂いて本当にありがとうございます。
- 177 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 02:59:28
- Access初心者です。
XP+Access2003でテーブル1とテーブル2を
1対多で関連付けして連鎖削除をチェックしています。
テーブル1のレコードを削除したときに異常終了でAccessが
落ちるのですが、原因は何でしょうか。
- 178 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 07:09:44
- >>177
M$サポートセンターへどうぞ
- 179 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 08:25:11
- >>177
最適化してみたら?
- 180 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 09:47:04
- WindowsXP上でACCESS2002RuntimeとACCESS2007Runtimeを共存させらレナ意でしょうか
それぞれのランタイムをインストールしてショートカットを作成し
起動時に使用するランタイムを指定しているのですが、
一度どちらかのRuntimeを使うと、もう一方のランタイムを使うときにインストーラーがいちいち起動してしまいます。
これを回避する方法はないでしょうか?
- 181 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 09:50:44
- レナ意です
- 182 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 10:15:03
- 2007 Runtimeに統一できないの?
2002じゃないとダメっていうのはどういう場合?
後学のために教えてください。
- 183 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 15:14:07
- Access2007でサブレポート付のレポートを作成しているのですが、
メインレポートでサブレポートの各項目を集計させるにはどのように設定すればよいのでしょうか。
具体的には、得意先ごとの請求書を作成していて、
メインレポート→得意先ごとの単票形式
サブレポート→パラメータで日付を指定して売上明細
と表示させています。
売上明細の数量、金額、消費税のそれぞれの項目を集計したものをメインレポートに表示したいのですが、
プロパティから式ビルドで
= SUM([数量])としてもうまく計算してくれません。
初心者の質問で申し訳ありませんが、ご教示よろしくお願いします。
- 184 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 17:31:44
- >>182
2003形式のファイルを2007RTで動かすと落ちることがあるんです
その原因がはっきりしていないのと、そのファイルは他の人が作ったので、
できれば直すのは最終手段にしたい。
それとは別に、2007で作成したファイルも使うので、
ファイル毎にランタイムを使い分けられれば一番楽かなと。
- 185 :182:2009/09/28(月) 18:26:59
- >>184
参考になります。
私も2000で作られたmdbファイルを2007のRuntimeで動かしていますが
ちょっと怖いですね。
今のところ認識できる実害はないのでそのまま使っています。
始めは同じように共存しようとしたのですが、
やはり切り替えでインストーラーが立ち上がってしまいます。
「情報を集めています」とか出て長いんですよね。
解決につながるような情報がなくてすいません。
- 186 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 18:34:11
- >>183
=Sum(Reports!メインレポート名!サブレポート名.Report![数量])
でどう?
- 187 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 19:31:54
- Access2007です。
テキストボックスに入力されている値の小数第3位以下を切り捨てたいのですが
Int(Ccur(TextBox) * 100) / 100 で大丈夫でしょうか。
整数の100も通貨型に変換しないとダメですか。
試した範囲ではTextBoxのみ型変換すれば大丈夫そうなんですが
すべての数をチェックできるわけではないのでよろしくお願いします。
- 188 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 20:39:25
- おれもすべての数はチェックできんよ
- 189 :1/2:2009/09/28(月) 21:38:15
- お願いします。
自宅ではaccess2003 仕事場では2000を使っています。
下記コードを実行したところ、自宅ではOK、会社ではユーザ定義型が定義されていないと怒られます。
参照設定はDAOは両方共3.6で、EXCELライブラリは会社が6.0、自宅はEXCEL11.0です。
どこに原因があるのかが見当つかなくて参ってます。
すいませんがお願いします
- 190 :名無しさん@そうだ選挙にいこう:2009/09/28(月) 21:39:13
-
Private Sub btn1_Click()
Dim Db As DAO.Database Dim myRS As DAO.Recordset Dim i As Integer
Dim myXLS As Excel.Application Dim myWKB As Excel.Workbook Dim myWKS As Excel.Worksheet
On Error GoTo エラー処理
Set Db = CurrentDb
Set myRS = Db.OpenRecordset("Q1")
Set myXLS = New Excel.Application
myXLS.Visible = True
Set myWKB = myXLS.Workbooks.Add
Set myWKS = myWKB.Worksheets("sheet1")
With myWKS
For i = 0 To myRS.Fields.Count - 1
.Cells(1, i + 1).Value = myRS.Fields(i).Name
Next i
.Range("C8").CopyFromRecordset myRS
End With
myWKB.SaveAs ("C:\Documents and Settings\Owner\デスクトップ.test.xls")
Exit_EXCELCOPY:
myXLS.Quit
Set myXLS = Nothing Set myWKB = Nothing Set myWKS = Nothing
myRS.Close: Set myRS = Nothing
Db.Close: Set Db = Nothing
Exit Sub エラー処理: Exit Sub End Sub
- 191 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 02:57:17
- >>189
access2003で使ったときの参照設定EXCEL11.0が残ってるだけでないの?←仕様じゃね?
2007の互換モードなら下位互換を保持してくれるけど。
酔っ払いタクシー帰宅途中なので、間違ってたらスマソ
- 192 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 03:27:47
- >>189
>EXCELライブラリは会社が6.0
6.0ってExcelのなにに当たるんだ?
CopyFromRecordsetあたりが上記ライブラリに無いのではなかろうか。
- 193 :192:2009/09/29(火) 03:45:54
- 一応補足
文脈からわかるだろうが、CopyFromRecordsetはExcelライブラリのメンバーだから。
オブジェクトブラウザーでCopyFromRecordsetを検索してみれば。
- 194 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 04:36:13
- >>190は、EXCEL VBAの話だと思うんだ
DAO3.6とCopyFromRecordsetのExcel2000の組み合わせで
なんかバグあった気がするなぁ
accessの問題ではないのではなかろうか。
- 195 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 05:30:28
- >>194
ttp://support.microsoft.com/kb/414048/ja
これか?
- 196 :183:2009/09/29(火) 12:00:05
- >186
ご回答ありがとうございます。
早速ためしてみたところ、実行するとパラメータクエリのようにダイアログが出て
式がそのまま表示されます。
レポート名の指示などに何かルールがあるのでしょうか?
稚拙な質問ですみません。
- 197 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 14:51:25
- >>196
サブフォーム/サブレポートの集計値をメインフォーム/メインレポートに
引用するには、一旦サブ側で集計させたコントロールを参照するがよろし。
>何かルールがあるのでしょうか?
当たり前です。式ビルダ使って確認してみるがよろし
- 198 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 16:21:33
- 【 システム環境 . 】 WindowsXP, Access2003
【 VBAが使えるか .】 はい
【 VBAでの回答 】 可
【 検索キーワード 】 レポート 枠外 テキストボックス 横展開
http://2sen.dip.jp/cgi-bin/upgun/up6/source/up1085.xxx
↑エクセルファイルです。
これと同じものをACCESSのレポートで作成をしたいのですが、
行き詰ってしまいました。
すべてのテキストボックスを縦書きにして、フォントを@がついているものを使用したりしたのですが、
枠外での氏名や住所等を挿入する方法がわかりませんでした。
ぜひ、よき方法をご教授願います。
- 199 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 16:29:20
- >>198
このExcelの表をレポートに貼り付けてしまえば?
- 200 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 17:19:39
- >>198
なんとなくだが、やろうとしてることは無理じゃないすか
出力用データを1ページ分単位で整形したほうがいいのでは?
12ヶ月分と項目数は固定と考えてもよさげだし
- 201 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 17:21:46
- あ、勘違いしてた。縦書きとかいう以前の問題なんじゃないの?
- 202 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 18:19:00
- >>198
集計クエリをユニオンすればサクッと行く気がしないでもない。
- 203 :190:2009/09/29(火) 19:26:53
- 遅くなりました。
あと会社のexcelは9.0でした。
うまくいかなかった原因は参照設定がうまく反映されてなかったみたいです。
DAOチェックはずす→チェックいれる→コードのDAOかかわってる部分も一回書き直す。
だけでいけました。
>>191-195
みなさんありがとうございました。
どうやらこっちの確認不足の粋でした。
- 204 :110 190:2009/09/29(火) 19:42:58
- すいません、続けて失礼します。
Set Db = CurrentDb
Set myRS = Db.OpenRecordset("Q1")
Set myXLS = New Excel.Application
myXLS.Visible = True
Set myWKB = myXLS.Workbooks.Add
Set myWKS = myWKB.Worksheets("sheet1")
With myWKS
.Range("C8").CopyFromRecordset myRS
End With
myWKB.SaveAs ("C:\Documents and Settings\Owner\デスクトップ\出力テスト.xls")
このコードだと、新しくエクセルファイルを作って、その中にブックとシートを作った上で
そこにレコードセットをコピーしてくる流れだと思うのですが、
これだと当然ながら既存のエクセルファイル 「出力テスト」のsheet1の中身を
全て上書きする形でコピーされてしまいます。
既存のエクセルファイル「出力テスト」の中には、
数行分ぐらい案内用の文書が入っていて、
その案内文の下行のC8セルからコピーしたものを貼り付けたいのですが、
前半部分の変数の宣言に問題があるのでしょうか。
どうかよろしくお願いします。
すんません、お願いします
- 205 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 20:18:11
- GetObjectかな・・・・
でもExcelスレで聞くほうがいいと思うぜ・・・
- 206 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 20:21:03
- ちょっと前のログに似たような質問してるやつが何人もいて
それっぽい解答もいくつか出てる。
- 207 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 20:22:28
- Excel VBA側で操作したいのですが、
access一本で、というのが今回の課題ですorz
ちょいとgetobject調べてきます
- 208 :198:2009/09/29(火) 21:22:13
- やっぱり無理なんですかね?
色々調べてもレポートの枠外に文字を貼り付けることなど
ネット上ではhitしませんでした。
- 209 :名無しさん@そうだ選挙にいこう:2009/09/29(火) 21:35:37
- >>198
あなたは1973年4月2日生まれですね
- 210 :207:2009/09/29(火) 21:35:59
-
set wks = XLS.Workbooks.Addにしてたのがだめでした。
set wks = XLS.Workbooks.Open("dir")
と、range
でいけました。
とりあえずありがとうございました!
- 211 :名無しさん@そうだ選挙にいこう:2009/09/30(水) 00:31:36
- >>198
レコードソースが解らないと、なんともいえない。
恐らく支払日ごとに全項目を手入力しているのだと思うが。
ヘッダをうまく使えば問題ないんじゃないか。
- 212 :196:2009/09/30(水) 11:01:44
- >197
ご回答ありがとうございました。
なんとかうまくいきそうです。本当に助かりました。
あともう一つだけお願いします。
サブレポートの数値を参照する際、数量を集計したコントロールはどう指定すれば良いのでしょうか。
式ビルダで選択できるのは元々あった(集計前の)コントールだけで、集計したところが表示されないので困っています。
どうぞよろしくお願いします。
- 213 :198:2009/10/01(木) 19:57:19
- >>209
1976年生まれです
>>211
ヘッダーに氏名、住所、生年月日などを入れると
A4用紙に収まらなくなったので困ってたのです。
もうちょっと工夫してみます。
- 214 :名無しさん@そうだ選挙にいこう:2009/10/01(木) 23:15:41
- >>213
俺より2年先輩か
ちなみに、俺も勤怠とか給与担当やっているから、つくっているけれど、こんなインターフェース
じゃないんだよね。今手元にないから、スクショとか出せないけれど、かなりいろいろ作り込んで
いるから、これと同じ物 もしくは それ以上の物つくれっていわれたらすぐ作れる。
ただ、言語化して伝えるのがとても難しい。
土日だったら、明日そのプログラムのスクショとって見せようと思うけれど。
- 215 :名無しさん@そうだ選挙にいこう:2009/10/04(日) 21:53:48
- おねがいします
2003使ってます。
アクセスからcopyfromrecordsetで、表が作成してある既存のエクセルシートに
あるクエリを出力しています。
出力先のエクセルに、クエリ内のレコードの総数に合わせて
表を閉じてくれるように組みたいのですが、
access側からのvbaでは操作できませんでしょうか?
よろしくお願いします
- 216 :名無しさん@そうだ選挙にいこう:2009/10/04(日) 22:15:35
- またおまえか
- 217 :名無しさん@そうだ選挙にいこう:2009/10/04(日) 23:19:36
- またかよって感じね
なぜにExcel VBA の話をここで質問するのだろうか
- 218 :名無しさん@そうだ選挙にいこう:2009/10/05(月) 06:58:17
- accessでExcel VBAを参照設定すれば、グラフだって作れます。
- 219 :名無しさん@そうだ選挙にいこう:2009/10/05(月) 11:14:39
- 2007なら、マルチユーザ利用でも安定してる?
- 220 :名無しさん@そうだ選挙にいこう:2009/10/05(月) 14:09:17
- 申し訳ありませんが、質問させてください。
以下の3台のPCがあります。
1.VISTA Home Basic
2.VISTA Home Basic
3.XP Home Edition
※3台ともAccess 2003 ランタイムで動作してます
1にはmdbファイルを置いてあります。
2,3にはそのmdbをリンクテーブルとして参照しているmdeファイルがあります。
(これは同一のmdeファイルです)
3でフォームを開いた後に、2でフォームを開こうとすると、ひたすら読み込み中。
その後、3のフォームを閉じると、2のフォームが開きます。
(逆に2でフォームを開いた後なら、3でもフォームも開けました)
こんな現象なのですが、原因が分かる方いらっしゃいましたら、ご教授お願いします。
- 221 :名無しさん@そうだ選挙にいこう:2009/10/05(月) 19:26:19
- 【 システム環境 . 】 Windows2000, Access2000?
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 否
【 検索キーワード 】 WHERE
WHEREを使ってある条件に一致するもののみ
抽出しているようなのですが、
(そのデータでは項目が1のもののみ
抽出している)
単純にWHERE記述の所だけ削除しても
だめなのでしょうか?
全ての情報を引き出したいのですが
- 222 :名無しさん@そうだ選挙にいこう:2009/10/05(月) 19:42:10
- >>221
エスパー希望
- 223 :名無しさん@そうだ選挙にいこう:2009/10/05(月) 19:51:08
- >>220
接続できているみたいなので、確認すべき点は2つあると思われる。
A.1のmdbの共有モードとかレコードロックを変えて確かめる。
B.1のmdbが置いてあるフォルダの権限に2と3から接続するユーザを追加してみる。あとから接続するユーザがldbにアクセスできないのかもしれない。
>>221
**項目1が1であるレコードselect**
select * from テーブルA where 項目1=1;
**テーブルAの全レコードselect**
select * from テーブルA;
- 224 :名無しさん@そうだ選挙にいこう:2009/10/05(月) 22:44:56
- テーブル名や項目名に**使うな、超解り難いだろ
- 225 :サザエボン:2009/10/06(火) 15:02:26
- >>215
Dim MyXL As Object
Set MyXL = GetObject(GetLinkedDBName("kintai"), "Excel.Sheet")
Dim db As DAO.Database
Dim intNo As Integer
Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
Set CN = CurrentProject.Connection
RS.Open "勤怠エクスポート", CN, adOpenKeyset, adLockOptimistic
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True '--- A
MyXL.worksheets("sheet1").Select
intNo = 1
Do Until RS.EOF
intNo = intNo + 1
'MyXL.Application.cells(intNo, 1).value = RS!支給年月
'MyXL.Application.cells(intNo, 2).value = RS!経理所場コード
'MyXL.Application.cells(intNo, 3).value = RS!氏名
'MyXL.Application.cells(intNo, 4).value = RS!職員コード
・・・以下中略・・・
RS.MoveNext
Loop
- 226 :名無しさん@そうだ選挙にいこう:2009/10/06(火) 21:14:47
- 表を閉じろよ
- 227 :サザエボン:2009/10/06(火) 22:43:13
- >>226
いや、Loopの下もあるんだけれど、入りきらなかった。
ごめんちゃい
- 228 :名無しさん@そうだ選挙にいこう:2009/10/06(火) 23:01:06
- Nothing
- 229 :名無しさん@そうだ選挙にいこう:2009/10/07(水) 09:32:57
- 221
* で検索
- 230 :198:2009/10/07(水) 16:14:09
- >>214
レスありがd
http://hatenachips.blog34.fc2.com/blog-entry-32.html
こんなのを発見しました。
こいつを弄ってみます。
- 231 :名無しさん@そうだ選挙にいこう:2009/10/09(金) 03:04:51
- 【 システム環境 . 】 Windows XP, Access 2003
【 VBAが使えるか .】 はい
【参考にしたサイト】
http://allabout.co.jp/internet/database/closeup/CU20021003/
http://allabout.co.jp/internet/database/closeup/CU20070913A/
AccessでMySQLに接続し、データベースの内容を変更できませんか?
MySQLはLinuxに入っています。
具体的には、
MyODBCをインストールし、ODBCでMySQLに接続するのはできました。
ただ、accessで開くと、中身は見れるのですが、変更することはできません。
accessで変更し、MySQLに反映させることはできませんか?
accessで開くでは、ファイルの種類を「ODBCデータベース」にして、コンピュータデータソースから
選んでいます。(リンクテーブルです)
- 232 :名無しさん@そうだ選挙にいこう:2009/10/09(金) 09:24:51
- >>231
> Microsoft Access が自動的にテーブルからユニーク レコード識別子を
> 決定しない場合、ソース テーブルの各横列をユニークに特定するため、
> 各カラム、もしくはカラムのコンビネーションの確認が要求されること
> がある。使用したいカラムを選び、OK を選択する。
も実行している?
NGの場合は
Dmyでもいいから各テーブルに数値型の uniq key 作ってる?
#pgsql <-> Access だとそんな制約があった気がする
#うそだったらすまん
- 233 :231:2009/10/09(金) 15:13:23
- >232
> Microsoft Access が自動的にテーブルからユニーク レコード識別子を
> 決定しない場合、ソース テーブルの各横列をユニークに特定するため、
> 各カラム、もしくはカラムのコンビネーションの確認が要求されること
> がある。使用したいカラムを選び、OK を選択する。
で解決しました。
ありがとうございます。
- 234 :名無しさん@そうだ選挙にいこう:2009/10/09(金) 16:05:02
- 最近は頭がうまく働かないという人が多いな。
どうも空気中のオゾンの濃度が上昇してるようで、これが原因みたいなんだな。
オゾンの濃度が上昇すると、人間の呼吸機能が害される。人間の呼吸器の機能が
低下すると、体内に取り込まれる酸素の量が減少する。すると脳にまわる酸素が
不足するようになって、脳の機能が低下する。脳の機能が低下すると頭が疲れやすく
なり、文字とかをたくさん読んだり書いたりすることが難しくなってきたりするし、複雑な
思考をすることも難しくなるんだな。
ちなみに一酸化炭素の致死濃度は1500ppmに対し、オゾンの致死濃度は50ppmで、
単純計算でオゾンの毒性は一酸化炭素の30倍強い。
http://www.showaboss.co.jp/sub2-safety02.htm
http://ja.wikipedia.org/wiki/%E4%B8%80%E9%85%B8%E5%8C%96%E7%82%AD%E7%B4%A0
生活環境基準では0.05ppm(50ppb)が安全基準の上限なんだが、実際にはこの基準を
超える地域というのが最近は結構多い。
http://www.jamstec.go.jp/frcgc/gcwm/jp/japan.html
このオゾン濃度が上昇する原因なんだが、最近はバイオ燃料を自動車で使うことが
原因として指摘されたりしている。
http://tvert.livedoor.biz/archives/50893079.html
http://wiredvision.jp/blog/wiredscience/200706/20070606133755.html
通常のガソリン・軽油は炭素と水素原子だけで構成されるんだが、バイオ燃料(バイオエタノール)の
場合、酸素原子も燃料に含む。そしてその酸素原子がエンジンが吸入する空気中の酸素分子と
結合してオゾン(O3)になるのが原因ではないかと言われている。
- 235 :名無しさん@そうだ選挙にいこう:2009/10/09(金) 21:40:50
- >>231
できるか、できないかときかれれば、できるよ。実際にやってたし。
でも、accessであるが故の限界がすぐに訪れる。ちょっと複雑なことすると
遅くて使い門にならなくなる。素直にPHP+MySQLとかにしたほうが良いよ。
欲を言えばPHP+PostgreSQLがいいかな。実務ではこれを使ってる。
- 236 :名無しさん@そうだ選挙にいこう:2009/10/09(金) 23:45:30
- こんばんわ。
みなさんは、ACCESSで どのようなデータベースを作成していますか?
ちなみに俺は、名刺データベースを作っています。
名刺の情報を入力して、検索できるようにしています。
データベースを作るのが楽しくてたまりません。
でも、アイデアうかばないんです。
仕事に役立つデータベースを紹介して下さい。
- 237 :名無しさん@そうだ選挙にいこう:2009/10/10(土) 03:34:41
- >>236
「必要は発明の母」って言葉を知っているか。
アイディアが浮かばないということは、現状では名刺(顧客)管理ぐらいしか
あなたの業務では必要が無いということだろう。
恐らくたいていの人はあなたと逆で、
「アイディアはあるんだけど、そのアイディアを実現するスキルが無い」
なんじゃないかな?
- 238 :サザエボン:2009/10/10(土) 07:11:54
- >>231
ODBCリンクで、テーブル一覧がAccess側で見えているなら、普通そのまま
テーブル開いて、直接読み書きできるが?
できないのだとしたら、ODBC接続の設定をつくる場面で、ログインアカウント
を別途つくったユーザアカウントか何かにしていて、さらにそのユーザアカウント
が出来ることが、MySQL側でリードオンリーに設定されているからだと思うが?
俺の場合、身内で使うだけなので、rootアカウントで全部読み書きできるように
している。ただ、クエリの場合、作り方が変だと、読み書きができなくなる。これは
主キーの取り扱いに関する問題だから、Access単体でも起きるので、別問題。
- 239 :名無しさん@そうだ選挙にいこう:2009/10/10(土) 15:42:05
- >>238
それ主キーの問題ということですでに解決済みじゃね?
- 240 :サザエボン:2009/10/10(土) 17:47:43
- >>239
あ、本当だった 俺、馬鹿だな・・・・
だから、駄目野郎って言われるんだな。なんか凹んだよ
- 241 :236:2009/10/10(土) 23:30:44
- >>237
たしかに必要は発明の母ですね。
でも、必要だと気づかないだけで、
他人に言われてみれば、あぁそのDBいいなぁって思えるじゃん。
他人がどんなDBを作っているか知りたいんです。
- 242 :名無しさん@そうだ選挙にいこう:2009/10/10(土) 23:54:21
- 殆どの人間は業務で発生する「大量データ」の入力・加工作業だ
言っちゃ悪いが名刺のデータ管理なんぞはエクセルで十分。
毎日100人との名刺交換が365日続くようならそこで初めてDBの出番だよ
- 243 :236:2009/10/11(日) 00:33:07
- 名刺DB以外にもDBはつくっていますが、
名刺の数が500をこえると、DB作った方がいいと思います。
36500枚になる前に、なにかまずいと気づくはず。
フィールドの数が多いし、備考欄もつけて、付加情報を入力したり、
名刺の画像も添付したりしたいので、アクセスで作りたいです。
URLやメルアドも入力するので、エクセルだと、横長すぎるとおもいます。
というか、エクセルだと、ミスドラッグで、
セルのデータが移動してしまうのが
こわいんです。
- 244 :名無しさん@そうだ選挙にいこう:2009/10/11(日) 00:41:45
- ↑なに?この人?
- 245 :名無しさん@そうだ選挙にいこう:2009/10/11(日) 01:03:33
- >>236
えーと、マジレスすると、Accessアプリってエンタープライズ系ではなく
EUCに特化した使い方が多いので、「仕事に役立つデータベース」と
きかれると、本当に特定の部署内の特定の誰かにしか関係ない(理解
できない)ほど業務寄りだったりします。
なので、書いてもまったく誰の参考にもならないどころか、下手をすると
何を書いているのかすら分かってもらえないくらいニッチだったりするので、
「○○のためのツール」と書いたところで、はたしてあなたの参考になるかどうか。
それよりも、いますぐ必要ではなくても、関数レベルやクラスモジュール
レベルで使えそうな機能を収集しておきましょう。何か作りたいものが
ひらめいたとき、引き出しが多いほど実現が早いですから。
- 246 :236:2009/10/11(日) 01:13:09
- >>245
マジレスありがとう。
必要としている人しか、
「これは使えるDBだ」と感じられないものなんですね。
- 247 :名無しさん@そうだ選挙にいこう:2009/10/11(日) 01:41:38
- 名刺500枚程度なら桐にしとけばいいだろw
- 248 :名無しさん@そうだ選挙にいこう:2009/10/11(日) 03:24:13
- 別に名刺の枚数でExcelや桐を勧める必要は無いじゃん。
確かに、少数の名刺管理をするためにAccessを購入するとかならともかく
すでに持っているのなら、Accessを使うべきだと思うのだが。
- 249 :名無しさん@そうだ選挙にいこう:2009/10/11(日) 07:44:56
- 目的と手段が完全に逆になってるアフォへの皮肉だろ
- 250 :名無しさん@そうだ選挙にいこう:2009/10/11(日) 13:47:42
- >> 243
> URLやメルアドも入力するので、エクセルだと、横長すぎるとおもいます。
>> 243 は横方向にしか入力する発想しかできないんだろうな。
イタすぎる。
- 251 :名無しさん@そうだ選挙にいこう:2009/10/11(日) 14:54:41
- すみません。初心者です。質問です。
500MB、120万件のデータに対し、あるフィールドを
テキスト型→数値型に型変更をしようとすると64万件に減ってしまいます。
どうなってんだと思い、通しNoをつけようとオートナンバー型でIDを作ろうとしたら、
「クエリを完了できません。クエリ結果のサイズがデータベースの最大サイズ(2GB)より大きいか、
クエリ結果を一時的に保存するディスクの空き容量が不足しています」となります。
空き容量は18GBあるんですが。。どうすればよいでしょうか??
- 252 :名無しさん@そうだ選挙にいこう:2009/10/11(日) 15:35:58
- >>251
>テキスト型→数値型に型変更をしようとすると64万件に減ってしまいます。
数値に変換できないフィールドが削除されているんじゃないの。
- 253 :251:2009/10/11(日) 17:22:04
- >>252
ありがとうございます。その通りでした。
しかし相変わらずオートナンバーはできません。。
- 254 :サザエボン:2009/10/11(日) 18:29:27
- >>253
まずなんだけれど、二つある。
1つは、現状のまま、数値型に変換してどうこうなんだけれど、一時的にファイルが増加した際に、
Accessのファイルが2GBを越えているんだと思われる。もしくはメモリ不足?
もしそうなら、現段階でかなり来ている状態なので、二つ目として、MySQLへデータ部分をマイグ
レーションをお勧めする。MySQLにその為のツールがあるから、結構簡単に移植できる。
で、オートナンバーフィールドをどうするかなんだけれども、一度マイグレーションして、MySQL Administrator
上で、テーブルの設定に於いて、IDという数値型のフィールドを用意して、オートインクリメントにして
おく。さらにそれをPrimary keyにしておく。
これで大丈夫だったような。もしできなくても、一度移植した後データだけを消して、上の設定を施し、
Access側から、ODBCリンクで接続して、そこへ追加クエリで流し込むと上手くいくよ。
それだけの件数でそれだけのファイルサイズがあると、かなりAccessでの取り回しは面倒くさくなるか
ら、そういう手法を一度考慮した方がいい。MySQLをお勧めする理由は、マイグレーションが楽なのと
Administratorというツールが素敵だからだ。
大仕事にはなるけれど、一考していただけたらこれ幸いです。
- 255 :サザエボン:2009/10/11(日) 18:33:06
- >>253
MySQLでお勧めなツールは
ビジュアルにデータベース設計できるこれ Accessじゃすでにお馴染み
http://www-jp.mysql.com/products/workbench/
そして、さっき話してた奴
http://dev.mysql.com/downloads/gui-tools/5.0.html
ODBCドライバ
http://dev.mysql.com/downloads/connector/odbc/5.1.html
- 256 :サザエボン:2009/10/11(日) 18:34:41
- >>253
ただ、MySQL Migration Toolkitはちょっといい加減な部分もなくはない。
たとえば、テキスト型とメモ型をはき違えるケースもあったりするので、こちらでそれを
手修正するケースも実際あったりした。また、型の取り扱いがAccessとMySQLとでちょ
っと違うからここは勉強が必要。
ただ、概ね良好だから、お勧めできる。一度挑戦してみて欲しい。それくらいデータがあ
ると、かなりつかいでがありそうだ。
- 257 :サザエボン:2009/10/11(日) 18:36:07
- >>253
あ、あと、もし、興味があって、一度挑戦してみたいというならば、手順はちょっと今まとめている。
よかったら、聞いてくれ。
- 258 :253:2009/10/11(日) 18:51:08
- >>サザエボン
ありがとうございます。いきなりハードル上がった気がしますが、やるだけやってみます。
- 259 :サザエボン:2009/10/11(日) 19:04:08
- >>258
いや、そんなに大変じゃないから。ちょっと時間は掛かるけれど。
ただ、同じ手法がAccess同士でも可能だ。
データが空で同じファイルを用意。空の方はオートナンバーのフィールドを用意
しておく。そのテーブルとリンクテーブルを貼って、データが入っている側のもの
を、追加クエリかなにかで、ごちゃっと渡してやる。
で、テキスト型を数値型に変換するほうは、解決できているなら尚結構。
- 260 :253:2009/10/11(日) 19:36:51
- >>259
>で、テキスト型を数値型に変換するほうは、解決できているなら尚結構。
いや、テキスト型で7桁の番号を数値型に変換すると、例えば同じ番号100個くらい続くうち、
半分くらいが削除されてしまうんです。見た目には同じ番号が続くように
見えるのに。。ヘルプ見ても検索しても情報出てこないし。
56個同じ番号が続いて全部削除されてたり、60個のうち2個だけ削除されたり、
で結局120万件が64万件になるんですよね。長整数型→十進数にしても同じでお手上げです。
- 261 :名無しさん@そうだ選挙にいこう:2009/10/11(日) 20:01:04
- >>260
事例
・全角・半角が入っていたり
・前後に空白があったり
・文字列のあとに枠外にスペースが
- 262 :サザエボン:2009/10/11(日) 20:42:15
- >>260
重複有りにはなっているんだよね?あとは、そうだな・・・クエリで、Val関数をつかって
みて、そのクエリで移植をしてみるとかな。
Valに変換できなかったものの原因を探ればいい。>>261氏のいう問題点ってのがきっと
あるはず。
- 263 :253:2009/10/11(日) 21:01:37
- >>261
>>262
いろいろとありがとうございます。重複はありです。空白や半角はチェックした
つもりですが、valやってみます。
- 264 :名無しさん@そうだ選挙にいこう:2009/10/12(月) 03:14:51
- >>253
苦労されてるみたいですね。
Accessはファイルサイズが2GBまでしか扱えません。
500MBあるファイル内で今回のようなことを行うと上限にぶつかる可能性があります。
この問題を回避するために、こんな方法はいかがでしょうか?
1.新しい空のmdbファイルを作成する。
2.そのファイル内に変換元ファイルのテーブルへのリンクを作る。
3.作ったリンクを元に[テーブル作成クエリ]を作る。
4.クエリを実行する。
※クエリをデザインする際は、テキスト型から数値型に変換を行うフィールドについて
Val([フィールド名]) としておいてください。(詳細はVal関数でヘルプを参照)
これで新しいファイルに希望されるテーブルが作成されるはずです。
その他、元ファイルにある変換不要なテーブルは新しいファイルに直接インポートします。
すべての作業が終われば、500MB以下に最適化された状態のファイルができるはずです。
- 265 :253:2009/10/12(月) 04:32:30
- >>264
できました、というかできそうです。
新しくきれいなデータベースを変換、インポートながら作っていく感じでやれば
いいんですね。ありがとうございました。
- 266 :サザエボン:2009/10/12(月) 08:09:59
- >>265
ただ、いずれにせよ、もうかなり上限に近い状態なので、これ以上データを
蓄積するなら、移行したほうが望ましいというのはあるので、MySQLも一考
していただけたらと。
フリーだしね。
なにかのきっかけで、MDBが壊れたら目も当てられないので。
- 267 :名無しさん@そうだ選挙にいこう:2009/10/12(月) 09:34:44
- 一考するならSQLServerExpressEditionへのアップサイジングだろ
- 268 :名無しさん@そうだ選挙にいこう:2009/10/12(月) 10:10:18
- 正気かよ
- 269 :名無しさん@そうだ選挙にいこう:2009/10/13(火) 11:06:29
- スレ違いかもだけど、知ってたら教えてください。
サーバ(Windows Server 2003)にACCESS2000が入っており、そこにMDBを置いています。
別PC(Windows XP Home Edition SP3)で前述のMDBを開いた場合、通常はXPマシンのタスクとして
実行されますが、サーバのタスクとして実行したい場合どのような方法がありますか?
(MDBで処理するデータ件数が多いので、ネットワークに負荷が掛かることを懸念しています)
思いついたのは以下の方法ですが、諸事情により実現できません。
1.リモートデスクトップでサーバに接続して実行(ネットワークの規約でポートを閉じているので不可)
2.サーバにMDBを実行するタスクを作成してネットワーク経由で実行(ユーザの権限の制約により不可)
サーバを直接操作してMDBを開くしかないのでしょうか。
- 270 :名無しさん@そうだ選挙にいこう:2009/10/13(火) 12:14:59
- >>269
アクセスにはサーバー機能はありませんから、
1が駄目ならサーバー機を直接操作するしか方法はないです。
- 271 :269:2009/10/13(火) 14:21:25
- >>270
ご回答ありがとうございました。
その後スクリプトなどについても調べてみましたが、やはりサーバを直接操作するしかなさそうですね。
しばらく直接操作で運用してみます。
- 272 :名無しさん@そうだ選挙にいこう:2009/10/13(火) 19:05:47
- ■OS:WinXP SP2
■Access:Access2007
質問させてください。
フォームに非連結コントロールを貼り、サブフォームにデータシートビューを表示させています。
メインフォームからサブフォームのカレントレコードを移動させたいのですが、どのようにしたら
よいでしょうか。
よろしくお願いいたします。
- 273 :名無しさん@そうだ選挙にいこう:2009/10/13(火) 19:20:31
- 質問です!
Access2003です。
コンボボックスを二つ作り
コンボ1のAを選ぶとコンボ2の表示が1に対応したものしか表示しないようなものを作ったのですが
有給申請書なので選ぶ順番は人それぞれで
上記の逆のパターンも設定できたらなと思うのですが
出来るのでしょうか?
- 274 :名無しさん@そうだ選挙にいこう:2009/10/13(火) 21:00:11
- >>272
単純な移動だけなら、Docmd.GoToRecordで。
検索っぽくするなら、また別の話
>>273
出来る。たぶんVBA使うことになる。
- 275 :名無しさん@そうだ選挙にいこう:2009/10/13(火) 21:12:12
- >>274
ありがとうございます
やり方としては、今作ってあるのをそのままにして
コンボ1にはコンボ2の記述
コンボ2にはコンボ1の記述って感じでよろしいでしょうか?
この二つのボックスでどちらを選んでも絞込みが出来るようにしたいと
思っています
- 276 :274:2009/10/13(火) 22:03:51
- >>275
概ねそれでいいのだけど、ちょっと困ったこと起こるかも知れない。
それはそれで考えてみるがよろし。
- 277 :名無しさん@そうだ選挙にいこう:2009/10/13(火) 22:07:10
- >>276
明日会社でやってみます。
困ったことが起こって行き詰ったらよろしくお願いします。
- 278 :名無しさん@そうだ選挙にいこう:2009/10/13(火) 23:35:47
- >>277
お 断 り し ま す 。
- 279 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 00:23:48
- 任意のフィールドでソートを実行すると、レコード件数が倍近くに
増えるんですけど、何が考えられますか?
- 280 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 01:33:17
- >>279
ソートの実行後にフィルターしてた条件が外れてるんじゃない?
- 281 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 01:54:31
- >>280
フィルターはもともとかかってないようです泣
- 282 :281:2009/10/14(水) 02:59:41
- 自己レスです フィルタ、ソートなしの状態でテーブルに表示されている
レコード以外のレコードが、ソートをかけたときにわらわらと
現れて結果としてレコード数が倍になっているようだ、
というところまで判明しました
- 283 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 08:12:39
- >>282
2007SP2だろ?
- 284 :281:2009/10/14(水) 09:27:12
- そうです 不具合ですか?
- 285 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 09:39:17
- >>284
一度MoveLast しないとレコードカウントが得られないのは仕様だから不具合ではないが…
従来よりも想定外の挙動が表面化しやすくなった
- 286 :272:2009/10/14(水) 10:12:52
- >>274
ありがとうございます。
検索して指定したいのですが、どのような方法があるのでしょうか。
- 287 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 14:06:17
- >>286
http://hatenachips.blog34.fc2.com/blog-entry-128.html#more
- 288 :274:2009/10/14(水) 14:35:43
- >>286 BookMarkを使う
サブフォームのレコードセットをRecordsetCloneプロパティで取得
取得したレコードセットでFindメソッド使って検索、BookMark取得
NoMatchがFalseなら、
取得したBookmarkをサブフォームのBookMarkプロパティに代入
Findメソッドは4つあるから使い分けな
検索結果が複数行になるなら、Filterのほうがいいかもな
- 289 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 15:43:33
- 環境 Windowsxp / Access2003
レポートに関して教えてください。
レコードソースにテーブルを指定し、フィルターして印刷をする。
1レコード1ページというレポートを作成しています。
その中で、フィールド1の値が"AAA"の場合は、テキストボックス1を表示、
フィールド1の値が"BBB"の場合は、テキストボックス1を非表示にしてテキストボックス2を
表示させるとか、各ページ(レコード)のデータに合わせてコントロールを操作させる方法が
ありましたら教えてください。
- 290 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 16:28:00
- すません、ファイルのデータ(最大 1,000件程度)をACCESSのテーブルにインポートするとき、
元ファイルはCSVとエクセルどちらのが便利ですか?
環境はWindowsXP + ACCESS2000です。
大差ないかも知れませんが、なんとなく気になりました。
>>289
VBAできるならそのレポートの詳細のFormatイベントなどで
フィールド1の値を判定してテキストボックス1&2の表示/非表示を切り替えたらいいです。
- 291 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 16:36:17
- >>290
便利の定義が分からんからなんとも言えん。俺的にはデータ次第。
Excelファイルは表示形式が有効でもあり厄介でもある。
有効なのはデータ型の設定がきちんとしていれば不要なこと。
厄介なのはデータ型の設定がきちんとしたExcelファイルでない場合、
例えば日付を文字列として読み込むことがあること。
- 292 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 19:06:12
- >>289
条件付き書式でいいじゃないか
- 293 :272:2009/10/14(水) 21:45:58
- >>288
ありがとうございます。
下記のようにしてみましたが、移動してくれませんでした。
何か足らないでしょうか。
[レコード更新SQL発行]
Me.SubForm.Requery
Dim rsSub As DAO.Recordset
Set rsSub = Me.SubForm.Form.RecordsetClone
rsSub.FindFirst "ID = " & m_CurrentID
If Not rsSub.NoMatch Then
Dim bm As Variant
bm = rsSub.Bookmark
Me.SubForm.Form.Bookmark = bm
End If
Set rsSub = Nothing
※「SubForm」はサブフォームの名前です。
※NoMatchのif文内に入ることも確認しました。
よろしくお願いいたします。
- 294 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 22:42:19
- 質問です。
環境 WinXP/access2007
テキストボックスが2つあるとします。
テキストボックス1にフォーカスがある時にキーを押した時、
キーダウンの処理の前に、テキストボックス2にフォーカスを
移動させたいのですがどうすればいいでしょうか?
よろしくお願いします。
- 295 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 22:48:49
- キーダウンの処理って、具体的には何?
- 296 :294:2009/10/14(水) 22:51:53
- 294の追記です。
もしテキストボックス1がフォーカスを持っていたら
テキストボックス2にフォーカスを移動
キーダウンの処理
というようにしたいです。
- 297 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 22:59:35
- テキストボックス1のキークリック時イベントに下記VBAかマクロを設定する
--------VBA--------
Private テキストボックス1_KeyDown(KeyCode As Integer, Shift As Integer)
Me.テキストボックス2.SetFocus
キーダウンの処理
End Sub
--------マクロ-----------
コントロールの移動
テキストボックス2
キーダウンの処理
- 298 :294:2009/10/14(水) 23:01:45
- >>297
ありがとうございます。
ただ、テキストボックスやリストボックスにフォーカスがあるかどうか
調べる方法はないでしょうか。
- 299 :名無しさん@そうだ選挙にいこう:2009/10/14(水) 23:03:40
- Me.ActiveControl
- 300 :294:2009/10/14(水) 23:08:45
- >>299
出来ました。
ありがとうございました。
- 301 :274:2009/10/15(木) 01:36:33
- >>293
293のコードで作動確認できた
BookMark使えないレコードセットもあるらしいから、これが原因やろか
Bookmarkableで可否確認は可能。
BookMark使用は必須ではないから>>287のリンク先参考も試してみれよ
更新したレコードに移動ってのをしようとしてるんか?
ま、そうであっても動作してるけども。
- 302 :272:2009/10/15(木) 10:12:47
- >>301
わざわざ試してもらってありがとうございます。
作動確認できたのですか...
287さんのリンク先は、サブフォームの移動ではなく検索方法に見えるのですが、間違って
いるのでしょうか。
確認できたファイルをいただけたら最高なのですが...
ご検討いただけないでしょうか。
- 303 :名無しさん@そうだ選挙にいこう:2009/10/15(木) 11:18:35
- 2バイト文字を使用して名前付けをされたユーザー定義関数をクエリで呼び出した時の未定義関数エラーについて
Utilitya.mda を自動参照しているために起こる公式バグらしいです
ところが参照設定をみても Reference を使って監視しても出てきません
恒常ループかなにかで自動参照したら適宜キルしようと考えたのですが、どうしたら検知できますでしょうか
あるいはエラー回避する方法ありますか
- 304 :名無しさん@そうだ選挙にいこう:2009/10/15(木) 13:05:34
- オブジェクト名に日本語は積極的に使ってるほうだけど
さすがに落とし穴が掘ってあるとわかってる場所は歩かないよ
- 305 :名無しさん@そうだ選挙にいこう:2009/10/15(木) 13:42:11
- >>304
業者に委託した部分で勝手に直せないとゆー罠に会社がはまったので
最終手段として、呼び出す際に別のプロシージャ噛ませようかとは考えてますが
- 306 :名無しさん@そうだ選挙にいこう:2009/10/15(木) 14:55:53
- だったら業者に
- 307 :274:2009/10/15(木) 15:52:31
- >>302
287のリンク先はフォーム上のカレントレコード移動であって、同じだよ。
これで出来なければ別の原因があると思う。
移動は出来てるけど、どっかでRequeryしちゃってるとか
>ご検討いただけないでしょうか。
割と基本的な内容と思うので検討に値しない。
理解を深めれば解決できるレベルにあると思う。まぁがんばれ
- 308 :名無しさん@そうだ選挙にいこう:2009/10/15(木) 16:58:21
- >>306
出来るならそうするけどね、会社としてそもそも検討してないみたい
しかし使えとゆう
- 309 :名無しさん@そうだ選挙にいこう:2009/10/15(木) 20:08:23
- WindowsXPSP2、Access2003、Excel2003です。
サブフォーム「SF_AAA」に表示したデータを
保存場所「C:\」、ファイル名「BBB.xls」でエクスポートするのに
DoCmd.OutputTo acOutputForm,"SF_AAA","Microsoft Excel(*.xls)","C:\BBB.xls"
と書いてますが、これだとワークシート名がサブフォーム名「SF_AAA」になってしまいます。
ワークシート名を指定する方法はありませんでしょうか?
「docmd.outputto エクスポート シート名」などでググっても分かりませんでした。
よろしくお願いいたします。
- 310 :名無しさん@そうだ選挙にいこう:2009/10/15(木) 20:32:34
- >>309
その先の処理は、EXCEL VBAを使ってください
http://pc11.2ch.net/test/read.cgi/bsoft/1254055959/
- 311 :名無しさん@そうだ選挙にいこう:2009/10/15(木) 21:00:16
- サブフォーム名を目的のシート名にすればいいじゃ〜〜ん
- 312 :名無しさん@そうだ選挙にいこう:2009/10/15(木) 22:31:51
- >>303
> ところが参照設定をみても Reference を使って監視しても出てきません
そらそやろ。
アドインだから、参照設定と関係ないし。
Dim vbp As Object 'VBProject
Dim msg As String
For Each vbp In VBE.VBProjects
msg = msg & vbp.Name & vbCr
Next
MsgBox msg
検知ならこれで。
解除は知らん。
日本語の関数名なんて危ない橋よう渡らんわ。
- 313 :名無しさん@そうだ選挙にいこう:2009/10/16(金) 01:02:49
- >>309
アクセスでエクセル制御するならここでかまわんだろ
誘導するのはエクセルVBA制御に話が及んでからじゃね
エクセルのライブラリを参照で読み込んで、データ一つごとにセルなりに渡せばおっけ
簡単なのは、テーブルなりクエリなりのデータを二元配列に格納して直接渡す
例えば2x5のデータを配列myexRenge(1,4)に格納して
ワークシート.シート.Range(“A1,B5“)=myexRange
あるいはアクセスで表示してるデータだけ該当セルに書き込んだり
エクセル側の制御はエクセルVBAだから、向こうだけどな
- 314 :名無しさん@そうだ選挙にいこう:2009/10/16(金) 01:08:31
- もう面倒だからワードVBAでエクセル操作しとけや
- 315 :272:2009/10/16(金) 10:23:24
- >>307
そうですか...ありがとうございました。
サブフォームだけ移動できないのがとっても腑におちないのですが、
がんばってみます。
- 316 :名無しさん@そうだ選挙にいこう:2009/10/16(金) 14:54:40
- サブフォームのRecordSourceをくエリにでも焼きなおしてそのOBJをエクセルへ吐き出せばいいんじゃね
- 317 :名無しさん@そうだ選挙にいこう:2009/10/17(土) 15:48:01
- ACCESS 2003 から 2007 へ移行してるんだけど
2003の条件付書式で設定できた背景等の「薄黄色」が
2007には無くて困ってる(選択できる色のパレット?に無い)
条件付書式の背景を数値で設定できたりする?
BackColor=10092543 みたいに
- 318 :名無しさん@そうだ選挙にいこう:2009/10/17(土) 15:52:14
- おれはUIからだと無理だったんでVBAでやってる。
あの黄色、薄すぎず濃すぎずでいい色だよなw
- 319 :サザエボン:2009/10/18(日) 21:30:26
- >>318
俺も大好き。
- 320 :名無しさん@そうだ選挙にいこう:2009/10/19(月) 02:27:33
- 実は俺も好きだった
- 321 :309:2009/10/19(月) 10:46:23
- 実は私も好きでした。
>>310-313
休みに入ってしまいレス遅くなりました。ありがとうございます。
[エクスポート(E)]ってボタンをクリックすると
Excelにエクスポートされるようにしてるんですが、
AccessVBA側に「エクスポートされたExcelファイル」側の処理を書く
ってのがよう分らんので、とりあえず現状のままで行くことにします。
支障があればサブフォーム名を目的のシート名にすることも検討します。
ありがとうございました。
- 322 :名無しさん@そうだ選挙にいこう:2009/10/20(火) 00:48:41
- 表形式で入力する時に新規レコードを上に追加する事ってできませんか?
- 323 :名無しさん@そうだ選挙にいこう:2009/10/20(火) 02:07:01
- できない。てか、質問内容がわかりにくい。
フォームヘッダに新規入力用のフィールド作ったらいいんじゃね
そんで、Insert後ソートするみたいな。こういうことか?
- 324 :名無しさん@そうだ選挙にいこう:2009/10/20(火) 10:26:31
- >>312
トンくす
検知出来ました
解除出来ねえ……
VBライブラリだと再読み込みとかあるらしいんだがACCだけじゃむりぽいなあ
- 325 :名無しさん@そうだ選挙にいこう:2009/10/20(火) 19:35:31
- >>323
データシートとか表形式のフォームで入力する時って、
新規に入力する時に下に空欄レコードが追加されるじゃないですか。
それを上へ上へ追加できれば、フォーム開いた時にわざわざ下にスクロールして入力する必要も無くなるかなと思って。
- 326 :名無しさん@そうだ選挙にいこう:2009/10/20(火) 21:46:33
- モニタの前で逆立ちしてろや
- 327 :名無しさん@そうだ選挙にいこう:2009/10/20(火) 22:19:27
- >>325
代替案が>>323に書いてあると思うのであった
- 328 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 04:39:31
- http://channel9.msdn.com/shows/Access/Microsoft-Access-2010-Demo/
俺は期待している
- 329 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 07:41:05
- どれかかな
1.追加 → ソート更新
2.追加 → 追加順でクエリソート
3.常にレコードが1のテーブルAに上書き → AとマスターデータテーブルBを合体した目的のデータテーブルCをゲット
→ CをBとして更新
4.全レコードずらす → レコードの頭に上書き追加
最後のはDAOだかなんだかでレコード制御すると楽
- 330 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 08:10:29
- よく読んだら違うな
データにオートナンバーでも付けといて、フォームのデータソースで並び替えるだけだな
- 331 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 08:20:37
- >>325
フォーム開くときに、新規レコードにジャンプ
- 332 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 15:13:04
- 普通に入力専用フォームにする・・・では駄目なのか?
- 333 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 19:33:32
- 色々ありがとうございます。
- 334 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 21:28:55
- 質問です。
windowsXP/access2007
複数の値を許可してあるフィールドの値を
別のテーブルに取り出す処理をしているのですが
「rs!フィールド名」だと型が一致しませんと
言われます。
どうしたらいいですか?
- 335 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 22:21:45
- お願いします。
アクセス2003使用しています。
アクセスから、予め用意しておいたエクセルの任意のレンジに
レコードセットを出力しています。
(したいこと)
レコードセットの件数に応じて、
件数が多く複数ページにまたがるなら
用意しておいたエクセルの上数行(ヘッダやフィールド名)を
次のページにも表示させたい。
どうかよろしくおねがいします!
- 336 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 22:27:07
- ま た お ま え か
- 337 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 22:45:40
- えらそうに間違った回答して講釈たれてる人がいるので紹介します。
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1131973031
- 338 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 22:48:55
- 型を一致させたら?
- 339 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 23:04:52
- >>335
とりあえずACCESSのことはほっといて、EXCEL側で
> 用意しておいたエクセルの上数行(ヘッダやフィールド名)を
> 次のページにも表示させたい。
これをできるやり方はわかりますかね?
「ウィンドウ」−「ウィンドウ枠の固定」でできるはずです。
そこから先はACCESS側からデータを流し込むだけでいいはずです。
- 340 :名無しさん@そうだ選挙にいこう:2009/10/21(水) 23:45:57
- >>334
格納されている複数の値は該当フィールドのValueプロパティから一時的な
レコードセット作ってループさせて列挙
- 341 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 01:03:05
- >>335
どう考えてもAccessの質問じゃないだろ
2003までのExcelならメニューのファイルからページ設定、
2007ならページレイアウトの印刷タイトルからタイトル行を設定
次からは書き込むスレをよく考えろよ
- 342 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 01:30:07
- まあそうカリカリしないで・・・
あなたのレベルならどちらで質問すべきか判断できるでしょうけど
そうでなければこういう質問はどっちに書いていいかわからなくても
仕方ないと思いますけどね。
- 343 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 04:07:01
- 選択クエリのフィールドのところで型変換するような式や関数を使い、
その下の抽出条件で型変換後の条件を指定すると型不一致のエラーが
出ると思いますが、対処方法はありますか?
- 344 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 04:41:58
- >>343
引数にキャストできない範囲が含まれてるんじゃね
- 345 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 12:57:39
- >>344
何度も確認しましたがたぶん大丈夫なんですよね・・
- 346 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 14:08:50
- >>343
変換前のデータを抽出してから変換してんじゃね
- 347 :344:2009/10/22(木) 14:34:44
- >>343のやりたいクエリはできるので、変換できないフィールド値を
含むレコードがあるのではないだろうか。
変換結果を情報関数で確かめるのがよいかと。
- 348 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 14:37:14
- >>346
たぶんそうだと思います。抽出は返還後のデータ型に対して
行いたいのですが、抽出条件は返還前のデータ型に対して働くのでは
ないかと思います。変換してそのまま抽出するにはどうしたらよいですか?
- 349 :344:2009/10/22(木) 14:58:46
- >>348 なんだってーって感じしたからシンプルなもので確認した
text型フィールドに 2009/10/22,2009/10/23 要は文字列
クエリフィールド:式1: CDate([txtdatestr])
抽出条件:#2009/10/22#
とした場合、2009/10/22(文字列)のレコードは抽出され、出力フィールド値はDate型
抽出条件を"2009/10/22"とした場合も同様、ただこれはAccessが勝手に解釈してると思う
- 350 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 15:06:20
- 抽出条件も同じ関数組み込めばいいんじゃね
- 351 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 15:20:32
- 抽出条件でデータ型が一致しませんっていうアラートだと思うので
抽出条件入れずにクエリ出力してみればいいんじゃね
#エラーってレコードあったら、Whereあたりでクエリ実行時にエラーになる。
- 352 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 15:51:07
- 目的の元データと型、クエリのSQL貼ってくれると解りやすいかも
クエリ右クリックSQLビューで確認できる
- 353 :348:2009/10/22(木) 15:54:01
- レスありがとうございます。
関数は文字列を引数にして一部Replaceで入れ替え
Valで数値にしてDoubleで戻す単純なものです。
抽出条件なしだとうまく変換できており、エラーはありません。
仕方がないので関数のみ抽出条件なしのクエリを作り、
そのクエリに対し抽出条件のみの
別のクエリを施行することで回避できました。
抽出条件に関数を組み込んでも同じでした。一気にできると便利なんですが。
- 354 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 16:15:14
- ちょっと複雑なことするとクエリがへそ曲げるって感じだねぇ
多段でクエリ組んだ回避策ってことか
- 355 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 16:23:40
- >>353記述の関数で試してみたけど、期待通りの動作してるけどなぁ
CDbl(Val(Replace([フィールド1],"#","0")))
環境に由来かなぁ:access2007-SP2
- 356 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 17:17:58
- Windows XP+ACCESS 2000なのだが、
テーブルA(EXCELからインポート)のレコードを全件テーブルBに新規追加するとき、SQL文は
"insert into テーブルB select 項目A,項目B, ... from テーブルA"
を1回発行するだけでOKなのだが、
テーブルAには無い項目がテーブルBにありその項目(数値型でオートナンバー型は使えない)に
1からカウントアップした連番をセットしたい場合、SQL文の1回発行では無理?
やっぱりVBAでテーブルAのレコード分ループしなきゃいけない?
VBAでカウントアップ用グローバル変数を用意して、そいつをカウントアップして連番を返す関数を作って
SQL文に埋め込んでみたんだが、レコードごとにカウントアップできなかったヨ...orz
あと、試しにテーブルAにオートナンバー型の項目を追加してみたんだが、
EXCELからインポートしたときインポートできなかったレコードが発生してね...orz
(テーブルAに主キーを設定していないから謎)
>>291
ありがd、遅レスすまそ
>>343
男は黙ってクエリを分けれ。
- 357 :348:2009/10/22(木) 17:38:06
- >>352一応載せます
SELECT DISTINCT tableA.fieldA, tableA.fieldB, tableB.fieldC,
Dokuji_Kansuu([tableA]![fieldD]) AS AAAA, tableC.fieldE,
tableC.fieldF, Replace([tableC]![fieldG],1,2) AS [BBBB],
tableD.fieldH, tableD.fieldI, DateAdd("yyyy",7,DateValue([tableC]
![fieldE] & "/" & [tableC]![fieldF] & "/" & [BBBB])) AS CCCC,
DateDiff("d",[CCCC],[tableA]![fieldB]) AS DDDD, Format([fieldB],
"yyyy/mm/dd") AS EEEE FROM (tableB INNER JOIN (tableA INNER
JOIN tableC ON tableA.[fieldA] = tableC.[fieldA]) ON tableB.
[fieldJ] = tableA.[fieldK]) INNER JOIN tableD ON tableA.[fieldA]
= tableD.[fieldL] WHERE (((tableA.fieldB) Is Not Null) AND
((tableB.fieldC)="FFFF") AND ((tableC.fieldE) Is Not Null));
これで先のDokuji_kansuuによりtableAのfieldD(文字列)が数値に変換されるのですが、
抽出がどうも(他のフィールドでも)・・リレーションのせいかな??
ac2007sp2です
- 358 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 18:37:01
- 質問です。Accessで在庫管理ができると知りましたが(XP/Access2003)
ネットショップ(楽天・アマゾン)の在庫数を直接操作(データ送信)できるのでしょうか。取得のみですか?
お願いします。
- 359 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 18:55:47
- 回答です。Accessで在庫管理アプリケーションを作成することはできますが、
ネットショップ上のデータを直接操作できるかどうかはここではわかりません。
ネットショップ運営者に問い合わせください。
お願いです。
- 360 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 19:03:18
- >>359
了解です。常識的に考えてローカル上の操作だけですよね。
ありがとうございました。
- 361 :360:2009/10/22(木) 19:05:02
- あ、すみません。語弊があるかもしれません。
セキュリティの都合上という意味です。
- 362 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 20:50:09
- 次は問題が再現する最小構成まで削る作業だな
- 363 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 20:59:02
- >>356
> VBAでカウントアップ用グローバル変数を用意して、そいつをカウントアップして連番を返す関数を作って
> SQL文に埋め込んでみたんだが、レコードごとにカウントアップできなかったヨ...orz
関数に引数渡し忘れてるだけじゃねえのか。
- 364 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 21:20:05
- お忙しいなか、申し訳ありません。
ひとつのテーブルの中にA〜Gの7つのフィールドが用意されています。それぞれに値
が入っており、それが1レコードだけ入っています。
このテーブルのレコードを指定回数だけ、演算させて、その結果を2レコード目、3レコード
目と指定回数に応じてインサートしたいと思っています。
どのようなコードを書けば、1レコード目にいれたものを演算して、指定回数分結果をレコード
に追加できるでしょうか?
- 365 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 21:51:08
- 解るように具体的に書けよ
- 366 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 22:04:18
- 発想がExcelだな。
- 367 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 22:35:13
- >>365
具体的には1レコード目には、現在の財政状態を入れてあります。
Aには現金 Bには営業費 といった具合にGまで様々な要素を入れてあります。これは
フォームから入力するようにしてあります。そして、10ヶ月なら10とテキストボックスに
入れてその値を指定回数として使いたいと思っています。
テーブルの名前はshikinとなっています。
この状態でボタンを押した場合に2レコード目以下に1ヶ月後の予想、2ヶ月目の予想を
次々と10ヶ月分予想値として1行目のレコードをベースに演算して入れたいと思ってます。
このあとそのテーブルを元にグラフを構築したいと考えております。
演算の式はつくってあるのであとはこれを指定回数だけ廻して入れるためにはどうしたら
良いのかよくわかりません。
- 368 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 22:40:48
- Accessではそのような演算結果はテーブルに格納させるべきではありません
Excelならすぐできます。
- 369 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 22:42:01
- ああほんとこりゃエクセルだな
アクセスは基本的にエクセルで言うところのオートフィルだと考えれ
セルに入れたデータは必要のある時だけ修正、それ以外は全部抽出するもんだ
目的に合うデータを計算したり加工したりする
- 370 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 22:43:41
- >>337
TWESTさんが別アカ取って反撃してますよ
- 371 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 23:06:18
- http://lotte-fits.jp/dance/play_dance.php?v=7m58J5-N0Dw
accessの新曲公開!?に、ちなんで最新情報♪
- 372 :名無しさん@そうだ選挙にいこう:2009/10/22(木) 23:18:44
- >>367
桐にしとけ
- 373 :名無しさん@そうだ選挙にいこう:2009/10/23(金) 09:53:24
- >>372
「桐にしとけ」か……久しぶりに聞いたぜ
俺達はそんな大切なことも忘れていたんだな……
桐にしとけ
- 374 :356:2009/10/23(金) 10:26:09
- >>363
レスども。
カウントアップ関数は引数無しで、関数内でグローバル変数をカウントアップしてその値を
返すようにしているのだす。
で、SQL文をクエリに貼り付けて実行してみたんだが、関数の結果が出る項目の値は全項目同じで、
クエリを実行するごとにその項目がカウントアップされることを確認・・・関数ってレコードごとに
実行されると思ってたもんだから「?」なんだが・・・ちなみに以下がカウントアップ関数のコードです。
' グローバル変数
Private gNo As Integer ' カウントアップ用
'
' カウントアップ用変数をカウントアップ
'
Public Function getNo() As Long
gNo = gNo + 1
getNo = gNo
End Function
- 375 :名無しさん@そうだ選挙にいこう:2009/10/23(金) 10:35:23
- >>374
SQL UPDATE に入れたのか?
大抵は正しい連番が返るんだが、もちろん保証されない
順番が保証されるレコードセット回す方法でSQLと大差ないスピードで出来るぞ
Me.Recordset.Cloneを使う
アクセスの中の人は同じことしてるから
桐にしとけば簡単
- 376 :374:2009/10/23(金) 11:27:52
- >>375
レスども。
関数はINSERT文のSELECT句に入れてました。
insert into テーブルA select getNo() as [NO],項目A,項目B,項目C FROM テーブルB
てな感じで。
これがまずいのかなぁ...orz
言われてみればACCESS内だからSQL文で実行してもレコードセットをくるくる回しても
処理速度は大差ないですよね
(DBサーバのORACLEとかSQL SERVERだとレコード件数次第で事情が変わると思うけど)、
おとなしくレコードセットをくるくる回します、ありがとうございました!
PS.桐、一度見てみたいかも。
- 377 :名無しさん@そうだ選挙にいこう:2009/10/23(金) 18:12:09
- >>376
getNo関数の戻り値はLong型なんだけど、テーブルAのフィールド[NO]は
きちんと長整数型(Long型)になってます?
- 378 :名無しさん@そうだ選挙にいこう:2009/10/23(金) 19:54:10
- if
- 379 :367:2009/10/23(金) 19:56:25
- >>372
>>373
>>369
>>368
絶望しました
演算結果を部署毎にいくつか期間毎に保存し比較しようと思ったのですが、駄目なのですね。
- 380 :名無しさん@そうだ選挙にいこう:2009/10/23(金) 20:09:44
- >>379
演算結果を部署毎にいくつか期間毎に比較することは簡単にできますけどねぇ・・・
その場合でも>>364の方法は取らないのが普通です。
[集計クエリ]あたりで検索して、データベースの基本的な部分を学びましょう。
- 381 :363:2009/10/23(金) 20:30:26
- >>374
いやだから、引数渡し忘れてるだろそれ。
引数を渡さないといけないという基礎知識が抜けているのか?
JETはアホじゃないから、引数を取らない関数の戻り値は毎回
同じという前提で最適化して、1回だけ呼び出した関数の戻り値を
以後再利用する。T-SQLで言うところの決定的関数扱い。だから、
レコードごとに実行させたい関数の呼び出しには、必ず引数を
渡す必要がある。仮に関数内部ではそれを使用しないとしても。
慣例的には主キーを渡すのが一般的。
もし主キーを引数に渡してカウントアップされないのなら、
別の問題だから、再現方法を晒せ。
- 382 :375:2009/10/23(金) 21:55:56
- >>374
じゃ、一応JETが進化する前のAccess97までは順番保証された方法
ドゾー
↓
http://support.microsoft.com/kb/410756/ja
- 383 :名無しさん@そうだ選挙にいこう:2009/10/23(金) 22:34:40
- >>381 これだと行けてそれだと行けない、と。
理詰めで当てるのは難しそうだ
- 384 :名無しさん@そうだ選挙にいこう:2009/10/24(土) 08:04:09
- もうやめて、revreselqaesのライフはゼロよ!
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1131973031
- 385 :名無しさん@そうだ選挙にいこう:2009/10/24(土) 18:09:00
- ご教授願います。
表の結合時に"left join"や"right join"を使用しますが、
joinの前に"outer"を付けて保存したいです。
しかし、"outer"を付けて保存し、再度開くと自動的に省略されます。
何か設定方法はご存知でしょうか?
使用Access:2003
OS:XP
- 386 :名無しさん@そうだ選挙にいこう:2009/10/24(土) 18:21:47
- >>385
accessがSQLを解釈して書き換えてるんだろうから、無理じゃね
- 387 :名無しさん@そうだ選挙にいこう:2009/10/24(土) 18:29:19
- >>385
クエリを使うのではなく、VBAのレコードセット作成におけるRunSQLなどで使う
しかないのでは?
SQL文を直接書き込んでも、Accessが自動的に書き直してしまうと思うので。
- 388 :名無しさん@そうだ選挙にいこう:2009/10/24(土) 20:22:54
- >>386->>387
ご返答ありがとうございます。
Accessの仕様である旨、了解しました。
解決方法があると思ったのですが…orz
VBAはあまり知らないので勉強します。
- 389 :名無しさん@そうだ選挙にいこう:2009/10/25(日) 17:20:26
- すいません、質問させてください。
【 システム環境 . 】 WindowsXP Access2002
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 否
08001:[ODBC SQL ServerDriver][SharedMemory]SQL Serverが存在しないか、アクセスが拒否されました。
ODBCWorkspace(17)
01000:[ODBC SQL ServerDriver][SharedMemory]ConneectonOpen(vonnectl)
ODBC呼び出しが失敗しました。
DAO,Workspace(3146)
(共通モジュール/SetConnect)
というエラーがでてしまい、開けなくなりました。このエラーはどういったエラーなんでしょうか。
- 390 :名無しさん@そうだ選挙にいこう:2009/10/25(日) 17:38:18
- AccessからSQLサーバ上のデータを開こうとして、
SQLサーバーが開けない(起動していない?)か
アクセス権がない(ユーザー名やパスワードが違う)ので
開けないですよ。
という意味みたいですけど。
MDBじゃなくて外部のDBと接続する環境なんでしょうか?
だったら外部DBの問題の可能性も。
そうでないなら、MDBファイルを開くように設定しなおすとか。
- 391 :名無しさん@そうだ選挙にいこう:2009/10/25(日) 18:15:42
- >>389
正常に動いていたものが動作しなくなったということですよね?
モジュールSetConnectを変更したのでなければSQL Server側の問題ですよ。
- 392 :398:2009/10/25(日) 19:56:35
- 回答ありがとうございます。
>>390
エラー内容の解説ありがとうございます。SQL Serverがなんなのかもわからなくてググったりしていました。
折角説明してもらったのですが、すいません。よくわかってないです。>MDBじゃなくて外部のDBと接続する環境
>>391
そうですね、数日前までは普通に使用していたので、特に変更などはしていないと思います。
SQL Server側で何か設定しなおせば使えるのでしょうか。
- 393 :メモリ君 ◆7mDj3mSGOQ :2009/10/25(日) 20:26:44
- >>392
よく見えないのだが、SQL Server側というけれど、それって遠隔地に
あるんじゃないのかい?それと、管理は別の方がやっているとか。
アカウント消されたとか、サーバーメンテナンスで止まっていたとか、
そういうのがわからんと。とりあえず、こちらが何もしていない、手も
加えていないのなら、SQL Serverで接続する際に何かがあったとみ
て間違いない。
- 394 :メモリ君 ◆7mDj3mSGOQ :2009/10/25(日) 20:30:10
- >>392
ちなみに、MySQLでtestserverというODBC接続の設定をシステムDSNに作っていた
際に、MySQL側でアカウントを消しただけなら、ログイン画面が出るだけ。
一方停止していた場合には、ODBC接続 --testserver-- への接続に失敗しました
というメッセージが出るよ。
そちらは多分、ADPか何か使っているか、VBAでコネクトするような仕組みにしてある
んだと思うけれどね。
- 395 :名無しさん@そうだ選挙にいこう:2009/10/25(日) 20:48:22
- [SharedMemory]ってローカルじゃね?
- 396 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 17:44:34
-
【 システム環境 . 】 WindowsXP SP2とwindows Vista SP1, それぞれAccess2003 Runtimeのみ
【 VBAが使えるか .】 はい
【 VBAでの回答 】 否
【 検索キーワード 】 Access2003 Runtime エラー 2709.内部エラーが発生しました
Access2003で開発した経理ソフトをAccess2003 RuntimeのみインストールされてるPCで動かしています。
今週入って、今までwindows updateをかけてなかったのでupdateかけれるものを全てかけて
経理ソフトを立ち上げましたら「Access2003 Runtimeを設定しています・・・」という画面が表示された後に
エラー 2709.内部エラーが発生しました。
(Global_PIA_OWC11 )
とOKボタンのみのエラーメッセージが出てきました。
OKボタンを押せばその後は問題なく経理ソフトが動くのですが、このエラー画面が気になり
エラー内容を検索かけてみた所、windows updateのKB947319をかけたら上記エラーが出るような旨出ていました。
ですが現在経理ソフトがインストールされているPCにはKB947319がインストール済の為に削除する事ができません。
他の検索結果では「Windows Installer CleanUpユーティリティ」でRuntimeをアンインストールしてインストールしなおすという
解決案も出ていましたが、このPCではユーティリティを使ってRuntimeをアンインストールしようとしてもエラー 2709~と同じエラー画面が出て
アンインストールする事も出来ませんでした。
このエラー画面を消す方法はあるのでしょうか?
- 397 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 18:32:24
- >>396
単なる推測だが、Fixitでどうよ。
- 398 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 19:13:44
- 有る処理をしました。
結果、VMのサイズがスゴイことになりました。1.24GBもVMサイズがあり、メモリ消費も800Mも
あります。処理は終わったのに、これらが解放されません。
VBAではきちんと、レコードセットなどは全部nothingしているのに、プログラムを再起動しない
と、これらメモリが解放されません。
どうしたら、解放できるのでしょうか?
- 399 :396:2009/10/26(月) 19:50:23
- >>397
Fixitで検索し、結果で探せたFixit(Windows Update のコンポーネントをリセット)
ttp://support.microsoft.com/kb/971058/en-us
を利用してみましたが問題解決はできませんでした。
- 400 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 19:54:05
- >>398
VMってなんのこと?仮想メモリ?
- 401 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 19:57:03
- >>400
そうそう タスクマネージャを見ると、一番右にでてくる奴。
この処理を行っている最中はどんどん膨らんでいく。
で、処理が終わっても、何も変わらない。
で、別の処理を行うとメモリ不足と吠えるという体たらくなのです。
- 402 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 20:10:22
- >>401
そこまではっきりわかるほど漏れてるならすぐデバックできるでしょ。
さっさとやれ。
- 403 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 21:02:02
- >>402
ところが、何がいけないのかさっぱりわからん。
このルーチンってのは、単純なもので、テーブルにあるデータをレポートで個別の
PDF作成するようにDo_Untilのループで100個ほどつくるもの。
PDFは2007のPDFプラグインによるもので、DoCmd を使う物。
DBEngine.SetOption dbMaxLocksPerFile, 200000 を指定した後に
Dim My_Db As DAO.Database
Dim My_Rst As DAO.Recordset
Dim My_Rst2 As DAO.Recordset
Dim My_Path As String
Set My_Db = CurrentDb()
Set My_Rst = My_Db.OpenRecordset("SELECT * FROM テスト ORDER BY 社員コード")
Set My_Rst2 = My_Db.OpenRecordset("SELECT * FROM 社員マスター WHERE (((社員マスター.レポート)=-1) AND ((社員マスター.経場コード) Between 100 And 200));")
My_Path = CurrentProject.path & "\pdf\"
Do Until My_Rst2.EOF
DoCmd.OpenReport "メール送信", acViewDesign, , , acHidden
Application.Reports("メール送信").Filter = "社員コード='" & My_Rst2!社員コード & "'"
DoCmd.Close acReport, "メール送信", acSaveYes
DoCmd.OutputTo acOutputReport, "メール送信", acFormatPDF, My_Path & "\" & My_Rst2!社員コード & ".pdf", False, 0
My_Rst2.MoveNext
Loop
My_Rst.Close: Set My_Rst = Nothing
My_Rst2.Close: Set My_Rst2 = Nothing
My_Db.Close: Set My_Db = Nothing
何か足りないのか?それとも、やり方を間違えているのか・・・・
- 404 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 21:25:15
- だから、普通にデバッグしろよ
- 405 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 21:44:20
- >>403
>DBEngine.SetOption dbMaxLocksPerFile, 200000 を指定した後に
たぶん、このせいだろう。ルーチンを抜ける前にMaxLocksPerFileを規定ぐらいに戻してみては。
- 406 :名無しさん@そうだ選挙にいこう:2009/10/26(月) 21:55:53
- >>404
ちょっとやってみる。
>>405
一番最後に9500で指定を入れてみる
もう一回挑戦してみます。優しく教えていただき感謝です。
- 407 :名無しさん@そうだ選挙にいこう:2009/10/27(火) 07:50:32
- PD……F?
- 408 :374:2009/10/27(火) 10:23:48
- 遅レスすまそ、知恵熱出てた。。
>>377 はい、LONG型になってます。
>>381 引数渡しの基礎知識が抜けていました、そういうことだったんですね!試してみます!!
>>382 参考にします。
皆さんありがとうございましたm(_ _)m
- 409 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 13:48:38
- すいません、質問させてください。
WindowsXP, Access2002
PCを起動すると起動すると最初に
重大なエラー。言語ごとのリソースファイルC:Program Files\MicrosoftSQL Server\
80\Tools\Binn\Resources\1041\SQLSVC.RLLを読み込めなかったので実行を継続できません。
と出たのですが、ググっても解決方法が載っていないままのサイトしか見つからず、途方にくれています。
どのようにすれば直るのでしょうか。SQLSVC.RLLっていうのはどこからかDLできるものでしょうか?
- 410 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 14:01:09
- それ、Accessの問題っていうより、MicrosoftSQL Serverの問題なんじゃね?
- 411 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 14:07:25
- >>410
Accessのファイルの一部が開けないのでAccessがおかしいのかなと思ってました。
\1041といフォルダは見つかったのですが、SQLSVC.RLLはありませんでした。
他のPCに入っているSQLSVC.RLLをコピーしてきてもいいものなのでしょうか?
- 412 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 14:15:30
- 重大なエラーと出ました。 <http://windowsxp_toshiba.pasokoma.jp/d_436151.html>
SQLSVC.RLLというのはMicrosoftSQL Serverというソフトの1部です。
スタート→ファイル名を指定して実行→msconfigと記入してOK。
システム構成ユーティリティのスタートアップまたはサービスに
SQL Server関連のものがあったらチェックを外して再起動してみてください。
コマンドと場所の間の縦棒をダブルクリックするとフルパスが見られます。
とのこと。
- 413 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 14:18:38
- >>412
はい、自分がぐぐって見つけたサイトってそこのことです。
最終的に SQL Server 何回か確認してやりましたけど元に戻らないです。
とあったので、もしかして直ってないまま終わっているのかとおもって質問させてもらっています。
- 414 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 14:22:39
- 教えて!保険市場 SQLServer2005のサービスが起動しない <http://oshiete.hokende.com/qa5186337.html>
まず、「スタート」→「すべてのプログラム」→「SQLServer2005」→「構成ツール」→「SQLServer構成マネージャ」の順に開いて下さい。
そうすると、SQLServerConfigurationManaerと言うのが開きますから、その中で、状態が停止のプログラムが無いでしょうか?
もしあれば、そのプログラムをダブルクリックしたらプロパティが出てきますから、「開始」をクリックしたら、実行に状態が変わります。
それで、動かなかったプログラムが動きました。
とかは?
- 415 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 14:26:30
- >>414
ありがとうございます。試してきます!
- 416 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 14:43:46
- MSSQLSeverスレに行けというところだが、
行ったところで、ボケカス言われて解決しねぇかもだな。
- 417 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 17:24:58
- うん、ここの民は基本いい人。
- 418 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 18:42:42
- ウォームハートエスパーの棲むスレだな。
- 419 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 22:49:21
- そういう空気は大切にしないとな
- 420 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 22:56:06
- 質問があります。
会社に行かないと物がないのと会社から書き込みできないので多少抽象的になってしまうこと
お許しください。
今帳票フォーム(ログイン)とメインフォームがあります
ログイン画面で社員番号を入れてログインボタンを押します。
番号が存在するならメインフォームが立ち上がるのですが、
この立ち上がると同時に、ログイン画面で入れた社員番号の情報を
メインフォームに載せたいと思っています。
入力した番号だけはメインフォームに参照させることが出来たのですが
その他に名前と部署をメインフォームのテキストボックスに入れたいのです。
ログインしたとき(入力は社員番号のみ)に社員情報をすでに表示したいと言うのが目的です。
テーブルは社員マスタの中に番号、名前、部署で主キーは番号です
よろしくお願いします
- 421 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 23:07:22
- >>420
Vlookup関数を使えばいいと思うよ〜〜
- 422 :名無しさん@そうだ選挙にいこう:2009/10/28(水) 23:08:10
- DLookUpでしたw
- 423 :名無しさん@そうだ選挙にいこう:2009/10/29(木) 20:48:58
- os:WinXp Version:2007です。
突然ですが、お聞きしたいのですが、
氏名 点数 週塾日
Aさん 50点 平成21年5月3日
Bさん 55点 平成21年6月1日
・
・
・
の様なテーブルがあり、そこから
たとえば、
年・月 月別習塾者 60点以上
21年5月 20人 10人
のように作りたいのですが、月別の人数合計は出せても、
○○点以上の合計人数を出す方法がわかりません。
四苦八苦してやっても、それぞれの点数(60点、61点、62点)の
合計人数しか出せずに困っています。
どうにかなる方法ありませんでしょうか
- 424 :名無しさん@そうだ選挙にいこう:2009/10/29(木) 20:58:08
- >>423
あります!
- 425 :名無しさん@そうだ選挙にいこう:2009/10/29(木) 21:11:13
- DCount("点数","21年5月",点数>59)
とかかな?
- 426 :名無しさん@そうだ選挙にいこう:2009/10/29(木) 23:11:58
- >>423
SELECT format(#5/1/2009#,"e") & "年" & format(#5/1/2009#,"m") & "月"as 年・月, Count(テーブルA.氏名) AS 60点以上, (SELECT Count(*) FROM テーブルA WHERE
((テーブルA.週塾日) Between #5/1/2009# And #5/31/2009#)) AS 月別週塾者 FROM テーブルA
WHERE (((テーブルA.点数)>=60) AND ((テーブルA.週塾日) Between #5/1/2009# And
#5/31/2009#));
- 427 :名無しさん@そうだ選挙にいこう:2009/10/30(金) 19:38:01
- Accessだけでメシ食えるの?
- 428 :名無しさん@そうだ選挙にいこう:2009/10/30(金) 20:14:42
- >>427
飯食っている人いるんじゃない?
俺は、バイトで作ったことあるよ。
- 429 :名無しさん@そうだ選挙にいこう:2009/10/30(金) 20:22:45
- けっこう中小では需要あるんね。
企業内で担当になっちゃう人もいるでしょ。
- 430 :名無しさん@そうだ選挙にいこう:2009/10/30(金) 21:29:13
- 20年前はコボルで食ってたけど気がつけば今はAccessが飯の種になってるな
- 431 :名無しさん@そうだ選挙にいこう:2009/10/30(金) 21:51:54
- Accessってかなり作り込まないと実は使えないよな。
- 432 :名無しさん@そうだ選挙にいこう:2009/10/30(金) 22:06:12
- 2週間もあれば1本作れる。
- 433 :名無しさん@そうだ選挙にいこう:2009/10/30(金) 22:56:44
- そんなにかかるのか?
- 434 :名無しさん@そうだ選挙にいこう:2009/10/30(金) 22:59:58
- 頭は使うが工夫次第で工数はどんどん削減していける
- 435 :名無しさん@そうだ選挙にいこう:2009/10/30(金) 23:41:09
- >>433
業務で使うアプリはテストに時間がかかるからね。
- 436 :名無しさん@そうだ選挙にいこう:2009/10/31(土) 22:13:44
- アプリっていえるのかどうかビミョー
- 437 :名無しさん@そうだ選挙にいこう:2009/11/01(日) 19:44:00
- 職場のシステムで出せる帳票が余りに使えないので、csvで落としたデータをAccessに取り込んで加工して帳票出してる。なんかまどろっこしい。
- 438 :名無しさん@そうだ選挙にいこう:2009/11/01(日) 20:24:38
- XP+ACCESS 2000です。
加工前データに入数マスタを当てて加工後データのようにしたいんですが、ひとつのクエリで加工できますか?
加工前データ
品名、数
A 、5
B 、2
入数マスタ
N0、品名、入数
1、A 、2
2、B 、3
加工後データ
品名、数
A 、2
A 、2
A 、1
B 、2
できそうでできないんです・・・ひらめいた方はぜひ教えてください、よろしくお願いします!
- 439 :名無しさん@そうだ選挙にいこう:2009/11/01(日) 20:57:41
- >>438
総数5を入り数2で、2,2,1で分解、入り数未満はそのままっつーことだよな
その手の要件だったらVBAでレコードセット扱う感じじゃないかな。
クエリでできるんすかね。
>>437
可能な範囲でクエリ作るくらいじゃね?
- 440 :名無しさん@そうだ選挙にいこう:2009/11/02(月) 10:08:54
- >>438
439が書いているように、join の結果をVBAで処理するのが
いいような気がする(自分ならそうするけどね)
- 441 :438:2009/11/02(月) 16:37:59
- >>439
>>440
ありがとうございました、やはりクエリでは厳しいのでVBAでレコードセットを使ってやってみます。
- 442 :名無しさん@そうだ選挙にいこう:2009/11/02(月) 18:59:53
- Access2007の評判はどう?
- 443 :名無しさん@そうだ選挙にいこう:2009/11/03(火) 00:06:24
- >>442
MSの新作が糞なのは伝統ですよ。
- 444 :名無しさん@そうだ選挙にいこう:2009/11/03(火) 13:29:17
- なんかレポート印刷できない。
他のテキストはできるんだけど、内容が重いのかな?
- 445 :名無しさん@そうだ選挙にいこう:2009/11/03(火) 15:44:55
- 日本語でおk?
- 446 :名無しさん@そうだ選挙にいこう:2009/11/03(火) 20:59:42
- >>444
プレビューはできんの?
- 447 :名無しさん@そうだ選挙にいこう:2009/11/03(火) 22:39:04
- プレビューは出来ます。
プリンターの性能が悪いのかな?
- 448 :名無しさん@そうだ選挙にいこう:2009/11/03(火) 22:44:43
- なら、複雑なレコードソースかレポートが複雑か(D系関数の多用とか)なんかで時間がかかるだけじゃないかな?
- 449 :名無しさん@そうだ選挙にいこう:2009/11/03(火) 23:11:53
- 印刷完了する前にプリンターからエラーが出ちゃうんだ。
だからレポートの5分の1くらいしか印刷されない;;
- 450 :名無しさん@そうだ選挙にいこう:2009/11/04(水) 08:07:48
- プリンターからエラーがでるなら。スレ違い。
- 451 :名無しさん@そうだ選挙にいこう:2009/11/04(水) 08:53:52
- 同じような経験で、プリンタのメモリを特注で増やしたが無駄だった
アクセスやプリンタとは無関係な、Windowsのプリンタのキャッシュみないななんたらの設定して解決した、詳しくは忘れた
- 452 :名無しさん@そうだ選挙にいこう:2009/11/04(水) 10:26:25
- >>449
いつの間にか直るケースもあるが、プリンタドライバ再インストールやWindowsUpdateなどで直るかも?
ちなみにページ数が分かっているなら何回かに分割してページ指定で印刷できたはず、最悪1ページずつ印刷・・・面倒だが。
- 453 :451:2009/11/04(水) 10:50:34
- 思い出した、スプール フォルダ を空きのデカイドライブに移動した
数十ページ印刷すると直ぐにスプールが膨大になって止まる
- 454 :名無しさん@そうだ選挙にいこう:2009/11/04(水) 12:08:36
- あー
そんな話聞いたような
- 455 :名無しさん@そうだ選挙にいこう:2009/11/04(水) 22:35:16
- >>453
おお、印刷できた。ありがとう。
- 456 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 02:42:50
- ID 野菜 料理
1 にんじん カレー
2 ピーマン サラダ
のテーブルがあるとする。ボックスを二つつくり、
コンボBOX フィールドの絞込み、
テキストBOX 検索用打ち込み
フォームを「検索」としてクエリを
select * from テーブル where forms!検索!コンボBOX
Like "*" & Forms!検索フォーム!入力 & "*";
とやっても何も出てこない。
forms!検索!コンボBOXの代わりに、
直接のフィールド名(「ID」「野菜」「料理」)に置き換えればうまくいく。
DoCmd.Requeryはしてるんだけど。
どうやったら良いか教えてください。
- 457 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 05:22:37
- >>456
select * from テーブル where forms!検索!コンボBOX
Like ""*" & Forms!検索フォーム!入力 & "*"";
じゃないかなと。間違ったらゴメン。
- 458 :456:2009/11/05(木) 07:17:21
- >>457
select * from テーブル where forms!検索!コンボBOX
Like "*" & Forms!検索!入力 & "*";
とやってうまくいきませんでした。同じフォーム内です。
>.456はフォーム名表記ミスです。ごめんなさい。
- 459 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 09:26:10
- >>458
>>457の書いたやつとそれ違う。
Likeのあとよく見れ。"が足りない。
- 460 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 13:11:58
- >>456-459
シングルクォートじゃないとエラーになるんじゃないかな?
SELECT * FROM テーブル WHERE Forms!検索!コンボBOX
Like "'*" & Forms!検索フォーム!入力 & "*'";
あと、念のため実行時にForms!検索!コンボBOXとForms!検索フォーム!入力を
Debug.Printしてみてください。
.Textだけセットされていて、.Valueがセットされていないかもしれないので。
- 461 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 15:04:38
- PG素人な質問ですいません。WORDのVBAから書き出した計算式をACCESS上で実行したいんですが
ACCESSのVBAって9万文字ぐらいの計算式実行できますか?
- 462 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 16:33:10
- >>461
つ ttp://office.microsoft.com/ja-jp/access/HA012289421041.aspx
式を書き出してEval関数の引数に渡してみれ。
ググれないなら自分で試した方がはやいぞ。
- 463 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 18:52:54
- >>456
> select * from テーブル where forms!検索!コンボBOX
「forms!検索!コンボBOX」はフィールド名にはならないよ。
あくまでフィールド名称を指す文字列になるだけで。
だから、Likeで比較してもフィールドの値とじゃなく、
フィールド名称を指す文字列と比較されているだけ。
具体的に書くと、「"野菜" Like "*hoge*"」とかに
なっているだけ。
自分にはうまい方法が思いつかないけど、VBAでSQL
入れ替えないとダメじゃないかという気はする。
- 464 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 20:20:47
- >>463
コンボBOXのリストにフィールド名がセットされていればOK
- 465 :463:2009/11/05(木) 21:25:06
- >>464
ども。
試してみたけど、自分の環境だと検索されないんだよね。
列の値じゃなく、単なる文字列リテラルとの比較になっている
ようにしか見えないんだけど。
でもできる人がいるのであれば、>456 さんはできる人に教わる
のがよいのでしょう。
ということで、できない私は撤退します。汚してすまんかった。
- 466 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 21:54:17
- >>457>>459>>460
レスサンクス。「"」追加してみましたが、駄目ですね。「'」も同じ。
Debug.Printしてみました。コンボBOXでID、テキストBOXで1を打ち込んだ後
?Forms!検索!検索BOX()
ID
?Forms!検索!入力()
1
と出るので、値は代入されているようです。
>>463
検証してみましたが、確かにフィールド名が死んでいるようです。
>>464
値集合タイプ フィールドリスト
値集合ソース テーブル
他は全てデフォルトのコンボボックスです。どうしたものですかね……。
- 467 :名無しさん@そうだ選挙にいこう:2009/11/05(木) 23:25:09
- >>466
BuildCriteriaで解析させてみては?
strFilter = BuildCriteria(Me.コンボBOX, dbText, "like *" & Me.入力 & "*")
strSQL="select * from テーブル where " & strFilter
- 468 :名無しさん@そうだ選挙にいこう:2009/11/06(金) 02:22:44
- そもそも、そのクエリ句はどこに適用させてるの?
フォームのレコードソースか何か?
- 469 :名無しさん@そうだ選挙にいこう:2009/11/06(金) 09:15:58
- 質問
Access 2003 で、
同じmdbでも、通常版のアクセスではエラーにならないのに
ランタイム版ではエラーメッセージが出る場合があります。
コーディングで現在実行されているのが通常かランタイムかを知る方法はあるのでしょうか?
- 470 :名無しさん@そうだ選挙にいこう:2009/11/06(金) 21:42:30
- >>469
SysCmd メソッドのヘルプ嫁
- 471 :名無しさん@そうだ選挙にいこう:2009/11/06(金) 22:57:46
- thanx
- 472 :名無しさん@そうだ選挙にいこう:2009/11/08(日) 08:09:54
- >>469
どっかでみたような質問だな
- 473 :名無しさん@そうだ選挙にいこう:2009/11/09(月) 04:52:30
- >>467
レスサンクス。SQLをテキストに出すように組んでみた。
strFilter = "*" & Replace(Me.入力, " ", "* And *") & "*"
strFilter = BuildCriteria(Me.コンボBOX, dbText, strFilter)
strSQL = "select * from テーブル where " & strFilter
rs.Open strSQL, cn, adOpenStatic, adLockOptimistic, adCmdTableDirect
Set Me.Recordset = rs
For i = 0 To 2
Me.Controls("text" & Format(i, "0")).ControlSource = rs.Fields(i).Name
Me.Controls("lbl" & Format(i, "0")).Caption = rs.Fields(i).Name
Next
上手くいかない。二行目右のstrFilterをMe.入力に変えるとOKなので
ワイルドカードが原因みたい。出力の方法が悪いのかな?一つしか出せないし。
>>468
そです。そういう方法で考えてたのですが、
上手くいかないので上の方法に変えつつあります。
- 474 :473:2009/11/09(月) 05:19:03
- >>467
出来ましたー。
どうも
strSQL = "select * from テーブル where " & strFilter
がワイルドカードに対応していないみたい。
フィルターにしたらいけました。
- 475 :467:2009/11/09(月) 06:13:00
- >>474
んなーことない。Likeが抜けてるんじゃねか
まぁ解決したならべつにえーけどな
- 476 :名無しさん@そうだ選挙にいこう:2009/11/09(月) 07:22:21
- >>475
確かに、replace使い始めてからlike忘れてます。
ワイルドカードというよりは、「'」と「"」がいりこんでいると駄目なのかもしれません。
SQLは""で囲むので、「'」に置き換えてみたりしたのですが。
>>473
だと一つしか出力できないです。フィルタのように、
複数当てはまる場合に複数出力するにはどう書いたら良いですかね?
これも上手くいかなかった原因のような。
- 477 :名無しさん@そうだ選挙にいこう:2009/11/09(月) 17:03:02
- dim a,b as integer でbのデータ型が違うと怒られた。
dim a as integer
dim b as integer
だと怒られない。
なんでですか?
- 478 :名無しさん@そうだ選挙にいこう:2009/11/09(月) 17:07:15
- dim a,b as integer
これは
Dim a As Variant
Dim b As Integer
と等価だから
- 479 :名無しさん@そうだ選挙にいこう:2009/11/09(月) 17:15:46
- >>478
そうなの?
bがintegerなら怒られないはずなのに…
- 480 :名無しさん@そうだ選挙にいこう:2009/11/09(月) 17:18:46
- >>478
http://www.geocities.jp/cbc_vbnet/kisuhen/hensuu.html
ここに書いてありますね。bで怒られたのはおいらの勘違いかもしれない。
ありがとう。
- 481 :名無しさん@そうだ選挙にいこう:2009/11/09(月) 18:39:40
- >>477
文法が間違っています。
Dim a As Integer
Dim b As Integer
と等価なのは…
Dim a As Integer, b As Integer
です。
ちなみに、
Dim a, b As Integer
と等価なのは…
Dim a As Variant, b As Integer
ですね。
- 482 :名無しさん@そうだ選挙にいこう:2009/11/09(月) 18:47:01
- >>481
ありがとうございます。勉強になりました。
市販のmdbファイルに書いてあったのを真似していました。
件のmdbファイルをよく調べてみます。プログラマーが間違えていたら面白いなw
- 483 :名無しさん@そうだ選挙にいこう:2009/11/10(火) 02:03:50
- Vista / access2007環境
PC数台のLANで管理者だけがデータの登録・更新が可能で
一般ユーザーは特定のデータのみを閲覧できる共有システムを作ることになりました。
accessのみで構築しようと思ったのですが、調べるうちにセキュリティに不安がでてきました。
ユーザー単位のデータの隠ぺいは可能なのか?
直接データベースファイルを開かれたら? などの心配があります。
インターフェース部をVBA制御してデータベースは暗号化しておくと出来そうな感じですが
そもそもそんな事が出来るのかさえわかりません…。
ACCESS2007のみで組む場合に気をつける点など教えてください。
※管理者のPCのみaccess2007で他はランタイムを考えています。
- 484 :483:2009/11/10(火) 02:19:22
- あ、インターフェース部を共有フォルダに置いてデータベースファイルをローカルフォルダに置けば
セキュリティ的に良いような気がしてきました・・
連投すんません。
- 485 :名無しさん@そうだ選挙にいこう:2009/11/10(火) 02:50:07
- それは(--;)
- 486 :名無しさん@そうだ選挙にいこう:2009/11/10(火) 03:04:39
- テーブルのみ分離したデータ.mdbのみを共有フォルダに置き、一般ユーザーには閲覧のみできるクエリで作ったインターフェース用.mdeを配布とか。ただし、accessではちと荷が重いけどね。
- 487 :名無しさん@そうだ選挙にいこう:2009/11/10(火) 04:00:29
- >>483
分割してバックエンドaccdbはパスワードで縛る必要があるわな。
でもってフロントエンドaccdeでリンクテーブル使う方法もありだが、
これってセキュリティレベルは超低い。ちょっと分かる人であれば書き込みが可能。
もう少し縛るなら、リンクテーブル使わない方法でフロントエンドを作るしかないべな。
あとはユーザ管理の機能がないから、自前でUI制御するくらいか。
セキュリティ気にするならSQLserver使うべきなのだが、accessでも似たようなことが
できなくもない。まぁ限界があるってこと。
- 488 :名無しさん@そうだ選挙にいこう:2009/11/10(火) 10:14:40
- >>483
拡張子である「.mdb」を取っちゃうという手もある。
こうするとぱっと見ではACCESSだとわからない。(プログラムからは普通に繋がる)
まあファイルをオープンすると同じフォルダにldbファイルが出来ちゃうから詳しい人には
わかってしまうけど・・・。
セキュリティの問題はどこまでやれば安全ってのがないからね。
相手が本気で色んな知識や技術を修得してきたらそれなりの対処をしていてもクラック
されてしまうだろうし。(例えば誰もいない時や一瞬の隙をついて個人のPCからデータ
抜き出したりとかデータロガーでログインパス取得したりとかやり方はいくらでもある。)
「完璧なセキュリティは無理です」ってことを言っといたほうがいいと思う。
あっ、でもデータ分けるとかmdbにパスワード付けるとか一応のことはしとくべき。そうすれ
ば何かあった時もセキュリティ的な対策はしていたということを主張できるし。
- 489 :488:2009/11/10(火) 10:18:16
- >>483
書き忘れたけどmdbを置く共有フォルダを隠し共有に設定しておくのもオススメ。
地味な方法も組み合わせると結構効果あるよ。
- 490 :483:2009/11/10(火) 12:11:35
- ご教授ありがとうございます。
まだまだ知識がないので
教えてもらったことを調べていきたいと思います。
ネットワークシステムやセキュリティ云々を言うなら
ACCESSのみで組むべきじゃない感じですね。
こういう低予算かつ極小のシステムってどういう構成がいいんだろう
ACCESS+MySQLなどでしょうか…
ACCESSにユーザー管理の機能があったらすごく楽なのにと思います。
- 491 :名無しさん@そうだ選挙にいこう:2009/11/10(火) 19:19:18
- >>483
フロントエンドをAccessで考えるなら、SQL Server Express Edition と
組み合わせるのが無難と言えば無難かなぁ。Express Editionなら無償だしね。
- 492 :483:2009/11/10(火) 20:48:43
- SQL Serverに無償のEditionがあったんですね!
零細には手が出ない代物と思ってました…
ACCESSのみだと複雑でイレギュラーなテクニックが必要になりそうなので
データベースをSQL Serverにする構成で取り組んでみます。
ありがとうございました。
- 493 :名無しさん@そうだ選挙にいこう:2009/11/10(火) 21:13:00
- M$-SQLserverなんかで組むんならPHP+PostgreSQLで組んじゃうな。ちょっとハードル高いぞ。
- 494 :名無しさん@そうだ選挙にいこう:2009/11/10(火) 21:24:19
- 印刷物とかどうすんの
- 495 :名無しさん@そうだ選挙にいこう:2009/11/10(火) 21:28:41
- tcpdfでやってるよ。かなりハードル高いぞ。
- 496 :483:2009/11/11(水) 17:35:31
- >>487
>分割してバックエンドaccdbはパスワードで縛る必要があるわな。
>でもってフロントエンドaccdeでリンクテーブル使う方法もありだが、
>これってセキュリティレベルは超低い。
遅レスすみません。
これってリンクテーブルだとaccdbへの接続パスワードがハックされやすいからですか?
- 497 :名無しさん@そうだ選挙にいこう:2009/11/11(水) 19:19:34
- test
- 498 :名無しさん@そうだ選挙にいこう:2009/11/11(水) 19:25:18
- 失礼しました、質問です。
アクセス2007を所有しております。
教えていただきたいことはまず、、以下の内容のものはつくれるかどうかで、
どのようなテーブルを作っていくべきか助言が欲しいのです。
・何がしたいか → マンション、アパートの管理データベース
■各住宅の入居者の情報
世帯主以外にも同居者の情報も含ませる(生年月日[年齢]、性別、収入など)
住宅は退去などにより空きが出る→新しい入居者が入ることもある。
■指定した期日以前などについて年齢、入居者数などの集計はとれるか(指定した期日なので年齢がさかのぼることもある)
- 499 :名無しさん@そうだ選挙にいこう:2009/11/11(水) 21:19:23
- できるよ
- 500 :名無しさん@そうだ選挙にいこう:2009/11/11(水) 21:32:17
- >>499
ありがとうございます。まだ必死に基本書読んでる段階ですが、がんばります。。
- 501 :名無しさん@そうだ選挙にいこう:2009/11/11(水) 21:38:27
- >>498
生年月日さえわかれば年齢は計算で出る。遡る事も可能。
マン管DBだけど住民基本台帳みたいなDBつくればいいよ。
- 502 :名無しさん@そうだ選挙にいこう:2009/11/11(水) 22:35:37
- >>498
その程度なら片手間でも作れるくらい簡単だよ。
肝になる部分は少ないから。平たいDBだね。
より複雑な計算をしてってならべつだけれど、その程度の管理なら
エクセルでもやってやれなくない。
- 503 :名無しさん@そうだ選挙にいこう:2009/11/11(水) 22:56:43
- まあ、それが初めてのDBなら難しいと思うよ。経験者は色々いうけど、とにかくやってみなよ。いろいろわかるのはそれからで十分さ。
- 504 :名無しさん@そうだ選挙にいこう:2009/11/11(水) 23:07:52
- Access でセキュリティというと、 MDW を使えば充分だと思うんだが、これじゃダメなのか?
- 505 :498:2009/11/11(水) 23:24:05
- みなさんありがとう。テーブルを考えるだけでかなりかかりそうだ・・・
- 506 :名無しさん@そうだ選挙にいこう:2009/11/12(木) 00:01:49
- >>498
例えば、こんな感じのテーブルになる。
想像で適当に書いたので参考までに、あしからず。
テーブル
住宅: <住宅ID(オートナンバー)>, 住所, 物件名
住宅部屋: <住宅ID, 部屋番号>
住宅入退: <住宅ID, 部屋番号, 住宅入退ID(オートナンバー)>, 入退区分{入居|退去}, 入退日
住宅入居者: <住宅ID, 部屋番号, 住宅入退ID, 入居者ID(オートナンバー)>, 世帯主{Yes|No}, 氏名, 生年月日, 性別{男|女}, 収入
*<>が主キー。
リレーションシップ
住宅(住宅ID) 1-多 住宅部屋
住宅部屋(住宅ID, 部屋番号) 1-多 住宅入退
住宅入退(住宅ID, 部屋番号, 住宅入退ID) 1-多 住宅入居者
・指定日の空き部屋状況は、住宅部屋と住宅入退(入退日が指定日以前かつ最大のもの)を左結合(LEFT JOIN)して、
入退区分が入居なら入居中、それ以外(NULLか退去なら)なら空き。
・{入居時 or 退去時}の年齢は「入退日-生年月日」で求められる。
・指定日の集計に関しても上の条件のクエリを元に求められる。
・ポイントは入居と退去の履歴(日付)を残しておいて、それを条件に抽出すること。年齢は生年月日を元に求めること。
似たような案件のデータベースのサンプルを探してみて中身がどうなっているか調べてみるといいよ。
後は今ある入力データを正規化してみるとか(「正規化」の手順は調べればすぐ分かる)。
まあ、頑張ってみてくださいな。
- 507 :名無しさん@そうだ選挙にいこう:2009/11/12(木) 00:41:46
- >>504
たぶんAccess2007で廃止(ただしネイティブフォーマットのaccdb)されたからじゃね?
>483 は2007らしいから、こういう流れになったかと。
2003までなら、ユーザーレベルセキュリティふつうにできるけどな。
Accessの手頃感が突出しすぎてユーザ動かないんで、SQL鯖への追い出しにM$も必死w
- 508 :名無しさん@そうだ選挙にいこう:2009/11/12(木) 07:22:03
- >>506
ご丁寧にありがとうございます。
早速参考にさせてもらいたいと思います。正規化についても調べてみます!
- 509 :名無しさん@そうだ選挙にいこう:2009/11/12(木) 07:22:38
- >>506
さらに正規化するとすれば
入退区分{入居|退去}
↓
入退区分:<入退区分ID(オートナンバー)>,入退区分(テキスト)
性別{男|女}
↓
性別:<性別ID(オートナンバー)>,性別(テキスト)
住宅:<住宅ID(オートナンバー)>,;住所,物件名
住宅部屋:<住宅ID,部屋番号>
住宅入退:<住宅ID,部屋番号,住宅入退ID(オートナンバー)>,入退区分ID,入退日
住宅入居者:<住宅ID,部屋番号,住宅入退ID,入居者ID(オートナンバー)>,世帯主{Yes|No},氏名,生年月日,性別ID,収入
- 510 :名無しさん@そうだ選挙にいこう:2009/11/12(木) 10:06:56
- まあ、世帯主なんかも正規化の対象か。
- 511 :487:2009/11/12(木) 12:03:59
- 解除ktkr
>>496
リンクテーブルの場合
1.パスワードが平文で格納されてるから、特別なツールを必要とせずまる見え
2.フロントエンドaccdeに向けてODBC/ADO等で接続すると、フロントエンドが
接続を代行するような振る舞いをする。
まぁフロントエンドもパスワード暗号化なりすりゃいいのだけれど。
使用環境、セキュリティ、開発難度のバランスを取って製造ということ。
社内で小規模というのであれば、性善説前提+データ保全目的のセキュリティ
構成もありだと思う。
損することはないから、MSSQLServer/MySQLなど着手するならしちゃった
ほうがいいかもね。
- 512 :名無しさん@そうだ選挙にいこう:2009/11/12(木) 13:27:57
- どうでもいいがDBで管理しなきゃいけないほど大量のアパートマンション保有とか
どんだけ資産家なんだよ
- 513 :名無しさん@そうだ選挙にいこう:2009/11/12(木) 13:35:02
- 資産家って思うかねw。可能性がないわけじゃないけど。
- 514 :483:2009/11/12(木) 16:57:07
- >>511
パスワードが丸見えとかちょっとひどいですね・・
素直にSQLServer使います。
ありがとうございました。
- 515 :名無しさん@そうだ選挙にいこう:2009/11/12(木) 18:50:23
- >>514
がんがれ
- 516 :名無しさん@そうだ選挙にいこう:2009/11/12(木) 23:12:47
- >>515
甘やかすなよ。おまえの甘やかしは
そいつのためにならないだろ。
- 517 :名無しさん@そうだ選挙にいこう:2009/11/13(金) 09:24:07
- >>516
励ましてやる方が伸びる子もいるのだよ。
- 518 :498:2009/11/13(金) 15:36:59
- >>506
何から何までありがとうございます。
試しにやってみました。データ型について怒られまくってます。初歩の初歩の段階…。
住宅情報(建設年度 管理戸数 部屋面積など)
入れるのを忘れました。
>>506さんの書いてくれたレス印刷して持ち歩いてます。頑張ります。
ネット上に住宅管理のサンプルって中々見つからないものですね
- 519 :名無しさん@そうだ選挙にいこう:2009/11/13(金) 21:17:01
- 次は、何を「れるの忘れました」って言うんだろうなw
- 520 :名無しさん@そうだ選挙にいこう:2009/11/14(土) 00:01:29
- 物件管理だけならともかく、住民台帳みたいな情報まで網羅する必要があるって
どんな業種なんだろうな
- 521 :名無しさん@そうだ選挙にいこう:2009/11/14(土) 01:33:10
- >>519
サーセン
基本書熟読します
- 522 :名無しさん@そうだ選挙にいこう:2009/11/14(土) 22:59:08
- 検索した結果が、.foundfiles()に格納されています。
For i = 1 To .FoundFiles(i).count
Me.[text1] = .FoundFiles(i)
Next i
とやれば、当然、text1には .FoundFiles(i)の最後の値がはいってしまいますよね。
1.text1の1を i (変数)に変更して順番に格納したいですが、どう書けば良いですか?
text1,text2,text3,text4,text5と、フィールドは用意しておきます。
2.絞込みクエリのように、数に応じてフィールドが自動生成する方法ありますか?
上と異なり、フィールドは事前に作成しません。これは出来るかどうかわかりませんが……。
よろしくお願いします。
- 523 :名無しさん@そうだ選挙にいこう:2009/11/14(土) 23:26:42
- >>522
1. Me.Contorls("text" & i) みたいな感じで
2.CreateControlでコントロール追加とか、ListBoxを使うとか、レコードセットにしてデータシートビュー
- 524 :名無しさん@そうだ選挙にいこう:2009/11/14(土) 23:27:58
- ACCESSでソフト作っている人多いんでしょうか。
- 525 :522:2009/11/14(土) 23:41:14
- 1.の代入は出来ました。
2.のクエリ風に絞込みは不明ですので
方法あったら教えてください。debugplintの結果を
セルに出力するようなイメージです。
- 526 :名無しさん@そうだ選挙にいこう:2009/11/14(土) 23:58:46
- >>523
レスサンクス。入れ違いになってしまった。
レコードセットにしてデータシートビューに挑戦してみます。
結果をテーブルに出力して、データシートビューにするような感じですかねえ。
探してみますが、もし参考になるサイトあれば教えてください。
それで駄目ならCreateControlですかね。
これは、フィールド名が増えると恐ろしいことになりそうな気がします……。
- 527 :名無しさん@そうだ選挙にいこう:2009/11/15(日) 00:09:50
- >>524
Accessでソフトウェアをつくって、公開している人ってのは、多分少ない。
ましてや、それでシェアウェア作って売っているとなると、限られる。
けれど、業務の現場では数多くのAccessで作られたアプリケーションが
仕事をしている。
表に出てこない作り込みのソフトウェアがね。あとは、VBなどのバックエンド
にデータの置き場としてmdbを使っているようなツールとかね。テーブル設計
をAccessで行って、VBで仕込む。
- 528 :522=525:2009/11/15(日) 00:44:21
- >>523
2のレコードセットにしてデータシートビューで出来ました。
我流ですが。あらかじめテーブルを作っておいて、
ADOで
1.テーブルの中身を全部削除
2.テーブルに結果を代入
3.フィールドとして表示
相当強引な気がしますが、こんな感じなんですかねえ。
- 529 :名無しさん@そうだ選挙にいこう:2009/11/15(日) 03:04:37
- テーブルに、絶対パスでwordファイルのアドレスが入っています。
(ハイパーリンクなので#が両端についているかも)
このアドレスを渡して、帳票形式になっているフォーム上で
OLE表示させたいのですが、VBでどう書けば良いですかね?
- 530 :名無しさん@そうだ選挙にいこう:2009/11/15(日) 03:29:19
- Access2007 + ADO + Postgresでいろいろ試しているのですがうまくいかないところがあります。
コンボボックスの選択肢としてPostgresから持ってきたデータを使おうとしているのですが、
選択肢の表示と選択した後の表示としては二番目の文字列の列を表示させ、
実際の値としては一番目の数字列を入れたいと考え、
値集合のタイプはテーブル/クエリ、列数は2、連結列は1、列幅は0cm;3cmとしました。
この設定の状態でフォームのロードイベントの部分でID列と名称列の二つの列をもつRecordsetをセットしたのですが、
実際に動かしてみると、選択肢を表示させる事は出来るのですが、
実際に選び終わると選択した物が入らずに消えてしまいます。
何か設定がおかしいのでしょうか?
ちなみに上記の設定とコードのまま、コンボボックスをコントロールの種類の変更で
リストボックスにした場合は普通に選択肢として表れ、選ぶことも出来ます。
また、フォームのプロパティの細かい部分はそのままに、
プロパティから値集合ソースとして同じテーブルをリンクテーブルにした物を設定した場合は期待通りに動作します。
何が原因なのでしょうか・・・
- 531 :529:2009/11/15(日) 03:32:55
- アドレスにハイパーリンクが入っています。
ファイルはテーブルに存在しますが、元は空欄です。
Dim path As String
path = Replace(Me.アドレス, "#", "")
With Me.ファイル
.Class = "Word.Document.8"
.OLETypeAllowed = acOLELinked
.SourceDoc = path
.Action = acOLECreateLink
End With
とやって、カレントテーブルは上手く表示できましたが、
絞込みで表示されている他のテーブルは、選択するまで
表示されないままです。いい方法ありますか?
また、OLEオブジェクト内でword文書は先頭しか見えません。
スクロールさせる方法があれば教えてください。
- 532 :820:2009/11/15(日) 06:24:11
- >>518
お役に立っているのなら嬉しいです。が、ごめんなさい。>>506 は間違えていました。
>>506 の訂正です(考え直したら、入居と退去は必ず対になるので、下記の方が作るのは簡単です)。
テーブル:
×住宅入退: <住宅ID, 部屋番号, 住宅入退ID(オートナンバー)>, 入退区分{入居|退去}, 入退日
○住宅入退: <住宅ID, 部屋番号, 住宅入退ID(オートナンバー)>, 入居日, 退去日
×・指定日の空き部屋状況は〜
○・現在の部屋の入居状況は、住宅部屋が退去日 IS NULLの住宅入退を子に持つなら入居中。それ以外なら空きとなる。
・指定日に入居していた世帯(住宅入退ID)を知りたい場合は下のようなクエリ(SQL)を使う。
SELECT 住宅ID, 部屋番号, 住宅入退ID
FROM 住宅入退 t1
WHERE EXISTS (
SELECT 住宅ID, 部屋番号
FROM 住宅入退 t2
WHERE t1.住宅ID = t2.住宅ID and t1.部屋番号 = t2.部屋番号 and t2.入居日 <= [指定日] and (t2.退去日 IS NULL OR [指定日] < t2.退去日)
GROUP BY t2.住宅ID, t2.部屋番号
HAVING MAX(t2.入居日) = t1.入居日)
ついでに今回の変更で入居期間も「退去日-入居日」
(例えば Access だと「DateDiff("m",入居日,退去日)」で月単位の期間)で求められます。
既にデータ入力していたら、ごめん。後は本や Web を参考にやってみてください。
- 533 :506:2009/11/15(日) 06:26:08
- 名前間違えた。>>532=506 です。
- 534 :名無しさん@そうだ選挙にいこう:2009/11/15(日) 06:44:37
- >>530
リンクテーブルで上手くいくなら
CurrentProject.Connection を使ってリンクテーブル経由で Recordset を開いてみては?
または下のようにローカルで動作するようにプロパティを設定したものを使った場合でもダメかな?
Dim p As New ADODB.Recordset
p.CursorLocation = adUseClient
p.Open source, con, adOpenStatic, adLockReadOnly, adCmdText
Set p.ActiveConnection = Nothing
Set ComboBox1.Recrodset = p
- 535 :名無しさん@そうだ選挙にいこう:2009/11/15(日) 07:20:28
- >>528
テーブルを使わずに
Dim p As New ADODB.Recordset
p.Fields.Append "列1", adVarWChar, 256
p.Fields.Append "列2", adVarWChar, 256
p.Open , , , adLockOptimistic
p.AddNew Array(0, 1), Array("1", "A")
Set Me.Recordset = p
という手もあるよ。
解説されているのをあんまり見たことがないので、どこまでサポートされているかは知らないけど。
- 536 :名無しさん@そうだ選挙にいこう:2009/11/15(日) 08:41:00
- >>527
> けれど、業務の現場では数多くのAccessで作られたアプリケーションが
> 仕事をしている。
このパターンが多いんですね。ありがとうございます。
> 表に出てこない作り込みのソフトウェアがね。あとは、VBなどのバックエンド
> にデータの置き場としてmdbを使っているようなツールとかね。テーブル設計
> をAccessで行って、VBで仕込む。
私的プログラムでデータの管理をどうしようかと思っていたのでアクセスを利用したいと思います。
- 537 :528:2009/11/15(日) 12:33:42
- >>535
レスサンクス。
>>528の方法だと、検索するたびに、レコードが削除されました
のエラーが出てしまい、使い物になりませんでした。
フォームを開きなおすときちんと表示されるので、削除した分が
フォーム開きなおすまでレコードの位置情報のみ残っているっぽいです。
Dim p As New ADODB.Recordset
p.Fields.Append "アドレス", adVarWChar, 256
p.Open , , , adLockOptimistic
Set Me.Recordset = p
For i = 1 To .Files.Count
p.AddNew Array("アドレス"), Array(".Files(i)")
p.Update
p.MoveNext
Next i
p.Close: Set p = Nothing
こう書いてみましたが、アドレスには何も入ってません。
フォームにはダミーとして、"アドレス"のフィールドのみ存在する
テーブルを参照先にいれてあります。これが原因かもしれませんが。
- 538 :537:2009/11/15(日) 12:38:47
- ダミーの参照をやめて名前だけにしてみましたが、
やはりデータが入っていないようです。
困ったなあ。
一度フォームを閉じて開きなおすように組めば>>528でも
実用できるようですが、明らかに無駄ですよね。
- 539 :名無しさん@そうだ選挙にいこう:2009/11/15(日) 13:29:50
- >>507
>(MDWは) Access2007で廃止(ただしネイティブフォーマットのaccdb)された
ほんとか?
MSのHPでは使えると書かれているぞ。
http://office.microsoft.com/ja-jp/access/HA100678311041.aspx
- 540 :530:2009/11/15(日) 15:45:06
- 530です
>>534
リンクテーブルを経由すると作成の趣旨からはずれてしまうので、
その方法を使用することができませんです。
二番目に挙げていただいたプロパティ値でやってみましたが
挙動は特に変わらず、選択後に消えてしまいます。
- 541 :535:2009/11/15(日) 17:37:49
- >>538
順序を変えてみて。
データを追加→フォームに設定の順。
For i = 1 To .Files.Count
p.AddNew Arrary("アドレス"), Array(.Files(i))
Next
Set Me.Recordset = p
あと、データシートに使うフォームにはコントロールソースを「アドレス」にした、
テキストコントロールを配置しているよね?
あと、テーブルを使う場合でも、
削除する前に一旦レコードソースを空白にすればエラーはでなかったと思う
(データ追加後に再設定する)。間違ってたら、ごめん。
- 542 :534:2009/11/15(日) 18:39:09
- >>540
Provider を Microsoft.Access.OLEDB10.0 に変更。
Data Provider を PostgreSQL OLE DB Provider にしてみてもダメかな?
[ACC2002] Recordset のプロパティを設定すると、コンボ ボックスに値が表示されない
http://support.microsoft.com/kb/287478/ja
それでもダメなら、値集合タイプをを値リストにして文字列で設定するとか。
ComboBox1.RowSource = recordset.GetString(adClipString, ,";",";")
No4734.コンボボックスのRecordsetにADOのRecordsetを使う方法・・・
http://www.accessclub.jp/bbs6/0016/das4734.html
- 543 :507:2009/11/15(日) 18:50:22
- >>539
そのページは誤解しやすい表現になってるので勘違いするのも無理ないけど。
こっちの方がはっきり書いてある。
http://office.microsoft.com/ja-jp/access/HA102091151041.aspx
2007のネイティブフォーマットはユーザーレベルセキュリティをサポートしない。
MDWは互換性のために残しているけど、MDBのまま2007形式に移行しない
場合でないと使えない。
だから
>>(MDWは) Access2007で廃止(ただしネイティブフォーマットのaccdb)された
と書いた。
- 544 :名無しさん@そうだ選挙にいこう:2009/11/16(月) 12:08:03
- >>532
たくさんの情報ありがとうございます。試しにデータは入れてみてますがまだ全然理解してない
状況ですので問題ないです。。
主キーを複数設定するところですら焦ってますし、男女の選択をどうするか、同居してる人が個別に入ったり出たりするので
その辺りも考慮してやってみようかというところです。
部屋番号を「棟」と「号」に分けることくらいしかまだ自分にはアレンジができないのでまずは住宅の
テーブルだけ完成させてみたいと思います。
どこかにサンプルファイルって落ちてたりしないんでしょうか。
- 545 :名無しさん@そうだ選挙にいこう:2009/11/16(月) 15:58:10
- Windows 7上でAccess 2007や2003がちゃんと動くかどうかという情報って
どっかに出回ってないすか?
ざっとググッた限りだと、以下の記事しか見つからなくてやや心配…
ttp://vive-hodie.com/2009/06/ms-access_on_windows7/
- 546 :名無しさん@そうだ選挙にいこう:2009/11/16(月) 18:32:35
- >>545
Microsoft Office 製品に関する Windows 7 の対応状況
http://www.microsoft.com/japan/office/2007/OScompatibility.mspx
我が家の Access 2003 は特に問題が出たことはなし(ローカル環境のみだけど)。
>>545 の記事は Windows 7 RC版だったからか、何か他の原因じゃないかな。
- 547 :名無しさん@そうだ選挙にいこう:2009/11/16(月) 22:05:54
- 初心者なんですが教えて下さい。Access97でテーブルにデータ値が無い場合0を表示させたいんですが、どうすればいいんですか?
- 548 :名無しさん@そうだ選挙にいこう:2009/11/16(月) 22:14:43
- >>547
表示だけでいいなら、書式プロパティに「0」と設定するとか。
- 549 :名無しさん@そうだ選挙にいこう:2009/11/17(火) 00:43:57
- テーブルデザインにして
フィールドのプロパティ → 規定値0 でもおk
- 550 :538:2009/11/17(火) 07:25:37
- >>541
順番変更でばっちりでした。ありがとうございます!
参考に教えてください。
レコードソースを空白にするってどう書けば良いんですかね?
レコード削除はわかるのですが。レコード削除だとエラーでます。
'Do Until rs.EOF
rs.Delete
rs.MoveNext
Loop
とか、
SQL = "delete from テーブル"
DoCmd.RunSQL SQL
だと駄目ですね。
- 551 :545:2009/11/17(火) 10:44:08
- >>546 ありがとうございます
なるべく早くWindows 7入手して
自分でも動作確認するようにします
- 552 :名無しさん@そうだ選挙にいこう:2009/11/17(火) 11:56:35
- >>548
>>549
ありがとうございます。やってみます!
- 553 :名無しさん@そうだ選挙にいこう:2009/11/17(火) 12:00:28
- sharepoint foundation2010にaccess serviceがねぇよぉ;;
Runtimeの代わりになるとwktkしてたのによぉ
- 554 :名無しさん@そうだ選挙にいこう:2009/11/17(火) 19:27:31
- Access97を現役でまだ使ってる人いるの?
マイクロソフト喜びそうだな
- 555 :トリプルクリック ◆M4VDFNZnqs :2009/11/17(火) 19:31:30
- >>554
早く新しいの買えって思ってるんじゃないかな
- 556 :名無しさん@そうだ選挙にいこう:2009/11/17(火) 21:29:48
- >>554
余裕でいる。
2.0ですら、まだ話聞くし。
M$はまったく喜ばないと思うが。
- 557 :名無しさん@そうだ選挙にいこう:2009/11/17(火) 22:33:33
- 少しずつですが作り始めました。気になったのは住宅ごとではなく、棟や詳細(部屋単位)で違うものがあるということです。
同じ住宅でもお風呂の設置の有無がある住宅があるので変なところに風呂フィールドがあります。
また、住宅台帳の管理戸数は棟別管理戸数の詳細ということになるので、なんか二度手間な感じがします。
私の作り方がおかしいのでしょうか。まだ主キーやらリレーションシップはほぼつけてない状態です。
私は最初から細かく作ろうとしすぎてるのでしょうか・・
<>は主キー
住宅台帳マスター
<住宅ID(オートナンバー)>,住宅名(テキスト),郵便番号(テキスト),住所(テキスト),管理戸数(数値),給水(テキスト),ガス(テキスト),便所(テキスト),駐車場有無(テキスト)
棟別台帳マスター
棟ID(テキスト),住宅ID(数値),棟名(テキスト),建設年度(テキスト),種別(テキスト),構造階数(テキスト),管理戸数(数値)
部屋別台帳マスター
部屋ID(テキスト),住宅ID(数値),棟ID(テキスト),号室(テキスト),間取(テキスト),間取詳細(テキスト),風呂(テキスト),備考(テキスト)
- 558 :名無しさん@そうだ選挙にいこう:2009/11/17(火) 23:47:34
- もしかして街の不動産屋さんじゃなくてどっかの公団の管理人とかなの?
- 559 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 00:17:31
- 以前似た事聞きましたが、adoが上手くいかないので教えてください。
Dim rs As New ADODB.Recordset
Dim cn As ADODB.Connection
Set cn = Application.CurrentProject.Connection
rs.Open Me.RecordSource, cn, adOpenKeyset, adLockOptimistic
Dim sFilter As String
sFilter = "*" & Replace(Me.BOX1, " ", "* And *") & "*"
sFilter = BuildCriteria(Me.BOX2, dbText, sFilter)
rs.Filter = sFilter
このrs.fillterが上手くいっておらず、rs.filter=0になります。
Me.filter=sFilter
Me,filteroN =true
なら上手くいきますが、rsからデータ取りしたいのでこの方法は使えません。
BOX1で絞り込んで、BOX2で更に絞り込む
レコードセットに対するフィルターのかけ方を教えてください。
- 560 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 01:12:07
- >>559
ADOだよね。
おおかた文字列を二重引用符でくくってんじゃね?
くくるなら一重引用符(単一引用符)。
FIlterプロパティのヘルプを読めばすぐに分かるので、
読んでないんだろうけど、困ってんならヘルプくらい嫁。
ttp://msdn.microsoft.com/ja-jp/library/cc426691.aspx
- 561 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 01:58:08
- >>557期待を裏切らずいろいろ後だしでくるなw
- 562 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 02:20:05
- んなもんにかまってられんわ。寝る。
- 563 :535:2009/11/18(水) 02:42:31
- >>550
レコードソースを空白にするのは
テーブル/クエリなら
Me.RecordSource = ""
レコードセットなら
Set Me.Recordset = Nothing
とするだけ。
要はフォームとの関連を一旦切ってその後に処理する。
フォームがちらつくのが気になるなら処理の前後を Me.Painting で挟めば良い。
Me.Painting = False
Me.RecordSource = ""
DoCmd.RunSQL "DELETE FROM テーブル"
Me.RecordSource = "テーブル"
Me.Painting = True
あと、そもそもスナップショットにしておけばレコードソースの状態を監視したりしないので、
問題なかったような気がする(DELETE クエリを発行した後、Me.Requery を使って手動で更新)
……違うかも。
- 564 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 03:01:48
- >>557
部屋毎に風呂の有無が異なるのなら、部屋に風呂フィールドが入るのが自然。
データの繰り返しや重複がある場合が不自然。詳しくは正規化を勉強してみて。
管理戸数については集計関数(カウント(COUNT), 合計(SUM))を調べてみれば良いかも。
最初は試行錯誤しながら作っていくしかないよ。
自信がないのなら練習用にデータベースの作り方が載っている本を買ってきて、
一度通して作ってみると良い。それで、Access で何が出来て、何が出来そうにないかが分かると思う。
- 565 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 07:00:13
- >>561
ほんとに申し訳ないことです。入門じみた質問ばかりになってるのは自分でも分かってます。ご免なさい
できるシリーズ熟読しながら作ってる段階です
エクセルワードと違って、アクセスはほんとに情報少ないですね。
- 566 :メモリ君 ◆7mDj3mSGOQ :2009/11/18(水) 07:21:30
- >>565
それは大きな勘違いだ。
Accessの情報も十分ある。ただ、君がこの世界のルールを知らないで入っている
に過ぎない。この世界は、WordやExcelと違って、テーブル設計や正規化、外部キー
やクエリといった数々の決まり事がある。
そして、多くの人間が挫折するのは、これら決まり事 つまり、理論を勉強せずに
飛び込んでいきなり実践のデータベースを作ろうとするからなのだ。まずは、実践とは
別に、簡単なデータベースでしっかり基礎を勉強してから、少しずつ、クエリの活用法
だとか、テーブルの設計方法を勉強するのがデータベースの肝。
はっきりいって、GUIやVBAなんてのは、一番後にやるもんだ。そして何よりも、情報を
小出しにしている段階でテーブル設計はこけている。
- 567 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 18:36:13
- >>557
初心者が最初から全体を作ろうとしても難しいと思う。
小さい部分から徐々に作って試していった方が実力に合うレベルで考えられるし、自信も持てるよ。
例えば、入居者の統計を取るのが目的なら、入居者のテーブルだけを作ってみる。
それを使って年齢、性別毎の人数や収入の平均を求める集計クエリを作ってみる。ある期間の入居者一覧のクエリも作成してみる。
それが出来たら、部屋のテーブルを作ってみて、棟毎の戸数の集計クエリを作ってみる。
それが出来たら、入居者と部屋をリレーションシップで結んでみる。必要なら正規化をやり直す。
それを使って、部屋毎の入居者の集計クエリを作ってみる……みたいに問題を小さく分けて、少しずつやってみた方が良いと思う。
あと、クエリの使い方が分かれば、ある条件で絞り込み・集計するにはどんなデータが必要か?
という視点でも考えられるようになるので、設計の正否を判断する手がかりが増えるよ。
- 568 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 19:22:45
- >>557
私もちょっと必要なので、Accessを始めたところです。
557さんも、ワークシートとデータベースの違いの「イメージ」をつかめて
いないような気がします。
データベースも、「カード型」と、リレーション型があります。
カード型のイメージと、ワークシートのイメージは似ています。
カード型・ワークシートは、「一目で見わたせる」感じですが、
リレーション型のデータベースは、「シートの奥行き」がある感じです。
エクセルでも「くし刺し処理」みたいな物がありますけど、あの感じです。
しかし、「同じもの」が奥行きになっているのではないんです。
リレーション型は、「データの特徴をつかんで、なるべくまとめてしまう」のが、「なんでも
広げて一覧にする」ワークシートとは違っているんです。
ワークシートは、個数と単価と合計が一覧になりますけど、リレーション型である
Accessは個数と単価だけが「テーブル」に入り、合計は、「クエリ」でその都度計算し、
「フォーム」で表示し、「レポート」で印刷するんです。
住宅IDとそれが「属する棟」の番号のテーブルがあれば、「管理個数」は「クエリ」で
その都度計算するんです。
お風呂の有無は、その前に間取りのパターンを数え上げて番号を付け、どの番号の
間取りかの情報をテーブルにもたせて、どんな間取りかの表示はその都度クエリやフォームで
作り出すんです。
お風呂の有る無しに何か特別意味があるのであれば、その情報はtrue falseなどの情報として
テーブルにもたせることも出来ます。
なにか、基本的な発想が、リレーション型のデータベースのイメージをつかまないままExcel
的に考えてるようにお見受けしました。
私はAccessがいちいちクエリだのレポートだのと「場面を変えて作業」する意味合いが
難しいです。
SQL文で表示も問い合わせも順番に全部書くってやつもあって昔それをやったので。
Accessのデータファイルがひとつっきりってのも、いったいどうなってるのか悩んだくらいですw
- 569 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 22:44:38
- 質問です。
クエリのフィールドの式ビルダで連続して別の処理を行うには
どうしたらいいですか?
- 570 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 22:47:09
- 死んだら良いよ
- 571 :名無しさん@そうだ選挙にいこう:2009/11/18(水) 23:39:34
- NOTICE:
OFFICE BETA IS COMING: The Office 2010 Beta will be available in November 2009.
You will be notified via e-mail when it is available and the location of the Beta site will also be posted here.
- 572 :559:2009/11/19(木) 00:22:27
- >>560
レスサンクス。調べてみたんだが、
どうもBuildCriteriaが""を自動生成していて、エラーになってた。
直接入力するようにして解決。
が、アンド検索が出来ない。
sFilter = "*" & Replace(Me.BOX1, " ", "* And *") & "*"
でMe!BOX2 like *Me!BOX1_1* and *Me.BOX1_2*
にしてた。andで繋いでも駄目なのね。
- 573 :572:2009/11/19(木) 01:38:43
- split 使って出来ました。
- 574 :名無しさん@そうだ選挙にいこう:2009/11/19(木) 08:49:24
- Access 2010 Runtime
As many of you know, the Access 2007 Runtime didn’t ship until some time after Access 2007 RTM.
This was cause of frustration for many of our developers who had solutions ready for customers.
This release, we have a goal to ship the Access Runtime as close to Access 2010 as possible. As a part of this effort,
the Access 2010 Runtime Beta is ready for download. You can download the Access 2010 Runtime Beta today.
- 575 :名無しさん@そうだ選挙にいこう:2009/11/19(木) 15:05:13
- 2010ベータ
おれが報告したバグ治ってた
日本語ヘルプも装備されてグッド
- 576 :名無しさん@そうだ選挙にいこう:2009/11/19(木) 19:35:58
- Web対応だとBVA使えないんやね、やっぱマクロの時代だあ。
- 577 :名無しさん@そうだ選挙にいこう:2009/11/19(木) 22:40:57
- ACCESSを操作&VBA編集できる携帯ってありますか?
- 578 :メモリ君 ◆7mDj3mSGOQ :2009/11/19(木) 23:08:14
- >>577
そんなものはありません。
あっても、それは画面のリモートコントロールだけです。
- 579 :名無しさん@そうだ選挙にいこう:2009/11/19(木) 23:17:52
- >>578
そうですか・・・外出先で確認したいなと思ってました
エクセル見れる携帯はVB使えるんですか?
- 580 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 00:04:40
- SQLServerでUnionで合成したテーブルが
並び替え順で並びません
なぜかグループ化も合成した部分で勝手にされます
これはバグではないですか?
- 581 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 00:06:01
- レポートのグループ化や並び順のことです
- 582 :メモリ君 ◆7mDj3mSGOQ :2009/11/20(金) 00:20:03
- >>581
レポートにはレポートに並び替えの設定があるわけなんですが、
クエリにもクエリの並び替えの順番があります。
自分もいつもひっかかる点なんですが、基準となるフィールドで
クエリで並び替えをしたものをレポートで表示させています。
クエリも、後ろのほうに並び替えだけのためのフィールドを追加
して、好きなように並び替えをしてます。3つくらい設定してますね。
もちろん、表示のチェックははずしています。
- 583 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 00:46:20
- 全然関係のない表のクエリを2個、列をASで同じ列名にしたりしてUnion句で、くっつけてみて
並び代わらなくなって、おかしくなるから
たぶん、ユニオンした下の表が強制で降順になってしまう
ただ、ストアド以外はいけるのかも
- 584 :メモリ君 ◆7mDj3mSGOQ :2009/11/20(金) 00:49:26
- >>583
Unionクエリを元に、選択クエリつくって、並び替えとか
- 585 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 01:05:05
- 全然別の2つ表をSQLかいてASで強制で全部同じ列名にしてUnionやったソースを元にレポートで並べ替えすると、おかしくならない?
- 586 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 01:22:54
- すみません、ACCESSで作ったDBアプリを修正しているんですが、
どうにもこうにもわからなくなってしまったので教えてください。
項目Aという入力欄を作ったんですが、入力する内容が多くなった為、
項目Bという入力欄を新しく作りました。
項目Bは項目Aに入りきらない内容の場合分けて入力する事になります。
しかし、項目Aは主キーになっている為、Bの内容が違っていても
Aの内容が一緒だと重複扱いになってしまいます。
条件
・Aの内容が一致してもBが一致しなければ重複扱いしたくない。
・BはNULLの場合がある為、NULL許容できる仕様にしなければいけない。
上記の条件を満たすにはどのようなDBにすればいいでしょうか?
教えてください。
- 587 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 01:36:10
- 追加順って主キーを一番左に作れば良いかと
あとは主キーなしでおk
- 588 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 01:44:37
- 項目AとBで主キーにしたら駄目なのか?
- 589 :586:2009/11/20(金) 02:01:46
- >>588
Bを主キーにしたらNULL許容できないじゃありませんか?
- 590 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 02:03:34
- サロゲートキーの方が良くね?
- 591 :トリプルクリック ◆M4VDFNZnqs :2009/11/20(金) 04:01:14
- 項目Aと項目BでNULLを許容する一意制約をつけるにはどうするんだっけ
インデックスとか使えばできるんだっけ?
- 592 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 10:50:26
- >>586
発想の転換で、Aの長さをA+Bの長さにしてBを無くせばよろしい。
長さがオーバーしてしまうのか?(←質問の情報不足)
ならばAのデータ型をメモ型にすればよろしい。
それがいやなら、AとBをインデックスにしてBを空文字許可すればよろしい。
Bに値を入れる場合NULL→空文字変換が要るかも知れんが、そこは試してみれ。 がんばれ。
- 593 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 11:23:19
- >>トリプルクリック ◆M4VDFNZnqs
Excel VBA質問スレ Part13
http://pc12.2ch.net/test/read.cgi/tech/1254281104/
こっちのほうがいいのでは?
- 594 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 12:25:46
- やっぱりUnionでくっつけた所で勝手にグループ化される、バグじゃないの?
- 595 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 12:29:45
- グループレベル1を不可視にしたら、Unionしたレポートでも普通に表示されたから、グループが壊れてるよこれ
2007では直った?
- 596 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 13:52:01
- 2010ベータで、LongLongが追加されてるねぇ
まぁVBA全般の話だけれども。
- 597 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 21:10:58
- LongLong??
- 598 :名無しさん@そうだ選挙にいこう:2009/11/20(金) 22:48:37
- 64ビットの時代かー。
- 599 :名無しさん@そうだ選挙にいこう:2009/11/21(土) 16:30:05
- Access2010β版使ってみた、けっこう良いかも。リボンインターフェイス敬遠してたから
2007はスルーしてたけど。製品版買っちゃおうかしら。
- 600 :名無しさん@そうだ選挙にいこう:2009/11/21(土) 17:45:59
- どの辺がよいのか、kwsk
- 601 :名無しさん@そうだ選挙にいこう:2009/11/21(土) 20:49:10
- >>568
時間がありそうなら、SQLServerExpressにAccessのデータをエクスポートして
SSMSからさわってみると、少し変わるかも?
#SQLの入門書、やった方がいいと思う
- 602 :名無しさん@そうだ選挙にいこう:2009/11/21(土) 21:47:39
- >>600
2007には既に実装されてるんだろうけどデザインビューとデータシートビューを
一々切り替えなくていい所とか。リボンインターフェイス(?)もAccessに関しては
慣れたらそんなに苦にならないようだし。そんな些細な所。。。Macの仮想環境、しかも
Windows7RC版で使用してるし、Access初心者でもあるので突っ込んだ質問しないでね〜。
- 603 :名無しさん@そうだ選挙にいこう:2009/11/21(土) 22:39:23
- フォームとかレポートでテキストボックスなんかのオブジェクトの配置をVBAで設定する方法教えてください
- 604 :名無しさん@そうだ選挙にいこう:2009/11/21(土) 22:58:36
- >>603
TextBox."Height/高さ" プロパティ
TextBox."Top/上位置" プロパティ
TextBox."Left/左位置" プロパティ
TextBox."Width/幅" プロパティ
- 605 :名無しさん@そうだ選挙にいこう:2009/11/21(土) 22:59:26
- 2010β
式ビルダとかマクロエディタでintelisense働くから使いやすくなったのぉ
デフォルトのコントロール名を英文にできたら便利だなぁ。
- 606 :名無しさん@そうだ選挙にいこう:2009/11/21(土) 23:09:53
- どうもありがとうございます
- 607 :名無しさん@そうだ選挙にいこう:2009/11/21(土) 23:25:14
- LongLongって見当たらないが、64ビット版の話し?
64ビット版では最大ファイルサイズ2Gも拡大されてるの?
- 608 :600:2009/11/21(土) 23:56:41
- >>602
dクス
。。。2007と大して変わってないってことかな。
- 609 :名無しさん@そうだ選挙にいこう:2009/11/22(日) 00:34:31
- LongLongは64bitのみでっせ。
32bitならオーバーフローしますわね。
2GBはどうだべな。
- 610 :名無しさん@そうだ選挙にいこう:2009/11/22(日) 01:08:20
- 2GBは超えられなかったぜ。エヘヘ
- 611 :名無しさん@そうだ選挙にいこう:2009/11/22(日) 08:36:50
- >>609,610
ありがと
215 KB
[ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
【SSDど本命】SanDisk[C25-G3]シリーズ待望スレ 2 [自作PC]
P2P電話 「Skype」スレ、その37 [ソフトウェア]
くだすれDelphi(超初心者用)その50 [プログラム]
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)