09/08/26 23:39:38
ACCESSに関する質問はこちらへ!
▼━ 質問のしかた ━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
・何がしたいのか
・どんな処理を試したか
・動作状況など駄目な理由
テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
範囲で詳しく書くと、早く回答が得られるかもしれません。
図解があれば尚良し。
聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
ギブアンドテイクで情報を共有しましょう。
2:名無しさん@そうだ選挙にいこう
09/08/26 23:59:53
▼━質問テンプレ (出来れば使ってね) ━━━━━━
【 システム環境 . 】 Windows**, Access**
【 VBAが使えるか .】 はい・いいえ
【 VBAでの回答 】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
前スレ
Access総合相談所 其の21 【桐にしとけ】
スレリンク(bsoft板)
3:名無しさん@そうだ選挙にいこう
09/08/27 00:00:24
ACCESS2000総合相談所
URLリンク(pc.2ch.net)
ACCESS総合相談所 その2
URLリンク(pc.2ch.net)
ACCESS総合相談所 その3
URLリンク(pc.2ch.net)
ACCESS総合相談所 その4
URLリンク(pc.2ch.net)
ACCESS総合相談所 その5
URLリンク(pc.2ch.net)
ACCESS総合相談所 その6
URLリンク(pc2.2ch.net)
ACCESS総合相談所 その7
URLリンク(pc2.2ch.net)
ACCESS総合相談所 その8(消息不明です)
URLリンク(pc2.2ch.net)
ACCESS総合相談所 その9(消息不明です)
スレリンク(bsoft板)
ACCESS総合相談所 その10
スレリンク(bsoft板)
ACCESS総合相談所 その11
スレリンク(bsoft板)
ACCESS総合相談所 その12
スレリンク(bsoft板)
ACCESS総合相談所 その13 【桐にしとけ】
スレリンク(bsoft板)
ACCESS総合相談所 その14 【桐にしとけ】
スレリンク(bsoft板)
ACCESS総合相談所 その15
スレリンク(bsoft板)
ACCESS総合相談所 その16 【桐にしとけ】
スレリンク(bsoft板)
4:名無しさん@そうだ選挙にいこう
09/08/27 00:01:17
ACCESS総合相談所 その17 【桐にしとけ】
スレリンク(bsoft板)
ACCESS総合相談所 その18 【桐にしとけ】
スレリンク(bsoft板)
Access総合相談所 其の19 【桐にしとけ】
スレリンク(bsoft板)
桐はこちら↓
管理工学研究所「桐」【4】
スレリンク(bsoft板)
5:名無しさん@そうだ選挙にいこう
09/08/27 00:24:06
桐にしとけ
6:名無しさん@そうだ選挙にいこう
09/08/27 00:24:48
桐について語るスレ 2 【サーバー未満 Excedl以上】
スレリンク(db板)
7:名無しさん@そうだ選挙にいこう
09/08/28 22:43:14
FAQ
Q1) 桐って何ですか?
A1) このスレで質問されるような事が何でも簡単に出来ちゃう魔法のソフトです。開発期間も1/5で済みますが、アクセスより高価です。
エグゼクティブは桐でさっさと仕事済ませて、空いた時間はホテルのプールでリフレッシュします。
貧乏人はAccessで必死に頑張ります。
8:名無しさん@そうだ選挙にいこう
09/08/28 22:49:23
>>7
Accessでさっさと仕事を済ませて、空いた時間はギターを引いてリフレッシュ
している俺は、じゃぁ、なんなんですか?
30歳で貯金は2千万円あります。今日の夕飯は、うまい輪一袋とミックスフルーツ100
です
9:名無しさん@そうだ選挙にいこう
09/08/28 23:19:33
なかなか遣るなぁ
おれ30歳時点でその3倍、今じゃ毎晩レモンサワー飲んでる
スイスの銀行紹介してやろうか?
ジュリアスベアーとかピクテとか
10:名無しさん@そうだ選挙にいこう
09/08/28 23:23:22
トンスル飲んで寝ろ。
11:名無しさん@そうだ選挙にいこう
09/08/29 20:03:50
42歳で時給900円。
ヒロポンやって昼勤夜勤3連続中(ヒロポンは嘘)。
Access初心者、元桐講師(マジで)。
12:9
09/08/29 21:18:41
>>11
同い年
時給換算50万円
国(国税局)相手に行政訴訟(税金裁判)で本業そっちのけの此の頃
Accessも桐も趣味で弄ってる
そろそろアーリーリタイアメント、エーゲ―海にヨット浮かべて美女はべらせて過ごす予定(カリブ海行ったら黒人女ばっかりだった)
13:名無しさん@そうだ選挙にいこう
09/08/29 21:38:39
>>12
ふーん。似たもの同士だね!
俺も現場じゃゴリマッチョばっかり。
14:名無しさん@そうだ選挙にいこう
09/08/29 21:44:25
間違えた、時給換算5万だ
どうでも良いが、最近面白い事ない
15:名無しさん@そうだ選挙にいこう
09/08/30 23:10:48
>>14
恥ずかしい間違いだな
16:名無しさん@そうだ選挙にいこう
09/08/31 08:10:55
ひと月に1時間しか働いてないの?
17:名無しさん@そうだ選挙にいこう
09/08/31 09:04:31
時給「換算」と書いてあるだろ。
30分だぉ。
18:名無しさん@そうだ選挙にいこう
09/08/31 09:06:55
だいたい200時間/月 くらい働いてる、もう嫌だ
19:名無しさん@そうだ選挙にいこう
09/09/08 10:03:47
pu
20:名無しさん@そうだ選挙にいこう
09/09/10 00:10:18
クエリのデザインビューとかに出てくる[テーブルの表示]ダイアログボックスって、
幅変えられませんよね?
長い名前のクエリをたくさんつくっているのだが、表示される幅の文字が同じで
区別がつかん...orz
21:名無しさん@そうだ選挙にいこう
09/09/10 00:51:40
>>20
つResizeEnable
22:20
09/09/10 06:33:32
>>21
え、変更できるんですか?
ツール(T)→オプション(O)では、それらしい設定は見つかりませんが?
23:20
09/09/10 21:05:54
>>21
フリーソフトだったんですね。ありがとうございますm(__)m
使えそうです。助かりました。
24:名無しさん@そうだ選挙にいこう
09/09/13 05:59:09
今OpenOfficeBaseを使ってるんですがAccessもそのうち買おうと思ってます。
そこでBaseで作ったデータをAccessで引き継いで使う事が可能なのかどうか気になってるんですが、実際どうなんでしょう。
25:名無しさん@そうだ選挙にいこう
09/09/13 12:15:53
>>24
OOOスレで聞いたほうが早いと思うが、俺なら過大な期待はしないよ。
テーブルをcsvにエクスポートして、Accessに文字化けなしでインポートできれば御の字。
26:名無しさん@そうだ選挙にいこう
09/09/13 12:20:02
>>24
OpenOffice.org Baseなんて、データベースのまがい物は使わないほうがいい。
あんな出来損ない、フリーでも使いたくない代物だ。
最初から、Access, FileMaker, 桐にしておけ。
で、データベース格納場所は切り離しておき、できれば、MySQLかPostgreSQLを
使い、ODBC接続としておく。Access2007は最適化すると、データベースが消滅する
バグがあるから、注意が必要だ。
楽しい、データベースライフを!
27:24
09/09/13 14:45:14
OOOスレで聞いてみました。
Baseはアクセスを完全に超えたらしいのでこれからもBaseを使い続けたいと思います
本当にありがとうございました。
28:名無しさん@そうだ選挙にいこう
09/09/13 17:16:01
27は偽者です。
>>25-26
ありがとうございます。
うーん、出来るだけ早めに乗り換えた方がいいんですかね。
データベースソフトはBaseしか使った事がないので正直何がそんなに違うのかイマイチ理解してないんですが・・・。
29:名無しさん@そうだ選挙にいこう
09/09/13 18:02:32
>>28
外部とのデータのやり取りにDAO,ADOが使えない(Base側から使うなら出来る)というのは聞いた事がある
(まぁあんまり使ったことないからわからんが)
一応ExcelからBaseに接続してる例はあったけど
URLリンク(user.services.openoffice.org)
30:名無しさん@そうだ選挙にいこう
09/09/13 18:05:34
あれっ、前スレ終わったん?
31:名無しさん@そうだ選挙にいこう
09/09/13 20:17:40
【 システム環境 . 】 Windows?, Access2003
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 否
会社のイントラネット内で使用するデータページを作っています。
データページはなんとか作成したのですが、使用する人たち(PCに詳しくない人たち)から
保存したときに何かわかるようにできないかと言われました。
普通のフォームではダイアログボックスを出すことができるようですが、
データページでも可能なのでしょうか?
データページについては書籍もネットもぜんぜん見つからず困っています。
できないとわかるだけでもありがたいです。
よろしくお願いします。
32:名無しさん@そうだ選挙にいこう
09/09/13 20:42:38
宣伝提示版が新しくできましたーーー∈^0^∋ ご検討のほどよろしく御願いします
お役に立てる宣伝提示版に頑張りますので末永いご利用をお待ちしております
URLリンク(jbbs.livedoor.jp)
33:名無しさん@そうだ選挙にいこう
09/09/13 21:14:50
開発はVisualStudio使えって
テーブル・クエリ・レポート・フォーム・モジュール
全部対応できるぜ
34:名無しさん@そうだ選挙にいこう
09/09/13 21:23:01
>>33
あれ、AccessってVisualStudioによる開発できましたっけ?
VisualSourceSafeによるソール管理ならアドインで対応してますが・・・
よろしければ詳しいとこ教えてください!
35:名無しさん@そうだ選挙にいこう
09/09/13 21:23:20
>>33
連結フォーム使えるの?
36:名無しさん@そうだ選挙にいこう
09/09/13 22:36:52
>>33
URLリンク(msdn.microsoft.com)
参照して検討されてはどうでしょうか。それなりのスキルは必須と考えられます。
Web展開が必須ならば、Visual Web Developer 2008 Express Editionで開発もいいのでは?
37:36
09/09/13 22:37:45
× >>33
○ >>31
38:名無しさん@そうだ選挙にいこう
09/09/14 16:01:25
>>33
レポートについてはAccessを超えるツールはないと思う。
39:名無しさん@そうだ選挙にいこう
09/09/14 16:08:02
桐にしとけ
40:1/2
09/09/14 19:36:54
よろしくお願いします。
access2000を使っています。
テーブルが二つあり、
T1にはフィールドが3つ、
[加算数]数字[仕事]テキスト[実行日]日付
[実行日]フィールドは空白です。
T2にはフィールドが2つ、
[仕事]テキスト[計画日]日付、とあります。
仕事をキーに、
[仕事][計画日][加算数][実行日]の選択クエリQ1を作成しました。
また、更新クエリQ2で、
[計画日]に入った日付に、[加算数]の数字を加算し、
実行日を入力させます。
41:2/2
09/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:名無しさん@そうだ選挙にいこう
09/09/14 20:03:56
>>40
実行日って必要なのか? 計画日と加算数があれば加算で出てしまうじゃないか。
43:名無しさん@そうだ選挙にいこう
09/09/14 20:14:57
>>42
実際は扱うデータが異なるもので、内容までは申し上げられませんが、
必要です。。
私も加算で出てしまうと思っていたのですが、
日付のみが異なる、このケースでいうと毎週行うような仕事があった際に、
UPDATE Q1 SET Q1.実行日 = Q1.加算数 + Q1.計画日;
これだと、最終日のみが認識されてしまい、
同じ仕事で日付が違う他のレコードの値まで最終日の値になってしまいます。
44:名無しさん@そうだ選挙にいこう
09/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:名無しさん@そうだ選挙にいこう
09/09/14 20:39:01
select t1.仕事, t2,計画日, t1.加算数, t2,計画日 + t1.加算数 AS 実行日
from t1 iner join t2 on t1.仕事 = t2.仕事
じゃ駄目?
46:名無しさん@そうだ選挙にいこう
09/09/14 20:42:01
ちょいと例を作ってきます。
しばしお時間を・・
あとテーブルは、諸事情でどうしても分けねばならんのです・・。申し訳ない
47:名無しさん@そうだ選挙にいこう
09/09/14 21:02:44
お待たせしました。まだいてくれてたらいいんですが・・
実行前
URLリンク(2sen.dip.jp)
実行後
URLリンク(2sen.dip.jp)
実行後の実行日が2009/09/15で3レコード共統一されてしまっているかと思うのですが、
これを
2009/09/23
2009/09/18
2009/09/16
となれば望む所です。
>>45
ちと試してきます
48:名無しさん@そうだ選挙にいこう
09/09/14 21:07:11
dbより隠れている壁紙が気になる件
49:名無しさん@そうだ選挙にいこう
09/09/14 21:13:04
>>45
出来ました・・・。選択クエリで作れるんですね・・・・
ありがとうございます。初歩的な質問を長々とすいません。。
後学のために別解ございましたら、是非お願いします。
スレ違いだと感じられたら放置でお願いします
みなさんほんとありがとうございました。
精進します。
あ、これURLリンク(2sen.dip.jp)
50:名無しさん@そうだ選挙にいこう
09/09/14 21:16:04
>>47
テーブル構造が糞すぎ。
第三正規化あたりから勉強しなおしてきてくれ。
51:名無しさん@そうだ選挙にいこう
09/09/14 21:24:05
やりたいことはなんとなくわかった。
仕事 加算数
掃除 1
洗濯 2
料理 6
これって固定なの?
52:名無しさん@そうだ選挙にいこう
09/09/14 21:32:42
ん。不固定ですが・・
53:名無しさん@そうだ選挙にいこう
09/09/14 21:51:42
31です。36さんありがとうございます。
明日会社でじっくり読んでみます!
54:名無しさん@そうだ選挙にいこう
09/09/14 21:53:45
>>49
T2で同一の仕事が複数ある場合(今回は掃除だけど)、どういう規則で1つを選ぶの?
計画日が最小でいいの? だとしたら、グループ化でQ1ひとつで行けそうなのだが。
55:45
09/09/14 22:55:44
加算数と仕事はgroup byしたほうがいい気がするなぁ・・>>45
subクエリかけたら
t1 を(select 仕事,加算数 from t1 group by 仕事,加算数) tp に変更
#Access単体はあまり触ってないから、忘れちゃったよw
#それにしても、なんか違和感かんじるんだけどね
56:名無しさん@そうだ選挙にいこう
09/09/14 23:06:03
>>55
たぶんみんな違和感があると思うよ。
逆にどういう目的でDBを構築しようとしているか、ずばり言ったほうが早いかもね。
部分的な目的じゃなくて、スケジュール管理とか人材管理とかの最終的目的。
じつはExcel向きの仕事ではと思っている。
57:名無しさん@そうだ選挙にいこう
09/09/15 02:03:52
その壁紙は予想の斜め上行ってた。GJ
58:名無しさん@そうだ選挙にいこう
09/09/15 03:31:57
すみません、すごい基本的な話で申し訳ないんですが
追加クエリと削除クエリって どうやって作るんですか?
59:名無しさん@そうだ選挙にいこう
09/09/15 09:14:19
>>58
クエリの画面開いて クエリ(Q)のメニューに無い?
60:名無しさん@そうだ選挙にいこう
09/09/15 10:55:36
>>58
まずその条件で選択クエリを作る。それを追加クエリまたは削除クエリに変更できるよ。
61:名無しさん@そうだ選挙にいこう
09/09/15 16:43:34
Access2007のAccessのオプションをVBAからいじれませんか?
具体的に言うと、「ウィンドウを重ねて表示」と「タブ付きドキュメント」を切り換えたいと思います。
62:名無しさん@そうだ選挙にいこう
09/09/15 23:19:58
>>29
遅くなりましたがありがとうございます。
まぁやっぱりBaseじゃAccessに比べれば出来る事が限られてるんでしょうね・・・。
63:名無しさん@そうだ選挙にいこう
09/09/16 01:16:45
58です
基本的なことを聞いてどうも済みませんでした
64:名無しさん@そうだ選挙にいこう
09/09/16 09:09:46
>>62
SQL Server 2008 Express でもいいんじゃね?
#資料も多いと思うし、立ち上げすぎればそう変わらん気がする
#AccessのSQLの癖は、ちょっと変だし(2000までしか使ったことがないけど)
65:名無しさん@そうだ選挙にいこう
09/09/16 09:12:44
あDBとしてはってとこね。
単体でアプリ作れるとか、レポート等はもちろん評価してます
#自分の場合はExcel出力で、後は好きに出力して が多いから
66:名無しさん@そうだ選挙にいこう
09/09/16 21:20:37
お願いします。
access2000を使っています。
既存のエクセルファイルがあり、
シートの最上部数行に文章、
同じシートの最下部数行にも文章があり、
真ん中に数列で数行のデータ群があります。
発注書や納品書をエクセルで送付するイメージです。
このエクセルシートに、
テーブルまたはクエリで編集してきたデータをエクスポートすることは出来ますでしょうか。
67:名無しさん@そうだ選挙にいこう
09/09/16 21:25:08
>>66
できるけど、Excel使うんだったらExcelのほうで
ADOなり使ってクエリを呼び出したほうが早くないか?
68:名無しさん@そうだ選挙にいこう
09/09/16 21:36:20
上司のご依頼です・・・・
検索ボタン1個で送り先まとめて、
その下にある出力ボタンで送付できるようちょいちょいっとまとめて!
だそうです。
エクセルからのアプローチのが早いんですね・・
とりあえずは出来るのであればアクセスでやってみます
69:名無しさん@そうだ選挙にいこう
09/09/17 07:29:21
>>68
俺の場合、同じようなレポート形式で、データをまとめて、送り先フラグのついた
ものをベースにクエリって、個別PDF出力、連続メール送信をボタン一つでちょい
ちょいってやってます。
パスワードは乱数をつかって自動生成しています。
70:名無しさん@そうだ選挙にいこう
09/09/17 10:26:46
AccessからVBAでExcelたたいてもいいんじゃね?
#普通にやる処理だと思うよ
71:名無しさん@そうだ選挙にいこう
09/09/17 20:51:28
1回こっきりならともかく、長期運用を考えるとOLEオートメーションは鬼門
72:名無しさん@そうだ選挙にいこう
09/09/17 22:01:36
>>71
なるったけ、内部だけで完結したいと思う俺であった。
BASP21みたいなDLLはOKって考えだけれど
73:名無しさん@そうだ選挙にいこう
09/09/17 22:28:20
>>72
できるだけAccessで完結させたいね。どうしてもExcelを使う必要があるなら、
俺もExcel側にプログラムを実装しちゃうな。
LAN環境で違うPCからも接続できるし、フォルダー移動も自由自在、
ほかの人が気に入って自分も使いたいとか言われても
Excelのコピーを渡すだけで、Access側のプログラムをいじる必要がないもの。
74:禿げあたま
09/09/21 17:19:43
【 システム環境 . 】 Windows XP SP3, Access 2007
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 否
田舎のちっぽけなレンタカー屋で働いています。事務処理は今でも手書き伝票切ったりしているので、いい加減社長が切れてわたしがAccessを使ってシステムを作ることになりました。
ここで質問させて頂きたいことは、車輌の貸出期間の算出方法です。
VBAが全くわからないため、DateDiffという関数を使うのであろうというところまでは検索でたどり着けたのですが、それをどのように使うのかがよくわからなくて困っています。
75:禿げあたま
09/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:名無しさん@そうだ選挙にいこう
09/09/21 17:53:07
>>74
int((datediff("h",#2009/9/15 16:10#,#2009/9/20 12:00#)+14)/24)
これでどうだゲーハー
77:名無しさん@そうだ選挙にいこう
09/09/21 17:59:43
>>74
int((datediff("n",#2009/9/15 16:10#,#2009/9/20 12:00#)+60*14)/(60*24))
こっちかも知れんゲーハー
78:禿へ
09/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:名無しさん@そうだ選挙にいこう
09/09/21 20:30:24
>>74
値を丸める方法の1つして四捨五入がありますが、例えば小数点以下四捨五入の場合…
[元の値]に[0.5]を加えた後、小数点以下を切り捨てれば実現できます。
つまり、今回の場合は[返却日時]に[14時間]を加えた後で処理をすればOKですね。(>>77)
なお、日付と時刻を別々のフィールドにするのは何かとトラブルの元になりますので
貸出日時,返却日時のようにまとめるのが良いでしょう。
80:名無しさん@そうだ選挙にいこう
09/09/21 21:07:24
>>79
>何かとトラブルの元に
どういうことですか?詳しく教えてください。
81:名無しさん@そうだ選挙にいこう
09/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:禿げあたま
09/09/21 22:39:03
どうも、ゲーハーです。
みなさんレスありがとうございます!
難しいので禿あたまをなでくり回しながら考えているのですがよくわかりません。
>>77
どこに入力するのかわからなかったけど、規定値の所に入れてみたら動いたようです
とりあえずスクリーンショット撮ってみました
URLリンク(imagepot.net)
>>78
試してみたのですが、エラーになりました。
テーブルのスクリーンショットです。
URLリンク(imagepot.net)
もしかしてですが、わたしは時間を入力するのにルックアップウィザードを使って、10分刻みにリストボックスから選択できるようにしています。
日付・時刻型になっていないとか言う理由で、エラーになるのかな?
ちなみにクエリで漬かったSQL文は以下のものです。
SELECT 受注管理.[貸渡日], 受注管理.[貸渡時間], 受注管理.[返却日], 受注管理.[返却時間], IIf([返却時間]>([貸渡時間]+#12/30/1899 10:0:0#),[返却日]+1,[返却日]) AS 精算返却日, datediff("d",貸渡日,精算返却日)+1 AS 貸出日数
FROM 受注管理;
その他のレスも読ませて頂きました、よくわからなかったけどみなさんありがとうございます!
83:名無しさん@そうだ選挙にいこう
09/09/21 22:52:47
>>82
情報後出しのいい例か
84:名無しさん@そうだ選挙にいこう
09/09/21 23:25:01
すいません。
今、テーブルにあるAというテーブルとBというテーブルのなかの
会社名の抽出をしたいのですけど、例えば、Aの○○会社とBの○○会社 ほにゃらら支店みたく
なってるものがデザインビューで抜けません。
Aの列は抜き出したいキーワードが1000種類あり、Bの列は抜かれたい列があります。
完全一致でなくていいのですが、抽出条件になんといれればよいのでしょうか?
詳しい方、どうか教えて下さい。
85:名無しさん@そうだ選挙にいこう
09/09/21 23:31:44
>>81
前提がわからんので手順のみ
・コピペする時点では、テキストボックスの書式は
mm/dd/yy hh:nn:ss
コピペ後、つまりテキストボックス更新後にでも、
書式をyy/mm/dd hh:nn:ssに変更すればよかろうぞ
86:名無しさん@そうだ選挙にいこう
09/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
09/09/21 23:39:50
訂正
×応用が利かないけど
○融通が利かないけど
88:禿げあたま
09/09/21 23:59:46
>>83
後出し部分があったみたいで、すいませんでした。
「貸渡時間」「返却時間」のフィールドを日付・時刻型に変えると78のやり方で出来ました!ありがとうござました。
ルックアップ形式でリストボックスから選択した時間を、計算式の中で使うのは無理なのでしょうか?
時間の入力が楽なので出来ればこの形式で使ってみたいと思っているのですが。
89:名無しさん@そうだ選挙にいこう
09/09/22 00:02:34
>>85
> 前提がわからんので手順のみ
サーバーから取得したログのファイルを
DBに登録しています。
そのログの時間表記が先程の形式です。
で、おっしゃった書式の変更は以前試しましたが、
うまくいきませんでした。
というのは年と月の判断をアクセスはできないからでは
と思うのですが。
>>86
何かできそうな気がします。
文字列に置き換えて、位置を指定している
というイメージで宜しいでしょうか。
ひとまず、お二方有り難うございました。
90:>>78
09/09/22 00:30:42
>>88
ルックアップ形式ってのがいまいちわからんけど
そのリストボックスの値集合ソースをテーブルか
クエリにするってことならたぶんできそうな。
91:名無しさん@そうだ選挙にいこう
09/09/22 00:41:47
>>88
83じゃないけど
日付時刻型は日付のみ入力しても時間部分に
AM12:00が勝手に入力されたような(時間だけ入力だと日付部分には0が入るから大丈夫かと)
上のクエリだと問題なさそうだが貸渡日、返却日とNow関数なんかの
比較が必要なったときに予想外の結果が返るかも
92:名無しさん@そうだ選挙にいこう
09/09/22 00:51:26
>>84
外部結合とLike使えばできそうだが、たぶんクエリのデザインビューでは表現できない。
どっかで勉強してきて。
>>89
ログがyyyyなら書式変更でよいが、yyだとあかんね
93:禿げあたま
09/09/22 00:57:31
>>90
> そのリストボックスの値集合ソースをテーブルか
> クエリにするってことならたぶんできそうな。
時間を選択するリストを別テーブルにしてみたら出来ました!
>>91
日付は特に問題ないようです。
クリックするとカレンダーが出て日付を選ぶだけですので。
今日は普段使わない頭を使いすぎて眠くなってきたのでもう寝ます。
いろいろ皆さんありがとうございました!
94:名無しさん@そうだ選挙にいこう
09/09/22 01:05:38
>>85
何のかわからんけどそもそもlogの形式を変えれば済むんじゃないの?win鯖は解らんけど、LinuxやFreeBSDなら簡単だよね。
95:81
09/09/22 01:26:11
>>92
そうなんですよ。
一つのシステムは年/月/日と吐き出されるんですが、
一方は月/日/年で・・・。
仕様変更は別会社へ頼まないといけないらしくお金も掛かるので
Accessをいじって対応できれば良いなと思ったわけです。
今月は月も年も09なんでそのままでもできるのですが、
今月以外や日が12を超えるとおかしくなるので。
96:名無しさん@そうだ選挙にいこう
09/09/22 01:57:10
>>80
>>91
91さん、補足ありがとう。
97:名無しさん@そうだ選挙にいこう
09/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:禿げあたま
09/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:名無しさん@そうだ選挙にいこう
09/09/23 01:23:47
>>98
試してないけど
int((datediff("n",(DateValue(貸渡日)+TimeValue(貸渡時間)),(DateValue(返却日)+TimeValue(返却時間)))+60*14)/(60*24))
でどう?
100:名無しさん@そうだ選挙にいこう
09/09/23 01:55:07
>>98
貸渡時間と返却時間の書式を 時刻(S) 入力チェックを はい
貸出合計期間のコントロールソースには、
=int((datediff("n",[貸渡日]+[貸渡時間],[返却日]+[返却時間])+60*14)/(60*24))
#や[]で括ってる件については、Accessヘルプの「式」の項目でも読んでくれ
貸渡日と返却日の定型入力をウイザードから日付っぽいのを設定しておけば問題なかろう
受託管理テーブルについても日付時刻に関するフィールドのデータ型は、日付/時刻型に
合わせる。
テーブル側を先にすべて設定しとけばフォーム作成時自動的にやってくれるけどな。
夜更かしは抜け毛の原因だぜゲーハー
101:名無しさん@そうだ選挙にいこう
09/09/23 02:38:41
>>82のSS見ながらの前レスであったが、
車両マスタテーブルと車両稼働を表すテーブルがあれば業務管理っぽいことができそう
な気がするぜ。まぁがんばれゲーハー。
飲みすぎた、寝る
102:禿げあたま
09/09/23 08:35:47
お世話になっております。
ありがとうございます。朝起きて早速みなさんのレスを試させて頂きました。
>>99
エラーが出てしまいました
>>100
出来ました!時間もリストボックスから選ぶのではなく手入力に変えました。
抜け毛が気になるのは最初のうちだけですよ(^^)/
>>101
車輌マスタと車輌稼働テーブルで業務管理とかいいですねー。
実際にはお客様にレンタカーの予約を受けて、日付と車輌タイプを入力したら空いている車の一覧とそれぞれの料金(借りる日付によって個々に変動)の表示とか、できるようにしたいです。
最初は嫌々やらされている感じだったのですが、触っているうちに段々面白くなってきました。なんとか業務管理システムを作れるようになるまで頑張りたいと思います!
103:>>78
09/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
09/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
09/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:禿げあたま
09/09/23 13:01:26
>>103,104,105
ありがとうございます!
すぐにお返事できなくて申し訳ないです。時間取れたらすぐにでも試してみたいのですが、今日はちょっとばたばたしてまして......
>貸出合計期間1の方は、当日で10時間以内だと貸出合計期間が0になってしまっているが...
当初、ACCESSでどこまで出来るかも知らずに、とりあえず困った箇所だけを投稿させて頂きましたので、一日以下の料金のことは考えていませんでした。申し訳ありません。
時間が出来たら試してまた結果報告させて頂きたいと思います。
107:名無しさん@そうだ選挙にいこう
09/09/23 13:59:28
困った個所だけって認識あるから、別にいいのだけれども、
4時間/半日/7日間/1ヶ月/時間延長料金が出てきてみんなで軽くズッコケもありだと思う
108:>>78
09/09/23 22:39:26
とりあえず
4時間/半日/7日間/1ヶ月/時間延長料金が出てきても対応できるんだが
結局、設定する側のフォーマットが決まらなければなんともできね。
109:名無しさん@そうだ選挙にいこう
09/09/23 23:01:03
レポートを印刷するときにバーチャル印刷ソフト、例えばdocuworksとかアクロバットにフォーカスがわたるんだけど、その後に手動でAccessにフォーカスを戻すのが面倒です。
レポートの印刷の後にAccessにフォーカスを戻すコードってどう書くのでしょうか?
110:名無しさん@そうだ選挙にいこう
09/09/23 23:01:50
お願いします。
access2000を使っております。
あるマスタクエリがあり、そのマスタクエリの中のフィールドの一つである送信先フィールドに
国名が記載されています。
そして、この国名に沿って振り分けた国別クエリが10国分ほどあります。
この国別クエリは、国ごとにフィールド名もデータの表示形式も随分別の形に加工してあります。
現在はそれぞれの国別クエリのフィールド名やデータ表示形式を、
全て各国の指定した形式で加工する所まで終わっています。
あとはこれを、エクセルに出力し、とりあえずは完了という所です。
お尋ねしたいのは、この作成したクエリを、
既に用意してあるエクセルの内部にエクスポートする方法です。
VBAで何度か試しましたが、どうしても指定した位置にエクスポートすることが出来ず、
用意していたエクセルの内部データを全て上書きしてしまいます。
コード全てでなく、利用できそうな関数やメソッド、プロパティだけで十分有難いので、
是非ひとつアドバイスをいただきたく。
長文になりましたが、どうかよろしくお願いします。
111:名無しさん@そうだ選挙にいこう
09/09/23 23:20:49
>>110
ほぼわかんね。っていうかこういうパターンって
情報小出しで回答側が頭にくるパターン。
112:名無しさん@そうだ選挙にいこう
09/09/23 23:25:35
.CopyFromRecordset
113:名無しさん@そうだ選挙にいこう
09/09/24 00:01:40
>>110
CellsとかRangeで出力先を指定すればいいじゃない。
おおむねExcel VBAの話である
114:名無しさん@そうだ選挙にいこう
09/09/24 00:02:57
>>110
Excel オートメーションで調べればいい。
というか、俺はそれで同じように、給与計算のツール作っているし。
ボタンぽちっと押すと、Excelの対象のシートが立ち上がって勝手に
書き込みが始まる。
見ていて壮観だ。
115:名無しさん@そうだ選挙にいこう
09/09/24 00:19:47
>>109
Windowの制御か
APIにSetActiveWindowってのがあるが
ワンアクションが面倒とは、どんだけって気がする。
116:名無しさん@そうだ選挙にいこう
09/09/24 00:35:58
>>115
100人の顧客毎にレポートを印刷すると100アクションなんですよ。
顧客毎に数種類のレポートがあるから数百アクションです。
手動が好きな人ならパソコンを使わないで手書きにすればいいんでしょうが、私は自動の方が好きなもので…
117:名無しさん@そうだ選挙にいこう
09/09/24 01:23:47
連続印刷するのになぜフォーカスが必要なのでしょうか?
118:名無しさん@そうだ選挙にいこう
09/09/24 01:31:28
>>116
自動が好きでも自分で解決できないんなら手動でやることだな。
悪いことい言わんから、出力はXPS/PDFに限定して2007使っとけ。
1.あきらめる
2.ActiveWindowを管理する
3.2007にする
4.Shellつかってコマンドオプション指定してバックグランド可なプリンタを探す
5.お金かけて作ってもらう
119:名無しさん@そうだ選挙にいこう
09/09/24 01:55:38
>>117
顧客毎にフォームがあって、必要事項を記載してからレポートを印刷する仕様になっていますので、1枚ずつしか処理できないんですよ。
100人分のデータを入力してから全顧客の最新レコードを抽出してレポートに渡せば一括処理できますね。
うーむ。また改造か。mdbだから改造できるけど、本業がすすまない…
>>118
APIいじることにします。
120:名無しさん@そうだ選挙にいこう
09/09/24 02:25:37
>>110
白紙シート作ってそこにそのままエキスポートしてみるとか。
本当に書き込みたいシートのセルには参照だけ書き込んで置けばいいし
121:名無しさん@そうだ選挙にいこう
09/09/24 07:13:12
>>116
自動好きの俺からすると、随分と舐めた奴だなあんた。
その程度で自動が好きだとかさ。
何がいいたいのかわかるか?印刷ダイアログがどうとかほざいている
時点で既にな・・・
で、実際に>>119をみていると やっぱりって感じで。
1枚ずつしか処理できない?それは 君の力では ってだけの話だろうが。
その程度で自動化好きだとか、手動が好きならとか貶めてるような馬鹿に
教えてやる必要は感じない罠。
122:名無しさん@そうだ選挙にいこう
09/09/24 07:42:51
と、>>121というお方が御指導下さっているんだぞ皆さん!
123:名無しさん@そうだ選挙にいこう
09/09/24 08:10:22
☆☆☆★最大級の注意を★☆☆☆☆☆
☆☆☆★とくに千葉県、静岡県、東京都や関東で大震災の恐れが★☆☆☆☆☆
☆☆☆★とくに千葉県、静岡県、東京都や関東で大震災の恐れが★☆☆☆☆☆
☆☆☆★とくに千葉県、静岡県、東京都や関東で大震災の恐れが★☆☆☆☆☆
☆☆☆★世界の支配者ユダヤが地震兵器を使うのか★☆☆☆☆☆
友人、知人、親類縁者、あらゆるつながりを駆使して巨大地震がくることを教えて下さい。
四川地震より大きいのが来る可能性があります。
URLリンク(goldenta)<)
ワタスの予言では今月中に関東大地震だす3
スレリンク(eq板)
e-PISCO Part11
スレリンク(eq板)
ほんとに大震災だったら犯人は特権階級全員だってことにwwwwwwww
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
カナダの世界的科学者ロザリー・バーテルはハープが地震兵器や脳を損傷させる兵器の疑い
があるので情報を公開するように要請している
URLリンク(www.youtube.com)
124:名無しさん@そうだ選挙にいこう
09/09/24 08:31:44
>>121
いろいろとありがとうございます。
ただ、印刷ダイアログの話はした覚えがありませんので、初老期の認知症に気をつけてください。
これです。↓
> 何がいいたいのかわかるか?印刷ダイアログがどうとかほざいている
> 時点で既にな・・・
125:名無しさん@そうだ選挙にいこう
09/09/24 11:31:19
>>119
>100人分のデータを入力してから全顧客の最新レコードを抽出してレポートに渡せば一括処理できますね。
普通は、そう考えると思うが?
再印刷が発生した場合、どうするかを考慮する必要があると思うけどね
後は顧客単位の振り分け処理だね
DWは普通に印刷すると本体に吐くけど、それをどうやって区別するのか・・・
#フォルダ・ファイル名指定で出せるのかな?
126:名無しさん@そうだ選挙にいこう
09/09/24 11:46:21
>>125
再印刷はそもそものの仕様が顧客毎のフォームから1件ずつ印刷する仕様ですので、それを利用します。
DWでの管理はレポートのCaptionを変更することで対応しています。
CaptionがDWでのファイルネームになりますので。(少し小細工が必要ですけど)
振り分けは振り分けソフトで対応しています。1万条件まで対応するソフトがありますので。
いま使っているmdbは高価な業務用ソフトですけど、痒いところに手が届かない設計でうんざりしています。
業務用ソフトは現場を知っているプログラマが必要でしょうが、なかなか難しいんでしょうね。
コードを眺めると笑ってしまうことがあります。
127:名無しさん@そうだ選挙にいこう
09/09/24 13:39:51
レポートのCaptionを変更することでユニークなファイル名を生成できることに気づいているのもったいない
128:名無しさん@そうだ選挙にいこう
09/09/24 14:32:49
>>127
ん?全てにユニークな名前を付けていますよ。連番が必要ないようにしていますが…。
そしてファイル名に含まれる複数のキーワードで自動振分していますよ。
129:名無しさん@そうだ選挙にいこう
09/09/24 14:38:48
ちなみに振分はゼロックスの業務用ソフトは使っていません。フリーソフトとAccessだけで1万条件までは扱えますから。
振分ソフトのiniファイルを複数用意すればいくらでも条件は増やせますし。
130:名無しさん@そうだ選挙にいこう
09/09/24 15:04:47
業務ソフトだのフリーソフトだのAccessと関係ない話ばっかりで
母さん全然わかんないわよ!
131:名無しさん@そうだ選挙にいこう
09/09/24 15:22:35
>>127
そうなんだ?
#Excel出力であとはお任せが多いから、気にとめたこと無かったtks
132:名無しさん@そうだ選挙にいこう
09/09/24 18:49:28
>>127
何を言いたかったのか、詳しくよろしく!
133:名無しさん@そうだ選挙にいこう
09/09/24 19:13:15
もったいないっつたらエコにきまってる。
ユニークが生成されるのをAccess2000比で25%削減目標目指しますイニシアチブな快感でした。
134:名無しさん@そうだ選挙にいこう
09/09/24 21:51:44
ロハスなVBAを教えてください
135:名無しさん@そうだ選挙にいこう
09/09/24 23:28:49
結合
136:禿げあたま
09/09/25 03:00:40
すいません、時間が取れず返事が遅くなってしまいました。
>>103-105を試してみたら動きました!すごい、クエリってこうやって作るんですね。
料金はとりあえず1日料金さえクリアすればなんとかなると思っていました。
本当にど素人ですいません。
料金形態は「3時間まで」「6時間まで」「12時間まで」「24時間まで」「1日料金」「1ヶ月料金」となっています。
貸出期間が1ヶ月を超えた場合は1ヶ月 +1日あたりの料金となります。
>4時間/半日/7日間/1ヶ月/時間延長料金が出てきても対応できるんだが
>結局、設定する側のフォーマットが決まらなければなんともできね。
設定する側のフォーマットとはどのようなとこでしょうか?私としては大体このようなことが出来ればいいなと考えています。
■お客さんから注文が入ったらフォームに借りる日付と借りたい車種を入力、空いてる車や、料金などが自動で出てくる。顧客情報もこのとき新規なら登録、既存顧客の場合はリストから選択できるようにする。
■貸渡票・受注伝票・請求書・領収書などの印刷
■どの車輌が月にどれくらい稼働しているかなど表示したい
もう少し細かいことでやりたいこともありますが、とりあえずこれくらい出来れば業務で使えると思っています。
137:名無しさん@そうだ選挙にいこう
09/09/25 05:14:01
>>136
なんとなくでも、ゴールできそうと思えれば一歩前進したってことだぁ
やりたいことを明確にするのがベストだと思うのだ。
テクニックもいいが、基礎を固めるんだゲーハー
完全無毛になるまでがんばれゲーハー
138:名無しさん@そうだ選挙にいこう
09/09/25 08:32:44
ACCESS 2007 RUNTIME+XP
ADOで作ったレコードセットを表形式のフォームのレコードソースにしています。
実行させるマシンによってレコードが0件のときに「カレントレコードがありません」と
出る場合と出ない場合があります。
この差はどこからくるのかご存知の方いらっしゃいますか。
メッセージが出るマシンも以前は出ませんでした。
その間、何かをしたという記憶はないのですが
メッセージを抑制する方法でもいいのでよろしくお願いします。
開発はAccess2007とVISTAで行っています。
139:名無しさん@そうだ選挙にいこう
09/09/25 09:04:48
>>138
びす太を使う以上、解決策は無い。
140:138
09/09/25 10:11:54
>>139
レスありがとうございます。
XP2台での挙動が違うのでOSは関係ないと思います。
VISTA+RUNTIME(Access2007は入ってない)でもダイアログは出てきません。
141:名無しさん@そうだ選挙にいこう
09/09/25 10:26:20
>>138
URLリンク(hatenachips.blog34.fc2.com)
142:名無しさん@そうだ選挙にいこう
09/09/25 14:13:53
>>138
カレントレコードがありません(3021?)がどの時点で吐き出されてるのかわからんが、
エラートラップしちゃうか、recordset.count>0であるときフォームのレコードソースに
するってのはどうだろうか。
>出る場合と出ない場合があります
と言われてもなんともだなぁ。RuntimeにもSPあるから確認してみては?
まったく同じような環境なんだけど、トラブル発生したのは
・ADOのバージョン
・Xpマシンのメモリエラー
ってのがあった。
143:名無しさん@そうだ選挙にいこう
09/09/25 16:39:38
>>128
振分ソフトを使わなければ処理ができないなんてもったいなよねと思っただけだよ
まして上限1万の振分条件とかiniファイルを自分で管理しなくちゃいけないなんて聞くとかわいそうになってくる
だってユニークな名前があるならアクセスで全部できるじゃん・・・・どころか・・・ユニークな名前付けもアクセスでできるじゃん
よほどチープなマシンでなければ1万件を超える条件を格納できるテーブル、オンデマンドで条件を設定できるクエリ、各種条件を管理運用できるフォーム、ファイルシステムを操作できるVBAがあるアクセスがあるならあんたのやろうとしてる作業など容易だよ
144:名無しさん@そうだ選挙にいこう
09/09/25 16:50:27
>>126
現場を知っているプログラマが必要・・・じゃなくて現場のプアな説明を整理整頓して適切なロジックを考え的確な仕様書を書けるSEが必要なんだよ
できれば自分のやっている現場業務を冷静に判断し他者へ説明できる語学力を備えた現場業務担当がいればありがたいという話
145:名無しさん@そうだ選挙にいこう
09/09/25 17:05:08
>>143
あっ、振分もAccessで出来るのか!
それは考えてもいなかった。調べてみますね!
でも、同名ファイルがあるときのリネームとか面倒かな?VBSでも面倒だったし…
ちょっくら検索してみます!
>>142
同意です。
146:名無しさん@そうだ選挙にいこう
09/09/25 17:53:12
>>145
>>振分もAccessで出来るのか
抽出した振分条件をVBAでファイルシステムにぶつければ幸せになれる
リネームは次のメソッド
Name oldfile As newfile
File System OBJ は良いぞ
存在確認、サイズ取得、テキスト作成
おおよそ必要なものはそろっていると思ふ
147:名無しさん@そうだ選挙にいこう
09/09/25 17:55:35
>>146
ありがとうございます!
いやー、楽しみだ。
148:138
09/09/25 19:01:25
>>141 >>142
ありがとうございます。
>>141のブログを参考にして「追加の許可」を「はい」に設定してみました。
エラーは出なくなりましたが、当然ながら追加用の行が表示されました。
これで妥協するかと思っていたところ次の書き込みが
結果的にはバージョンが違っていたので最新版にしたところ0件のときでもエラーはでなくなりました。
根本的な解決ではないような気がして不安ですがこれでいこうと思います。
環境は全部そろえていたつもりだったのに勘違いしていたようです。
お騒がせしました。
それだけではなんなので提案していただいた方法も試してみました。
レコードがある時だけレコードソースを設定するというのは試していたのですが
0件のときに何もしなかったので前に設定したレコードソースが残ってしまい
この方法はダメだと思っていたのです。
しかし改めて書き込みをしてもらって0件のときはNothingにすればいいのではと気づきました。
で、やってみたところエラーダイアログはでないのですが
各フィールドが#Name?となった1行が表示されました。
1件でもレコードがあれば#Name?の行は表示されません。
ちなみにエラーは「カレントレコードがありません」だけでエラーコードはありませんでした。
なぜ挙動が突然変わったのかが疑問ですがとりあえず解決です。
みなさん、ありがとうございました。
149:名無しさん@そうだ選挙にいこう
09/09/25 20:06:11
>>148
コントロールソースもVBAで制御すれば#Nameエラー出さないようにできるぜ
150:138
09/09/25 21:15:57
>>149
なるほど!
非連結にすればエラーは出ないですね。
試したところバッチリでした。
エラーの出るバージョンがなくなってしまったのでわかりませんが、
この方法でしたらレコードセットの制御をしなくても大丈夫かもしれませんね。
151:>>78
09/09/25 21:46:36
>>136
だからさ
> 料金形態は「3時間まで」「6時間まで」「12時間まで」「24時間まで」「1日料金」「1ヶ月料金」となっています。
どの車は「3時間まで」はいくらで「6時間まで」はいくらでってのが決まらないといけないし、
さらにトヨタでいえばビッツとプリウスはたまたアリストとかそれぞれ違ったりするわけだよね。
152:禿げあたま
09/09/26 00:56:34
長文失礼致します。お世話になっております。
今日社内会議であたらしい料金形態をきっちり決めようということになりまして。
会議といっても、ほぼ社長の独断ですが年始から新しい料金形態でやることになりました。
まず、個人と法人を分ける。という頭がとても痛いことになりました。来年まで猶予はあるので少しずつデータベースの勉強しながらやっていこうと思っています。
個人の貸渡料金
・3時間まで
・6時間まで
・12時間まで
・24時間まで
・それ以降は1日料金
・22日を超えると一ヶ月料金+1日料金に切り替え
法人の貸渡料金(1日以下は無し)
・1日料金
・22日を超えると一ヶ月料金+1日料金に切り替え
44日を超えると2ヶ月料金(1ヶ月x2)になるはずですが、2ヶ月を超える貸出は過去10年一度もないので考える必要はないと思っています。
153:禿げあたま
09/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:禿げあたま
09/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とかゲーハー
09/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
09/09/26 01:49:36
recordsetがないっていう表現は変だな。察してくれ
157:名無しさん@そうだ選挙にいこう
09/09/26 07:49:28
そういやおれも大昔のDBはテーブル名に顧客管理とか社員管理とか部署管理とか管理だらけだったわw
158:138
09/09/26 08:32:13
>>155
ありがとうございます。
そういうやり方もあるんですね!
今回のはフォーム開きっぱなしで中身を動的に変えていくものなので
使えないのですが覚えておきます。
たまにフォームを呼び出す前にレコードセットのチェックをして
開くか開かないかを決めるというのも作っていたのですが、
教えていただいた方法なら新しいフォーム側の1つのプライベート変数のみで済みますね。
勉強になります。
159:名無しさん@そうだ選挙にいこう
09/09/26 08:51:16
>>157
俺のテーブルは、太郎と花子って名前が多かった。
顧客太郎だとか
社員花子だとか。太郎が外向き、花子が内向き用にテーブル名を分けてた。
退職する際には、あまりに酷い会社だったので、テーブルの名前を全部、
車の名前に変えた。年度更新のプログラムは前のテーブル名での設定だから
多分、停止したと思う。
160:名無しさん@そうだ選挙にいこう
09/09/26 09:09:38
ワロタw
161:>>78 離島のサンデーPG
09/09/26 12:39:46
>>152
1日を超えたら
例えば軽四で1日と2時間だったら
=1日まで4000円+3時間まで3000円=7000円?
それとも
=1日まで4000円*2=8000円?
例えば2日と7時間だったら
どういう料金設定?
162:禿げあたま
09/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
09/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:禿げあたま
09/09/26 19:42:40
>>163
混乱させてすいません。
間違えてました。初日料金(24時間まで)は別なので
1日まで4000円+3時間まで3000円=7000円
↓ こうなります
24時間まで4500円+3時間まで3000円=7000円
個人の方は結構ややこしくて、24時間=初日料金ということでそれ以降の1日料金より少し高いです。
さっきAccessVBAプログラミング開発工房 入門・基礎編を買ってきました。
2300円もするとは、高い~。この土日はVBAの勉強がんばります。
165:名無しさん@そうだ選挙にいこう
09/09/26 22:21:25
>>164
まずなんだが、今の貴男には無理でしょう。
俺だったら、関数作って対処する。ソレで済む。複雑っていっても、それは
貴男にとて複雑だと思っているだけで、その程度は、処理レベルとしては、
むしろ、複雑でもなんでもない。
貴男は、まず、Accessの知識より、情報を扱う記述ってのを身につけた方が
いい。あなたのその整理の仕方じゃ、プログラムは作れない。
166:名無しさん@そうだ選挙にいこう
09/09/26 22:40:08
>>165
まあまあ、そうなのは重々承知での話しなワケヨ。
> 混乱させてすいません。
> 間違えてました。初日料金(24時間まで)は別なので
> 1日まで4000円+3時間まで3000円=7000円
> ↓ こうなります
> 24時間まで4500円+3時間まで3000円=7000円
この時点で計算が違ってるし...あんまし真剣じゃないんだなって...
ものを造るって大変なことなんすよーって言いたい。
まずはVBA云々なんかよりも先にSQLと第三正規化までをみっちり学習してから
質問してほしいってのは本音なんだが...。
167:禿げあたま
09/09/26 22:46:22
>>165
ご意見ありがとうございます。
私自身プログラミングというものは全く理解できないのですが、
書籍やウェブで少しずつ勉強していければなと思っています。
165さんの仰るとおりプログラミングどころかAccessにふれてまだ3週間の
私には、まだ早すぎるシステム制作だろうと思っています。
ただ仕事の都合でどうしても私が制作しなければならないことになってしまい、ここで質問させて頂きました。
情報を扱う記述というのはどういったことを勉強すればよいのでしょうか?
私のようなレベルのものにも参考になる書籍などを教えて頂けると助かります。
幸いにもAccessを楽しいと思えるので、少しずつでも勉強して今後も使えるスキルに出来たらなと思っています。
168:離島のサンデーPG
09/09/26 23:02:04
>>167
楽しいと思えることをやればいいんだよ。
ただし、聞くからにはその前に自分で調べてからってことを忘れずにね。
169:禿げあたま
09/09/26 23:02:14
>>166
>> 24時間まで4500円+3時間まで3000円=7000円
>この時点で計算が違ってるし...あんまし真剣じゃないんだなって...
>
>ものを造るって大変なことなんすよーって言いたい。
m(_ _)m すいませんほんと、バカみたいな間違いですね。
真剣じゃないと思われても仕方ないです。
170:名無しさん@そうだ選挙にいこう
09/09/26 23:34:10
「制作」と「製作」
171:名無しさん@そうだ選挙にいこう
09/09/26 23:54:15
「Access」と「木同」
172:名無しさん@そうだ選挙にいこう
09/09/27 00:22:33
>>167
例えば今回のケースで言えば、最小単位はなんなのか?
それをベースに一定のレベルで符号化するとかね。この符号ってのは、フラグ
なわけだ。
1だったら、2時間 2だったら4時間 そういうフラグデータをいかに作っていくか?
そしてそのフラグを元に、VBAあたりで、select caseで処理してみるとか。つまり、
重要なのは以下に情報を整理するか?データベース特有なら正規化も当然にし
て重要だ。
データベースはまず情報をいかに整理するか?
殆どの人が自分の情報は整理されているというが、データベースを扱う人間から
したら、それは整理される前のデータにしか見えないというのは山ほど在る。
173:禿げあたま
09/09/27 01:55:06
>>172
ありがとうございます。勉強になります。
>例えば今回のケースで言えば、最小単位はなんなのか?
>
>それをベースに一定のレベルで符号化するとかね。この符号ってのは、フラグなわけだ。
私にはその最小単位が何なのかもよくわかっておりません。
データベースを理解するということでまた書籍なども購入してみようと思っています。
とりあえず年末まで猶予があるので、今はVBAを少しずつ勉強できればと思っています。
174:名無しさん@そうだ選挙にいこう
09/09/27 04:44:21
>>173
ほとんどの業務では最初は紙ベースの台帳があったはずです。
【貸出台帳】
[借りた人],[貸出車の自動車登録番号],[車両の大きさ],[貸した日時]
鈴木一郎さん,品川500わ12-34,小型,2009/09/27 16:30
これを毎回、面倒だけど手書きする。
そのうち賢い人が「自動車ごとに1号車,2号車って番号を振ったら楽じゃね?」と
思いつくわけです。そうだ車両台帳を作ろう!みたいに。
【車両台帳】
[号車],[自動車登録番号],[車両の大きさ],[基本単価]
こうすれば貸出台帳は、[借りた人],[号車],[貸した日時]の記入だけで済みます。
すると今度は車両台帳を記入する人が「車両クラス台帳を作ろう!」と思いつきます。
【車両クラス台帳】
[車両クラス],[車両の大きさ],[基本単価]
これで車両台帳の記入も楽になりました。
こんな風に、扱う項目を開発の早い段階で細切れにしておく。
そうすると業務が楽になるのは手書きでもAccessでも同じです。
175:名無しさん@そうだ選挙にいこう
09/09/27 08:15:31
>>173
あんまり難しく考えんなよ。
あれもこれもってなるとやっぱりAccessじゃなくてもいいやってなるぞ。
まあオレのことなんだがw
最初は現行(手書き?)のシステムの補助的なものでもいいんじゃないかな。
176:禿げあたま
09/09/27 16:27:39
>>174
わかりやすい説明ありがとうございます。
とても勉強になります。
>>175
>あんまり難しく考えんなよ。
>あれもこれもってなるとやっぱりAccessじゃなくてもいいやってなるぞ。
>まあオレのことなんだがw
>
>最初は現行(手書き?)のシステムの補助的なものでもいいんじゃないかな。
ありがとうございます。
私はあまり頭が良くないので、地道に勉強しかないと思っています。
今後のことも考えると、ここで誰かに答えを聞いてもいずれ困る日が来るのは間違いないので
焦らずにゆっくり基本から学んでいきたいと思っています。
皆さんいろいろご助言頂いて本当にありがとうございます。
177:名無しさん@そうだ選挙にいこう
09/09/28 02:59:28
Access初心者です。
XP+Access2003でテーブル1とテーブル2を
1対多で関連付けして連鎖削除をチェックしています。
テーブル1のレコードを削除したときに異常終了でAccessが
落ちるのですが、原因は何でしょうか。
178:名無しさん@そうだ選挙にいこう
09/09/28 07:09:44
>>177
M$サポートセンターへどうぞ
179:名無しさん@そうだ選挙にいこう
09/09/28 08:25:11
>>177
最適化してみたら?
180:名無しさん@そうだ選挙にいこう
09/09/28 09:47:04
WindowsXP上でACCESS2002RuntimeとACCESS2007Runtimeを共存させらレナ意でしょうか
それぞれのランタイムをインストールしてショートカットを作成し
起動時に使用するランタイムを指定しているのですが、
一度どちらかのRuntimeを使うと、もう一方のランタイムを使うときにインストーラーがいちいち起動してしまいます。
これを回避する方法はないでしょうか?
181:名無しさん@そうだ選挙にいこう
09/09/28 09:50:44
レナ意です
182:名無しさん@そうだ選挙にいこう
09/09/28 10:15:03
2007 Runtimeに統一できないの?
2002じゃないとダメっていうのはどういう場合?
後学のために教えてください。
183:名無しさん@そうだ選挙にいこう
09/09/28 15:14:07
Access2007でサブレポート付のレポートを作成しているのですが、
メインレポートでサブレポートの各項目を集計させるにはどのように設定すればよいのでしょうか。
具体的には、得意先ごとの請求書を作成していて、
メインレポート→得意先ごとの単票形式
サブレポート→パラメータで日付を指定して売上明細
と表示させています。
売上明細の数量、金額、消費税のそれぞれの項目を集計したものをメインレポートに表示したいのですが、
プロパティから式ビルドで
= SUM([数量])としてもうまく計算してくれません。
初心者の質問で申し訳ありませんが、ご教示よろしくお願いします。
184:名無しさん@そうだ選挙にいこう
09/09/28 17:31:44
>>182
2003形式のファイルを2007RTで動かすと落ちることがあるんです
その原因がはっきりしていないのと、そのファイルは他の人が作ったので、
できれば直すのは最終手段にしたい。
それとは別に、2007で作成したファイルも使うので、
ファイル毎にランタイムを使い分けられれば一番楽かなと。
185:182
09/09/28 18:26:59
>>184
参考になります。
私も2000で作られたmdbファイルを2007のRuntimeで動かしていますが
ちょっと怖いですね。
今のところ認識できる実害はないのでそのまま使っています。
始めは同じように共存しようとしたのですが、
やはり切り替えでインストーラーが立ち上がってしまいます。
「情報を集めています」とか出て長いんですよね。
解決につながるような情報がなくてすいません。
186:名無しさん@そうだ選挙にいこう
09/09/28 18:34:11
>>183
=Sum(Reports!メインレポート名!サブレポート名.Report![数量])
でどう?
187:名無しさん@そうだ選挙にいこう
09/09/28 19:31:54
Access2007です。
テキストボックスに入力されている値の小数第3位以下を切り捨てたいのですが
Int(Ccur(TextBox) * 100) / 100 で大丈夫でしょうか。
整数の100も通貨型に変換しないとダメですか。
試した範囲ではTextBoxのみ型変換すれば大丈夫そうなんですが
すべての数をチェックできるわけではないのでよろしくお願いします。
188:名無しさん@そうだ選挙にいこう
09/09/28 20:39:25
おれもすべての数はチェックできんよ
189:1/2
09/09/28 21:38:15
お願いします。
自宅ではaccess2003 仕事場では2000を使っています。
下記コードを実行したところ、自宅ではOK、会社ではユーザ定義型が定義されていないと怒られます。
参照設定はDAOは両方共3.6で、EXCELライブラリは会社が6.0、自宅はEXCEL11.0です。
どこに原因があるのかが見当つかなくて参ってます。
すいませんがお願いします
190:名無しさん@そうだ選挙にいこう
09/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:名無しさん@そうだ選挙にいこう
09/09/29 02:57:17
>>189
access2003で使ったときの参照設定EXCEL11.0が残ってるだけでないの?←仕様じゃね?
2007の互換モードなら下位互換を保持してくれるけど。
酔っ払いタクシー帰宅途中なので、間違ってたらスマソ
192:名無しさん@そうだ選挙にいこう
09/09/29 03:27:47
>>189
>EXCELライブラリは会社が6.0
6.0ってExcelのなにに当たるんだ?
CopyFromRecordsetあたりが上記ライブラリに無いのではなかろうか。
193:192
09/09/29 03:45:54
一応補足
文脈からわかるだろうが、CopyFromRecordsetはExcelライブラリのメンバーだから。
オブジェクトブラウザーでCopyFromRecordsetを検索してみれば。
194:名無しさん@そうだ選挙にいこう
09/09/29 04:36:13
>>190は、EXCEL VBAの話だと思うんだ
DAO3.6とCopyFromRecordsetのExcel2000の組み合わせで
なんかバグあった気がするなぁ
accessの問題ではないのではなかろうか。
195:名無しさん@そうだ選挙にいこう
09/09/29 05:30:28
>>194
URLリンク(support.microsoft.com)
これか?
196:183
09/09/29 12:00:05
>186
ご回答ありがとうございます。
早速ためしてみたところ、実行するとパラメータクエリのようにダイアログが出て
式がそのまま表示されます。
レポート名の指示などに何かルールがあるのでしょうか?
稚拙な質問ですみません。
197:名無しさん@そうだ選挙にいこう
09/09/29 14:51:25
>>196
サブフォーム/サブレポートの集計値をメインフォーム/メインレポートに
引用するには、一旦サブ側で集計させたコントロールを参照するがよろし。
>何かルールがあるのでしょうか?
当たり前です。式ビルダ使って確認してみるがよろし
198:名無しさん@そうだ選挙にいこう
09/09/29 16:21:33
【 システム環境 . 】 WindowsXP, Access2003
【 VBAが使えるか .】 はい
【 VBAでの回答 】 可
【 検索キーワード 】 レポート 枠外 テキストボックス 横展開
URLリンク(2sen.dip.jp)
↑エクセルファイルです。
これと同じものをACCESSのレポートで作成をしたいのですが、
行き詰ってしまいました。
すべてのテキストボックスを縦書きにして、フォントを@がついているものを使用したりしたのですが、
枠外での氏名や住所等を挿入する方法がわかりませんでした。
ぜひ、よき方法をご教授願います。
199:名無しさん@そうだ選挙にいこう
09/09/29 16:29:20
>>198
このExcelの表をレポートに貼り付けてしまえば?
200:名無しさん@そうだ選挙にいこう
09/09/29 17:19:39
>>198
なんとなくだが、やろうとしてることは無理じゃないすか
出力用データを1ページ分単位で整形したほうがいいのでは?
12ヶ月分と項目数は固定と考えてもよさげだし
201:名無しさん@そうだ選挙にいこう
09/09/29 17:21:46
あ、勘違いしてた。縦書きとかいう以前の問題なんじゃないの?
202:名無しさん@そうだ選挙にいこう
09/09/29 18:19:00
>>198
集計クエリをユニオンすればサクッと行く気がしないでもない。
203:190
09/09/29 19:26:53
遅くなりました。
あと会社のexcelは9.0でした。
うまくいかなかった原因は参照設定がうまく反映されてなかったみたいです。
DAOチェックはずす→チェックいれる→コードのDAOかかわってる部分も一回書き直す。
だけでいけました。
>>191-195
みなさんありがとうございました。
どうやらこっちの確認不足の粋でした。
204:110 190
09/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:名無しさん@そうだ選挙にいこう
09/09/29 20:18:11
GetObjectかな・・・・
でもExcelスレで聞くほうがいいと思うぜ・・・
206:名無しさん@そうだ選挙にいこう
09/09/29 20:21:03
ちょっと前のログに似たような質問してるやつが何人もいて
それっぽい解答もいくつか出てる。
207:名無しさん@そうだ選挙にいこう
09/09/29 20:22:28
Excel VBA側で操作したいのですが、
access一本で、というのが今回の課題ですorz
ちょいとgetobject調べてきます
208:198
09/09/29 21:22:13
やっぱり無理なんですかね?
色々調べてもレポートの枠外に文字を貼り付けることなど
ネット上ではhitしませんでした。
209:名無しさん@そうだ選挙にいこう
09/09/29 21:35:37
>>198
あなたは1973年4月2日生まれですね
210:207
09/09/29 21:35:59
set wks = XLS.Workbooks.Addにしてたのがだめでした。
set wks = XLS.Workbooks.Open("dir")
と、range
でいけました。
とりあえずありがとうございました!
211:名無しさん@そうだ選挙にいこう
09/09/30 00:31:36
>>198
レコードソースが解らないと、なんともいえない。
恐らく支払日ごとに全項目を手入力しているのだと思うが。
ヘッダをうまく使えば問題ないんじゃないか。
212:196
09/09/30 11:01:44
>197
ご回答ありがとうございました。
なんとかうまくいきそうです。本当に助かりました。
あともう一つだけお願いします。
サブレポートの数値を参照する際、数量を集計したコントロールはどう指定すれば良いのでしょうか。
式ビルダで選択できるのは元々あった(集計前の)コントールだけで、集計したところが表示されないので困っています。
どうぞよろしくお願いします。
213:198
09/10/01 19:57:19
>>209
1976年生まれです
>>211
ヘッダーに氏名、住所、生年月日などを入れると
A4用紙に収まらなくなったので困ってたのです。
もうちょっと工夫してみます。
214:名無しさん@そうだ選挙にいこう
09/10/01 23:15:41
>>213
俺より2年先輩か
ちなみに、俺も勤怠とか給与担当やっているから、つくっているけれど、こんなインターフェース
じゃないんだよね。今手元にないから、スクショとか出せないけれど、かなりいろいろ作り込んで
いるから、これと同じ物 もしくは それ以上の物つくれっていわれたらすぐ作れる。
ただ、言語化して伝えるのがとても難しい。
土日だったら、明日そのプログラムのスクショとって見せようと思うけれど。
215:名無しさん@そうだ選挙にいこう
09/10/04 21:53:48
おねがいします
2003使ってます。
アクセスからcopyfromrecordsetで、表が作成してある既存のエクセルシートに
あるクエリを出力しています。
出力先のエクセルに、クエリ内のレコードの総数に合わせて
表を閉じてくれるように組みたいのですが、
access側からのvbaでは操作できませんでしょうか?
よろしくお願いします
216:名無しさん@そうだ選挙にいこう
09/10/04 22:15:35
またおまえか
217:名無しさん@そうだ選挙にいこう
09/10/04 23:19:36
またかよって感じね
なぜにExcel VBA の話をここで質問するのだろうか
218:名無しさん@そうだ選挙にいこう
09/10/05 06:58:17
accessでExcel VBAを参照設定すれば、グラフだって作れます。
219:名無しさん@そうだ選挙にいこう
09/10/05 11:14:39
2007なら、マルチユーザ利用でも安定してる?
220:名無しさん@そうだ選挙にいこう
09/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:名無しさん@そうだ選挙にいこう
09/10/05 19:26:19
【 システム環境 . 】 Windows2000, Access2000?
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 否
【 検索キーワード 】 WHERE
WHEREを使ってある条件に一致するもののみ
抽出しているようなのですが、
(そのデータでは項目が1のもののみ
抽出している)
単純にWHERE記述の所だけ削除しても
だめなのでしょうか?
全ての情報を引き出したいのですが
222:名無しさん@そうだ選挙にいこう
09/10/05 19:42:10
>>221
エスパー希望
223:名無しさん@そうだ選挙にいこう
09/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:名無しさん@そうだ選挙にいこう
09/10/05 22:44:56
テーブル名や項目名に**使うな、超解り難いだろ
225:サザエボン
09/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:名無しさん@そうだ選挙にいこう
09/10/06 21:14:47
表を閉じろよ
227:サザエボン
09/10/06 22:43:13
>>226
いや、Loopの下もあるんだけれど、入りきらなかった。
ごめんちゃい
228:名無しさん@そうだ選挙にいこう
09/10/06 23:01:06
Nothing
229:名無しさん@そうだ選挙にいこう
09/10/07 09:32:57
221
* で検索
230:198
09/10/07 16:14:09
>>214
レスありが㌧
URLリンク(hatenachips.blog34.fc2.com)
こんなのを発見しました。
こいつを弄ってみます。
231:名無しさん@そうだ選挙にいこう
09/10/09 03:04:51
【 システム環境 . 】 Windows XP, Access 2003
【 VBAが使えるか .】 はい
【参考にしたサイト】
URLリンク(allabout.co.jp)
URLリンク(allabout.co.jp)
AccessでMySQLに接続し、データベースの内容を変更できませんか?
MySQLはLinuxに入っています。
具体的には、
MyODBCをインストールし、ODBCでMySQLに接続するのはできました。
ただ、accessで開くと、中身は見れるのですが、変更することはできません。
accessで変更し、MySQLに反映させることはできませんか?
accessで開くでは、ファイルの種類を「ODBCデータベース」にして、コンピュータデータソースから
選んでいます。(リンクテーブルです)
232:名無しさん@そうだ選挙にいこう
09/10/09 09:24:51
>>231
> Microsoft Access が自動的にテーブルからユニーク レコード識別子を
> 決定しない場合、ソース テーブルの各横列をユニークに特定するため、
> 各カラム、もしくはカラムのコンビネーションの確認が要求されること
> がある。使用したいカラムを選び、OK を選択する。
も実行している?
NGの場合は
Dmyでもいいから各テーブルに数値型の uniq key 作ってる?
#pgsql <-> Access だとそんな制約があった気がする
#うそだったらすまん
233:231
09/10/09 15:13:23
>232
> Microsoft Access が自動的にテーブルからユニーク レコード識別子を
> 決定しない場合、ソース テーブルの各横列をユニークに特定するため、
> 各カラム、もしくはカラムのコンビネーションの確認が要求されること
> がある。使用したいカラムを選び、OK を選択する。
で解決しました。
ありがとうございます。
234:名無しさん@そうだ選挙にいこう
09/10/09 16:05:02
最近は頭がうまく働かないという人が多いな。
どうも空気中のオゾンの濃度が上昇してるようで、これが原因みたいなんだな。
オゾンの濃度が上昇すると、人間の呼吸機能が害される。人間の呼吸器の機能が
低下すると、体内に取り込まれる酸素の量が減少する。すると脳にまわる酸素が
不足するようになって、脳の機能が低下する。脳の機能が低下すると頭が疲れやすく
なり、文字とかをたくさん読んだり書いたりすることが難しくなってきたりするし、複雑な
思考をすることも難しくなるんだな。
ちなみに一酸化炭素の致死濃度は1500ppmに対し、オゾンの致死濃度は50ppmで、
単純計算でオゾンの毒性は一酸化炭素の30倍強い。
URLリンク(www.showaboss.co.jp)
URLリンク(ja.wikipedia.org)
生活環境基準では0.05ppm(50ppb)が安全基準の上限なんだが、実際にはこの基準を
超える地域というのが最近は結構多い。
URLリンク(www.jamstec.go.jp)
このオゾン濃度が上昇する原因なんだが、最近はバイオ燃料を自動車で使うことが
原因として指摘されたりしている。
URLリンク(tvert.livedoor.biz)
URLリンク(wiredvision.jp)
通常のガソリン・軽油は炭素と水素原子だけで構成されるんだが、バイオ燃料(バイオエタノール)の
場合、酸素原子も燃料に含む。そしてその酸素原子がエンジンが吸入する空気中の酸素分子と
結合してオゾン(O3)になるのが原因ではないかと言われている。
235:名無しさん@そうだ選挙にいこう
09/10/09 21:40:50
>>231
できるか、できないかときかれれば、できるよ。実際にやってたし。
でも、accessであるが故の限界がすぐに訪れる。ちょっと複雑なことすると
遅くて使い門にならなくなる。素直にPHP+MySQLとかにしたほうが良いよ。
欲を言えばPHP+PostgreSQLがいいかな。実務ではこれを使ってる。
236:名無しさん@そうだ選挙にいこう
09/10/09 23:45:30
こんばんわ。
みなさんは、ACCESSで どのようなデータベースを作成していますか?
ちなみに俺は、名刺データベースを作っています。
名刺の情報を入力して、検索できるようにしています。
データベースを作るのが楽しくてたまりません。
でも、アイデアうかばないんです。
仕事に役立つデータベースを紹介して下さい。
237:名無しさん@そうだ選挙にいこう
09/10/10 03:34:41
>>236
「必要は発明の母」って言葉を知っているか。
アイディアが浮かばないということは、現状では名刺(顧客)管理ぐらいしか
あなたの業務では必要が無いということだろう。
恐らくたいていの人はあなたと逆で、
「アイディアはあるんだけど、そのアイディアを実現するスキルが無い」
なんじゃないかな?
238:サザエボン
09/10/10 07:11:54
>>231
ODBCリンクで、テーブル一覧がAccess側で見えているなら、普通そのまま
テーブル開いて、直接読み書きできるが?
できないのだとしたら、ODBC接続の設定をつくる場面で、ログインアカウント
を別途つくったユーザアカウントか何かにしていて、さらにそのユーザアカウント
が出来ることが、MySQL側でリードオンリーに設定されているからだと思うが?
俺の場合、身内で使うだけなので、rootアカウントで全部読み書きできるように
している。ただ、クエリの場合、作り方が変だと、読み書きができなくなる。これは
主キーの取り扱いに関する問題だから、Access単体でも起きるので、別問題。
239:名無しさん@そうだ選挙にいこう
09/10/10 15:42:05
>>238
それ主キーの問題ということですでに解決済みじゃね?
240:サザエボン
09/10/10 17:47:43
>>239
あ、本当だった 俺、馬鹿だな・・・・
だから、駄目野郎って言われるんだな。なんか凹んだよ
241:236
09/10/10 23:30:44
>>237
たしかに必要は発明の母ですね。
でも、必要だと気づかないだけで、
他人に言われてみれば、あぁそのDBいいなぁって思えるじゃん。
他人がどんなDBを作っているか知りたいんです。
242:名無しさん@そうだ選挙にいこう
09/10/10 23:54:21
殆どの人間は業務で発生する「大量データ」の入力・加工作業だ
言っちゃ悪いが名刺のデータ管理なんぞはエクセルで十分。
毎日100人との名刺交換が365日続くようならそこで初めてDBの出番だよ
243:236
09/10/11 00:33:07
名刺DB以外にもDBはつくっていますが、
名刺の数が500をこえると、DB作った方がいいと思います。
36500枚になる前に、なにかまずいと気づくはず。
フィールドの数が多いし、備考欄もつけて、付加情報を入力したり、
名刺の画像も添付したりしたいので、アクセスで作りたいです。
URLやメルアドも入力するので、エクセルだと、横長すぎるとおもいます。
というか、エクセルだと、ミスドラッグで、
セルのデータが移動してしまうのが
こわいんです。
244:名無しさん@そうだ選挙にいこう
09/10/11 00:41:45
↑なに?この人?
245:名無しさん@そうだ選挙にいこう
09/10/11 01:03:33
>>236
えーと、マジレスすると、Accessアプリってエンタープライズ系ではなく
EUCに特化した使い方が多いので、「仕事に役立つデータベース」と
きかれると、本当に特定の部署内の特定の誰かにしか関係ない(理解
できない)ほど業務寄りだったりします。
なので、書いてもまったく誰の参考にもならないどころか、下手をすると
何を書いているのかすら分かってもらえないくらいニッチだったりするので、
「○○のためのツール」と書いたところで、はたしてあなたの参考になるかどうか。
それよりも、いますぐ必要ではなくても、関数レベルやクラスモジュール
レベルで使えそうな機能を収集しておきましょう。何か作りたいものが
ひらめいたとき、引き出しが多いほど実現が早いですから。
246:236
09/10/11 01:13:09
>>245
マジレスありがとう。
必要としている人しか、
「これは使えるDBだ」と感じられないものなんですね。
247:名無しさん@そうだ選挙にいこう
09/10/11 01:41:38
名刺500枚程度なら桐にしとけばいいだろw
248:名無しさん@そうだ選挙にいこう
09/10/11 03:24:13
別に名刺の枚数でExcelや桐を勧める必要は無いじゃん。
確かに、少数の名刺管理をするためにAccessを購入するとかならともかく
すでに持っているのなら、Accessを使うべきだと思うのだが。
249:名無しさん@そうだ選挙にいこう
09/10/11 07:44:56
目的と手段が完全に逆になってるアフォへの皮肉だろ
250:名無しさん@そうだ選挙にいこう
09/10/11 13:47:42
>> 243
> URLやメルアドも入力するので、エクセルだと、横長すぎるとおもいます。
>> 243 は横方向にしか入力する発想しかできないんだろうな。
イタすぎる。
251:名無しさん@そうだ選挙にいこう
09/10/11 14:54:41
すみません。初心者です。質問です。
500MB、120万件のデータに対し、あるフィールドを
テキスト型→数値型に型変更をしようとすると64万件に減ってしまいます。
どうなってんだと思い、通しNoをつけようとオートナンバー型でIDを作ろうとしたら、
「クエリを完了できません。クエリ結果のサイズがデータベースの最大サイズ(2GB)より大きいか、
クエリ結果を一時的に保存するディスクの空き容量が不足しています」となります。
空き容量は18GBあるんですが。。どうすればよいでしょうか??
252:名無しさん@そうだ選挙にいこう
09/10/11 15:35:58
>>251
>テキスト型→数値型に型変更をしようとすると64万件に減ってしまいます。
数値に変換できないフィールドが削除されているんじゃないの。
253:251
09/10/11 17:22:04
>>252
ありがとうございます。その通りでした。
しかし相変わらずオートナンバーはできません。。
254:サザエボン
09/10/11 18:29:27
>>253
まずなんだけれど、二つある。
1つは、現状のまま、数値型に変換してどうこうなんだけれど、一時的にファイルが増加した際に、
Accessのファイルが2GBを越えているんだと思われる。もしくはメモリ不足?
もしそうなら、現段階でかなり来ている状態なので、二つ目として、MySQLへデータ部分をマイグ
レーションをお勧めする。MySQLにその為のツールがあるから、結構簡単に移植できる。
で、オートナンバーフィールドをどうするかなんだけれども、一度マイグレーションして、MySQL Administrator
上で、テーブルの設定に於いて、IDという数値型のフィールドを用意して、オートインクリメントにして
おく。さらにそれをPrimary keyにしておく。
これで大丈夫だったような。もしできなくても、一度移植した後データだけを消して、上の設定を施し、
Access側から、ODBCリンクで接続して、そこへ追加クエリで流し込むと上手くいくよ。
それだけの件数でそれだけのファイルサイズがあると、かなりAccessでの取り回しは面倒くさくなるか
ら、そういう手法を一度考慮した方がいい。MySQLをお勧めする理由は、マイグレーションが楽なのと
Administratorというツールが素敵だからだ。
大仕事にはなるけれど、一考していただけたらこれ幸いです。
255:サザエボン
09/10/11 18:33:06
>>253
MySQLでお勧めなツールは
ビジュアルにデータベース設計できるこれ Accessじゃすでにお馴染み
URLリンク(www-jp.mysql.com)
そして、さっき話してた奴
URLリンク(dev.mysql.com)
ODBCドライバ
URLリンク(dev.mysql.com)
256:サザエボン
09/10/11 18:34:41
>>253
ただ、MySQL Migration Toolkitはちょっといい加減な部分もなくはない。
たとえば、テキスト型とメモ型をはき違えるケースもあったりするので、こちらでそれを
手修正するケースも実際あったりした。また、型の取り扱いがAccessとMySQLとでちょ
っと違うからここは勉強が必要。
ただ、概ね良好だから、お勧めできる。一度挑戦してみて欲しい。それくらいデータがあ
ると、かなりつかいでがありそうだ。
257:サザエボン
09/10/11 18:36:07
>>253
あ、あと、もし、興味があって、一度挑戦してみたいというならば、手順はちょっと今まとめている。
よかったら、聞いてくれ。
258:253
09/10/11 18:51:08
>>サザエボン
ありがとうございます。いきなりハードル上がった気がしますが、やるだけやってみます。
259:サザエボン
09/10/11 19:04:08
>>258
いや、そんなに大変じゃないから。ちょっと時間は掛かるけれど。
ただ、同じ手法がAccess同士でも可能だ。
データが空で同じファイルを用意。空の方はオートナンバーのフィールドを用意
しておく。そのテーブルとリンクテーブルを貼って、データが入っている側のもの
を、追加クエリかなにかで、ごちゃっと渡してやる。
で、テキスト型を数値型に変換するほうは、解決できているなら尚結構。
260:253
09/10/11 19:36:51
>>259
>で、テキスト型を数値型に変換するほうは、解決できているなら尚結構。
いや、テキスト型で7桁の番号を数値型に変換すると、例えば同じ番号100個くらい続くうち、
半分くらいが削除されてしまうんです。見た目には同じ番号が続くように
見えるのに。。ヘルプ見ても検索しても情報出てこないし。
56個同じ番号が続いて全部削除されてたり、60個のうち2個だけ削除されたり、
で結局120万件が64万件になるんですよね。長整数型→十進数にしても同じでお手上げです。
261:名無しさん@そうだ選挙にいこう
09/10/11 20:01:04
>>260
事例
・全角・半角が入っていたり
・前後に空白があったり
・文字列のあとに枠外にスペースが
262:サザエボン
09/10/11 20:42:15
>>260
重複有りにはなっているんだよね?あとは、そうだな・・・クエリで、Val関数をつかって
みて、そのクエリで移植をしてみるとかな。
Valに変換できなかったものの原因を探ればいい。>>261氏のいう問題点ってのがきっと
あるはず。
263:253
09/10/11 21:01:37
>>261
>>262
いろいろとありがとうございます。重複はありです。空白や半角はチェックした
つもりですが、valやってみます。
264:名無しさん@そうだ選挙にいこう
09/10/12 03:14:51
>>253
苦労されてるみたいですね。
Accessはファイルサイズが2GBまでしか扱えません。
500MBあるファイル内で今回のようなことを行うと上限にぶつかる可能性があります。
この問題を回避するために、こんな方法はいかがでしょうか?
1.新しい空のmdbファイルを作成する。
2.そのファイル内に変換元ファイルのテーブルへのリンクを作る。
3.作ったリンクを元に[テーブル作成クエリ]を作る。
4.クエリを実行する。
※クエリをデザインする際は、テキスト型から数値型に変換を行うフィールドについて
Val([フィールド名]) としておいてください。(詳細はVal関数でヘルプを参照)
これで新しいファイルに希望されるテーブルが作成されるはずです。
その他、元ファイルにある変換不要なテーブルは新しいファイルに直接インポートします。
すべての作業が終われば、500MB以下に最適化された状態のファイルができるはずです。