Access総合相談所 其の21 【桐にしとけ】

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
ACCESSに関する質問はこちらへ!

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
  ・何がしたいのか
  ・どんな処理を試したか
  ・動作状況など駄目な理由
  テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません。
  図解があれば尚良し。
  聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
  大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。

▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【 システム環境  . 】 Windows**, Access**
【 VBAが使えるか .】 はい・いいえ
【 VBAでの回答  】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード

前スレ
Access総合相談所 其の20 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1230971374/l50

桐はこちら↓
管理工学研究所「桐」【4】
http://pc11.2ch.net/test/read.cgi/bsoft/1100708378/
2名無しさん@そうだ選挙にいこう:2009/04/22(水) 18:39:34
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/
3名無しさん@そうだ選挙にいこう:2009/04/22(水) 18:40:35
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名無しさん@そうだ選挙にいこう:2009/04/22(水) 20:08:16
FAQ
Q1) Access で累計や残高を計算するのにはどうすれば良いですか?
A1) 桐にしとけ。Accessでは、9500レコードまでならばDAOrecordset作って先頭から逐次計算していけば出来ます。
5名無しさん@そうだ選挙にいこう:2009/04/22(水) 21:36:29
>>1
6名無しさん@そうだ選挙にいこう:2009/04/22(水) 23:02:13
いいかげんスレタイの「桐にしとけ」は消せよ。
もうとっくにオワってる旧世代ソフトなんだからさ。w
7名無しさん@そうだ選挙にいこう:2009/04/22(水) 23:27:39
いや、「桐にしとけ」が無くなったら
エクセルの感覚で質問してくる人に、どう答えるのさ?
8名無しさん@そうだ選挙にいこう:2009/04/23(木) 01:32:59
Oracleの買収により突如脚光を浴びるOOo Base
9名無しさん@そうだ選挙にいこう:2009/04/23(木) 06:52:16
宛名ラベル印刷がうまくいきません。
access上に型番の登録のない用紙(上下左右の余白がなし)を使用しています。
どのような設定にしたらよいのでしょうか。
10名無しさん@そうだ選挙にいこう:2009/04/23(木) 13:24:47
余白いっさいなしの印刷なんてできたっけ?

とかいう問題ではないんだろうな
とりあえずテーブルかクエリを元にレポートつくってあとは自力でデザインだろ
11名無しさん@そうだ選挙にいこう:2009/04/23(木) 13:44:08
ふちなし印刷できるプリンタ・プリンタドライバ使ってるなら
普通に余白ゼロに設定できないか?
12名無しさん@そうだ選挙にいこう:2009/04/23(木) 15:31:18
ピボットグラフでグラフに値を表示する方法ってありませんか?
13名無しさん@そうだ選挙にいこう:2009/04/24(金) 10:39:50
おい、オマイラ、ここ見てみて

http://www.accessclub.jp/
14名無しさん@そうだ選挙にいこう:2009/04/24(金) 11:02:39
前スレ993です。

>>前スレ996さん
サブクエリ内をシングルクォーテーションにしても無理ですね・・・。
「サブクエリ'名前'のメモ型またはOLEオブジェクト型のデータが正しくありません。」
と怒られてしまいます。

スレが変わってしまったので、再度質問を掲載します。
OS:WindowsXP SP3
Access:2000

ID      名前          住所
"I001"    ""           ""
""     "某株式会社"     ""
""       ""        "某県某市某所"

こんな風に値が斜めに入っているテーブルがあります。
""は空白の事です。
各列は、値以外は全て空白となっています。
名前の値を一番上のレコードにUPDATEしようとしたら無理でした(Oracleだと出来るみたい)。
SQL文は以下で、サブクエリのところでエラーになってしまいます。
名前と住所の値を最上行に移動させたいのですが何か良い方法ありますでしょうか。
2000が、サブクエリの値をSET出来ない仕様だったらダメポって事ですかね・・・。

UPDATE tbl_01
  SET 名前 =
    (SELECT 名前
    FROM tbl_01
    WHERE 名前 <> '' )
      WHERE ID like 'I*';
15名無しさん@そうだ選挙にいこう:2009/04/24(金) 12:50:48
>>14
クエリ一発では無理。構文だけ見たらサブクエリの結果が1件とは限らないし。
一度、IDと名前をワークテーブルに書き出して、1対1で更新するのはどうかな?
16名無しさん@そうだ選挙にいこう:2009/04/24(金) 13:10:25
質問

Access VBAから Windowsの環境変数 (Path等)を取得するにはどうすればよいですか?
17名無しさん@そうだ選挙にいこう:2009/04/24(金) 13:23:54
自己解決しました。

environ関数があったんだ。
18名無しさん@そうだ選挙にいこう:2009/04/24(金) 14:56:14
>>16

Application.CurrentProject.Path
19名無しさん@そうだ選挙にいこう:2009/04/24(金) 16:33:08
>>15
ありがとうございます、やっぱり無理ですか・・・。
ご指摘の通りにIDと名前を、それぞれ個別のワークテーブル(tbl_03,tbl_04)に保存して
改めてUPDATE文を実行してみました。

UPDATE tbl_03
SET 名前 = wrktbl_04.名前
WHERE tbl_03.ID like 'I*';

やっぱりダメポ・・・。
20名無しさん@そうだ選挙にいこう:2009/04/24(金) 16:39:03
素直にDAO使ったら?
21名無しさん@そうだ選挙にいこう:2009/04/24(金) 17:37:31
>>19
基本的に勘違いされているようですが、SET [フィールド] = xxxxxの部分で
xxxxxが一意である事が保証されていないとアップデートできませんよ。
(wrktbl_04.名前は複数レコードかもしれないでしょう?)

要は、次のようなクエリを考えてから・・・
ID,名前(コピー先),名前(コピー元)
I001,"","某株式会社"

これをUPDATE文に書き換えることを考えましょう。

>>20
自分もDAOを使うと思う・・・
22名無しさん@そうだ選挙にいこう:2009/04/24(金) 18:09:50
>>14
これじゃダメ?

UPDATE tbl_01
SET 名前 = (SELECT MAX(名前) FROM tbl_01)
WHERE ID like 'I*';
23名無しさん@そうだ選挙にいこう:2009/04/24(金) 18:43:07
>>22
たぶん駄目です。
SET [フィールド] = (サブクエリ) の形式は恐らく全部跳ねられるかと。

UPDATE (サブクエリ) AS Sub
SET Sub.[フィールド1] = Sub.[フィールド2] という構文にすべきなんですよ。
24名無しさん@そうだ選挙にいこう:2009/04/24(金) 19:06:09
>>13
yahoo!に飛ばされるんだが
25名無しさん@そうだ選挙にいこう:2009/04/25(土) 01:33:04
Accessってなんであんなに使いにくいんだ?
桐を見習え
26名無しさん@そうだ選挙にいこう:2009/04/25(土) 01:58:06
桐タンス
27名無しさん@そうだ選挙にいこう:2009/04/25(土) 11:20:00
桐きり舞
28名無しさん@そうだ選挙にいこう:2009/04/25(土) 11:25:29
バックアップに記述をして
翌日にあけようとしたら
権限がないと出て困ったことがあります

何が原因なんでしょう
29名無しさん@そうだ選挙にいこう:2009/04/25(土) 13:01:16
>>13
私もyahoo!に飛ばされる。
ハッキングされたのかそれともDNSキャッシュポイズニングの巻き添えを食ったか?
30名無しさん@そうだ選挙にいこう:2009/04/25(土) 13:49:42
ここのソフト安いよ
http://www.hhyyhh22.co.nr
31名無しさん@そうだ選挙にいこう:2009/04/25(土) 13:59:46
The Office Sustained Engineering team has announced the official ship date. Highlights for Access include:
? The ability to export reports to Excel has been added.
? Fixes for issues with the import data wizards, report printing and previewing, macros, Excel integration, and date filters.
? Updates to Access Developer Extensions and runtime (including as a patch) are now included in SP2.
We will have a complete list of fixes available on the 28th.
32名無しさん@そうだ選挙にいこう:2009/04/25(土) 14:38:20
テーブル設計についてなんですが、
主に検索や抽出に使用するフィールドは、
そのほかの主に表示するだけのフィールドとはテーブルを分けておいたほうが、
データ量が増えたとき、検索スピードが速くなったりするのでしょうか?
でもそうするとクエリで結合させる必要が出ますよね。
だったら最初からひとつのテーブルにまとめてしまったほうが処理は早いのでしょうか?
33名無しさん@そうだ選挙にいこう:2009/04/25(土) 17:22:24
> 最初からひとつのテーブルにまとめてしまったほうが処理は早いのでしょうか?
確かに結合なしで一つの表で管理すれば、表を開くスピードは速いですが、それではデータ管理上問題が出てきます
そのために、テーブルを正規化にしたがってテーブル分けするし、マスターテーブルには必ず主キーを設定するんだよ

主キーには自動的に固有インデックスがついているので、結合する表同士では多対1の関係となっている
ようになっているので、(クエリ単体での利用であれば)ACCESSで扱う程度のレコード数であればほとんど
結合にかかる時間は気にならないはず

それでも1つの表で管理したいのであればわざわざACCESSを利用しなくても、Excelや桐で扱ったほうがむしろ楽かもしれないですね
34名無しさん@そうだ選挙にいこう:2009/04/25(土) 17:48:27
レスどうも。
>そのために、テーブルを正規化にしたがってテーブル分けするし
テーブル分けにも正規化ってあるのか・・・よくわからないや。
入門書程度しか見てないからかな。
分かりやすい参考書とかあります?
35名無しさん@そうだ選挙にいこう:2009/04/25(土) 18:30:53
>>32
検索や抽出に使用するフィールドを分けるって、んなバカな…
何のためにインデックスがあるのかと
36名無しさん@そうだ選挙にいこう:2009/04/25(土) 18:35:44
それ以前に
データーは細切れにしといたほうがいいんですよね
でっかいシートとかはエクセルの話で
え。みんなそんな理由で分けたりするのか?
検索や抽出に使用するならインデックス張ればいいだけじゃね?

正規化するなら、ちゃんとデータ管理が分散・冗長化していないか
の観点からしたほうがいい気がする。
検索キーかどうかを基準にテーブルを分けて、それを正規化と
言い放ったヤシにはいまだかつて会ったことないんだが。。。
それって第何正規形?
第13正規形。
童貞守って30過ぎると使えるようになるらしい。
39名無しさん@そうだ選挙にいこう:2009/04/25(土) 19:11:59
>>29
Access Clubが閉鎖されるのかな・・・・

木曜日ころから飛ばされるようになっていたから、どうなんだろ

ただ、仮にも閉鎖ならばその旨表示すべきだし、yahooに飛ばすなんて
正直ちょっと馬鹿げているから、ハックの可能性は高いとは思うが
4032:2009/04/25(土) 19:12:47
ども。質問元ですが。
単純に検索とか抽出するときってテーブルをメモリーに読み込んで処理してるんだろうから、
テーブルが小さいほうがCPUも付加が少ないだろうなと考えたもんで。
検索を多用するフィールドにはインデックスを着ければ、処理が早くなるんですか?
インデックスは主キーにしかしてませんです。(オートナンバー)
だから検索には全然有効じゃない状態なんですね?
てことで、無理に小さいテーブル細分化する必要はないということですかね?
41名無しさん@そうだ選挙にいこう:2009/04/25(土) 21:09:08
OPEN(Cancel As Integer)
の「(Cancel As Integer)」
ってどういう意味ですか?頻繁に目にしますが、
図書館で借りた本に記載されていません。
42名無しさん@そうだ選挙にいこう:2009/04/25(土) 21:10:46
43名無しさん@そうだ選挙にいこう:2009/04/25(土) 22:05:00
コピペ?
>>40
グダグダいってないで、まずはインデックスを張れ。
話はそれから。
4532:2009/04/26(日) 06:47:13
┐('〜`;)┌
46名無しさん@そうだ選挙にいこう:2009/04/26(日) 08:48:07
ColumnWidthに関する質問です。

Me.Form.[サブフォームの項目1].ColumnWidth = Me.Form.[サブフォームの項目2].ColumnWidth

というプログラムを作って「サブフォームの項目1」の列幅を「サブフォームの項目2」と同じになるように
したいのですが、実行すると

『オブジェクトは、このプロパティまたはメソッドをサポートしていません。』

という
エラーメッセージが表示されます。

どうすれば正しく表示されるのでしょうか?
47名無しさん@そうだ選挙にいこう:2009/04/26(日) 11:23:50
Me.埋め込み0.Form.[サブフォームの項目1].ColumnWidth
4846:2009/04/26(日) 14:00:56
>>47
「埋め込み0」メインフォームで設定したサブフォームの名前のことですか?
それともソースオブジェクトのことですか?

私はその2つを同じ名前にしてしまったのですが・・・
49名無しさん@そうだ選挙にいこう:2009/04/26(日) 14:33:58
@「Docmd」
A dim
は、通常何て呼ばれているのですか?
デュコムド、ディム
とかですか?
50名無しさん@そうだ選挙にいこう:2009/04/26(日) 14:44:49
@Do Command
ADimension
51名無しさん@そうだ選挙にいこう:2009/04/26(日) 14:51:38
@ドゥーコマンド
Aディメンション
52名無しさん@そうだ選挙にいこう:2009/04/26(日) 15:09:24
私も初学者ですが
エンジニアの方の間では「ディム」と省略されて呼ばれていると思っていました。
53名無しさん@そうだ選挙にいこう:2009/04/26(日) 16:44:16
>>52
VBで仕事してるけど会社の人との会話ではDimという言葉が出てくることはないね。
(「ここで2次元配列を宣言して・・・」とかそういう風にしか言わない)
でも自分の中では「ディム」って呼んでる。だってそのまま読めばそうなるし。w
ちなみにDimに関してはこんな↓情報もあったよ。参考にしてね。

http://q.hatena.ne.jp/1137742273
自分は「ディム」と呼んでる。
が、正直どっちでも気にならない。

それよりも、「Delete」を「ディレート」とか、
「Resume」を「レジメ」の方が引っかかるなぁ。
5546:2009/04/26(日) 17:04:17
>>47
の方法を試してみたら、今度は

「コンパイルエラー メソッドまたはデータメンバが見つかりません」

と出ました。

サブフォームの名前とソースオブジェクトを同じにしても別々にしても
同じ結果が返ってきました。

これを解決するにはどうすればよいのでしょうか?
56名無しさん@そうだ選挙にいこう:2009/04/26(日) 20:48:36
フォームとサブフォーム、どっちのモジュールに書いてるの?
5746:2009/04/26(日) 22:00:49
>>56
サブフォーム側に書いてます
58名無しさん@そうだ選挙にいこう:2009/04/26(日) 22:34:16
>>56 じゃないけど ColumnWidth ってことはリストか?
だったらこんな感じで良かったかな
リスト.Column[1].ColumnWidth = リスト.Column[2].ColumnWidth
59名無しさん@そうだ選挙にいこう:2009/04/26(日) 22:48:00
サブフォームのopenイベントに書いてるのか
だったら普通に
Me.[サブフォームの項目1].ColumnWidth = Me.[サブフォームの項目2].ColumnWidth

データシートのフィールド表示幅でしょ?
60名無しさん@そうだ選挙にいこう:2009/04/26(日) 23:10:19
VBとbasicを勉強するように言われた
(-_-;)。
しんどいよね
(-_-;)。
VB.NETなら、勉強しておいても別にいいんじゃね。
N88とか言われたらモチベーション的にツライけど。
6246:2009/04/26(日) 23:29:23
>>59の方法を試したら上手くいきました!
ありがとうございました!!

サブフォーム内の処理ですから特にフォーム名を設定する必要はなかったんですね・・・

・・・ところで「Me.」と「Me!」の違いって何なんでしょうか?
63名無しさん@そうだ選挙にいこう:2009/04/26(日) 23:33:57
>>61
VBとVB.netとはちがいがあるのでしょうか…。
6461:2009/04/26(日) 23:49:36
>>63
むしろ藻舞さんがどういうつもりで「VBとbasic」って分けて
書いたのか、こっちがそのココロをききたい感じだけど。

VBはMSの製品で、VB.NETはその最新バージョン。
旧バージョンはVB6.0とかありましたけど。
ちなみに現行のVBA6.0は、VB6.0のサブセット。

BASICとだけ書かれると、腐るほど実装系があるから
なんともいえない。ActiveBasicユーザもけっこういるし。

で、Accessスレで何を語りたいわけ?
65名無しさん@そうだ選挙にいこう:2009/04/27(月) 00:15:04

>>29
>>39
Access Clubよ
早く復活してくれ!!
66名無しさん@そうだ選挙にいこう:2009/04/27(月) 00:58:25
一昨日までは見れてたような
67名無しさん@そうだ選挙にいこう:2009/04/27(月) 13:34:28
2007のフォームで右クリックで出るショートッカットメニューを
追加編集したいんだけど

マクロで一から作る方法は解かったが、デフォルトの規定ショートッカットメニューが秀逸で良いので、それに機能追加したい
どうやったら良い?
68名無しさん@そうだ選挙にいこう:2009/04/27(月) 19:05:05
最近【激安PCソフト】の事がよく載って、消されてるけど
ここで買っても大丈夫?
買ったことある人教えてください
69名無しさん@そうだ選挙にいこう:2009/04/27(月) 20:14:18
>>61
俺はうれしいかも。w
昔よくダンジョンゲーム作ったなあ・・・。
ちなみにベーマガが教科書でした。www
70名無しさん@そうだ選挙にいこう:2009/04/27(月) 22:23:59
マクロでActiveControlの値を取得できる?
71名無しさん@そうだ選挙にいこう:2009/04/28(火) 00:29:14
フォームウィザードの表形式とデータシートの違いは何?

上司に突然質問されて全く答えられなかった・・・( T∀T)
72名無しさん@そうだ選挙にいこう:2009/04/28(火) 01:07:41
その場で作ってみればわかるんでないの
73名無しさん@そうだ選挙にいこう:2009/04/28(火) 10:09:56
>>71 わかりませんでよし!その程度、自分で調べて貰わなければ困ります。
74名無しさん@そうだ選挙にいこう:2009/04/28(火) 14:52:56
質問です、フォームで書き込み用のテーブルを呼び出してそのテーブルにデータを入力。
そして、そのテーブルに新しい名前をつけて保存。という事ってできますか?
75名無しさん@そうだ選挙にいこう:2009/04/28(火) 16:43:08
create table ありそうだからできるんじゃない?
create table as 使えれば楽なんだけどね
76名無しさん@そうだ選挙にいこう:2009/04/28(火) 18:14:55
>>21
マクロだと色々不便なようなので、とりあえずDAOでやってみました。
拙いですがコードさらします。クローズとかは省略しています。

Sub UpdateWrktblDAO()
  Dim db As DAO.Database
  Dim rs1 As DAO.Recordset
  Dim rs2 As DAO.Recordset
  Dim strSQL As String
  Set db = CurrentDb
  Set rs1 = db.OpenRecordset("tbl_02", dbOpenDynaset)
  strSQL = "SELECT 名前 FROM tbl_02 " _
  & "WHERE 名前 <> ''"
  Set rs2 = db.OpenRecordset(strSQL, dbOpenDynaset)
  rs1.Edit
  rs1.Fields("名前").Value = rs2
  rs1.Update

rs1.Fields("名前").Value = ""←ここに名前の抽出結果を入れて一行目のレコードに入れたい
rs1.Fields("住所").Value = ""←ここに住所の抽出結果を入れた一行目のレコードに入れたい
↑こんな風に出来れば理想なんですが、私にはこれが限界です・・・orz
WHERE条件の条件式のところは、値以外は全て空白なのですが、
この条件式だと値の一意性は保たれないのでしょうか。
77名無しさん@そうだ選挙にいこう:2009/04/28(火) 19:25:14
>>74
DoCmd.CopyObject "", "新しい名前", acTable, "テーブルの名前"
78名無しさん@そうだ選挙にいこう:2009/04/28(火) 21:46:32
>>76
実際のデータはこんな形なのでしょうか?
コピー元とコピー先の関係には、何か決まった規則があるのでしょうか?

"ID", "名前", "住所"
"I001", "", ""
"", "名前1", ""
"", "", "住所1"
"I002", "", ""
"", "名前2", ""
"", "", "住所2"
"I003", "", ""
"", "名前3", ""
"", "", "住所3"

それが明確にならないと問題は解決しません。
上から3行ずつを1セットとして考えたら良いのでしょうか?・・・
>>76
order byつけてないけど、順序は大丈夫なのかそれ?
連番ついてたらupdate一撃だけどな。
80名無しさん@そうだ選挙にいこう:2009/04/29(水) 09:54:41
ACCESS 2007でVBAを使ってクエリからデータを読み取って、
散布図と近似曲線・近似式を書きたいのですが、どうやったらいいですかね。

Excelだとサンプルも多いし割と簡単にできたんだけど、ACCESSだと勝手が違うみたいで。
81名無しさん@そうだ選挙にいこう:2009/04/29(水) 11:21:04
そういうのは、AccessからExcelを呼び出して処理させるけどね。
82majires:2009/04/29(水) 16:06:40
Access Club復活してよかった
83majires:2009/04/29(水) 16:09:07
>>80
散布図ってことはグラフですよね?

Excelとの違いは、グラフの素データ つまりクエリを使う ということで、
グラフオブジェクトはっつけたら、そいつのデータとして、そのクエリを指定
していやることになります。

ただ、Excelとちがって、クエリなので取っつきにくいかもしれませんね。
84名無しさん@そうだ選挙にいこう:2009/04/29(水) 16:15:01
>>82
つか、原因はなんだったんだ? 何の釈明もなかったし……って、
情報発信とかサイトへの要望(だったっけか?)とかがなくなっているし。
85名無しさん@そうだ選挙にいこう:2009/04/29(水) 17:04:01
>>80
Access単体で問題解決をしようと思わないで、素直にExcelでやるのがよろしいかと
そもそもOfficeはソフト間で横断的にデータをやりとりして、一連の作業を行うこと
で作業効率を図れる利用形態こそが、昔のソフトの決定的な違いでしょうからね

ただ最近はバージョンアップによって、一つのソフト内でも色々な機能が追加されてきているので
Officeが出始めた頃のマ○クロソフトの言い分とちょっと逆行している感もありますけど
86majires:2009/04/29(水) 18:41:25
>>84
いくつか、リンクがなくなっているのは確かだね。

結構長い間、yahooに飛ばされていたから、ちょっと心配やね。
一言くらい欲しい。

ただまぁ、閉鎖とかじゃなくてよかった。
過去ログとか結構重宝してたから
87名無しさん@そうだ選挙にいこう:2009/04/29(水) 19:42:58
フォームの表題:caption に現在日付を表示したいのですが、
88名無しさん@そうだ選挙にいこう:2009/04/29(水) 19:51:22
どうぞ、ご自由にやってください。
89majires:2009/04/29(水) 20:13:51
>>87
http://www.tsware.jp/tips/tips_138.htm

"AppTitle"の部分を now()とかにすればいい。で、これをautoexecというマクロで
起動時に叩く。このVBA自体、標準モジュールにでも書いて於いて、マクロは、
プロシージャを実行でも選んで、そのsubプロシージャの名前を選ぶ。

れこで
90名無しさん@そうだ選挙にいこう:2009/04/29(水) 20:27:21
>>89
ありがd
91名無しさん@そうだ選挙にいこう:2009/04/30(木) 08:46:23
>>76
DAO 使うって、そういう意味じゃないのだが…

先頭レコードがら最終レコートまでループ処理
""だったら前レコードの値入れるとか
92SP2-1/4:2009/04/30(木) 09:35:10
Access "#Error" is displayed in the output when you print a report that has an expression in Design View.
Access A Click event on a form reports the wrong record until the event ends.
Access A licensed ActiveX control cannot open in Access 2007 when the .lic file is renamed or does not exist. The .lic file is only required to insert the control and does not need to be present on the machines that the database is deployed to.
Access A passthough query is executed twice when the query is saved.
Access A run-time error occurs when you set any position property (top, left, height, or width) of a control in the OnFormat event.
Access A StopMacro action in a macro that is looping through the use of the repeat expression argument in the RunMacro action will cause all pending iterations of the macro to end.
Access A user can only see the first 4,750 tables of an SQL database in the ODBC import dialog box.
Access A user cannot add, edit, or delete records to a subform in an ADP that is based on a multi-table view or stored procedure unless the user specified the unique table property for each table.
Access A user creates a query, and then saves it in SQL view. When the user opens a form with the query in a subform, the user finds that the query has been deleted.
Access Access crashes when a parent form sets its child's source on its own current event after the parent's source is set in the Open event.
Access After a user opens a Filter drop-down list in a subform datasheet, an error message occurs because of invalid bracketing.
Access After you try to insert a record on the one side of a many-to-one relationship in Datasheet view, the table on the one side may get into a state where records can no longer be added.
Access An empty control source in a form causes the open form command button wizard to display an empty list box for filtering.

93SP2-2/4:2009/04/30(木) 09:36:57
Access An error prompt appears when a user runs the ApplyFilter command with a non-existent object specified.
Access Applying Microsoft Security Bulletin MS08-028 may cause a benign corruption error in multi-user databases.
Access Customized Quick Access Toolbar (QAT) buttons do not appear unless you open the database through the Most Recently Used list (MRU) in Getting Started.
Access Dates without a delimiter (yyyymmdd) are not converted correctly when you import text.
Access Exporting to PDF/XPS or SNP fails when executing code that is referenced in another database.
Access If you use the data collection feature to update a row that does not exist when the data collection reply is processed, the first row is updated, and you do not receive an error message.
Access In Internet Explorer 8, you cannot use a mouse to select multiple cells in Microsoft Office Access Web Datasheet.
Access In some edge cases, a casual exploration of the Getting Started experience can lead to the Getting Started experience no longer displaying a list of templates.
Access Macros that use the SetProperty action to run in context in subforms or subreports cannot be authored.
Access Memo fields are not included in the available fields for the Mailing Label Wizard.
Access Numbers and dates are displayed as "####" for vertical text boxes in Report Print Preview.
Access On a computer that uses Windows XP theming, a check box that uses the Tristate property does not function correctly and seems to be unselected.
Access OpenForm does not apply filter criteria if the form is already open.
Access Records in nested subforms cannot be deleted.
Access Relinking a table fails if the table contains an AppendOnly memo field.
Access Templates created with complex data (multivalue fields or attachments) instantiate with failures.
Access The "More Smart Tags" button opens the incorrect URL for non-English versions of Access.

94SP2-3/4:2009/04/30(木) 09:38:15
Access The Keep Together property is ignored when a user has a report with an invisible detail section and group headers that have the Repeat property set to true.
Access The Next Week, This Week, and Last Week date filters are broken in non-English versions of Office.
Access The wizard that generates the where condition of an open form macro does not put '=' in front of an expression.
Access Unsafe function names in expressions are not translated into local languages and are displayed in English.
Access When a user deletes a column in a Design Master and then tries to synchronize with a replica, the synchronization fails.
Access When a user deletes a record and then chooses to undo the change in the Run view of the form, the user is prompted to save the form.
Access When a user exports a query that needs Name Fixup performed, the query is permanently replaced with an empty query, and the export fails.
Access When a user exports to the RTF format, the export is much slower than O11 for linked data sources.
Access When a user imports a text file that has fewer columns than the table it will be added to, the default value is not applied.
Access When a user imports a text file with delimited text, the import fails if the file is bigger than 32 KB.
Access When a user selects the fixed width setting and then modifies the column widths to export the text, the customized width setting is ignored, and the default width is used.
Access When an ApplyFilter action is on the Open event, Access crashes when you switch from Design view to Report view or Layout view for a report.
Access When subform records are deleted by using code and warnings are suppressed, Access hangs when it tries to commit a JET transaction that has not been opened.
Access When the OnError action runs as part of an AutoKeys macro and the AutoKeys key sequence is pressed, the Access Runtime crashes.
95SP2-4/4:2009/04/30(木) 09:39:38
Access When using Ace OLEDB to execute a parameterized query and pass in different parameter values, the Execute method will use the same parameter length as the first parameter.
Access When you add a record in Access JPN for continuous forms, the first character is lost.
Access When you add a total at a subReport with a datasource pointing to a field in the parent report, the control source is used for the name that contains the expression (data source) instead of the valid name.
Access When you change the record source of a form in Browse View, unbound controls may lose their data.
Access When you create a table with a primary key that is not called “PrimaryKey” and you enter data in the star column or in a newly inserted column in a row other than the first row, you may receive an error,
and the data will not be entered in the correct row.
Access When you open a linked table from Outlook, Access crashes.
Access When you open a report using Visual Basic and then try to export the report, Access crashes.
Access When you quick create a form with a hyperlink field, the hyperlink property is not set.
Access When you start the Query Builder from the property sheet for a form or report, the property sheet closes while the Query Builder is open, and changes to the query are lost.
Access When you try to import an .xlsx or .xlsx file by using the SQL Server 2005 Import Wizard, the ACE OLEDB provider hangs.
Access When you try to save a form or a report after you change a textbox to a label, Access crashes.
Access You cannot run Domain Aggregate functions against linked text files by using the "/cmd" switch.
96名無しさん@そうだ選挙にいこう:2009/04/30(木) 11:48:12
>>78
 ID      名前          住所
"I001"    ""           ""
""     "某株式会社"     ""
""       ""        "某県某市某所"

言葉足らずですいません。
データは上の形で、一列に一つのみ必要な値が入っていて、他は空白です。
値が一レコードに一つずつなので、それを最上レコードに一行に纏めたいのです。
ID・名前・住所がフィールド名となっています。

>>79
値は、各列に一つだけなので列内での順序は無いです。

>>91
Do Until rs.EOF のような感じでサックリとループ処理出来ると思うんですけど・・・。
9779:2009/04/30(木) 14:42:41
>>96
( ゚д゚)ポカーン

一抜け
9891:2009/04/30(木) 15:03:14
>>96
( ゚д゚)ポカーン

二抜け
99名無しさん@そうだ選挙にいこう:2009/04/30(木) 15:09:35
えーと・・・何でポカーンなのかが分かんないんですけど・・・。
10078:2009/04/30(木) 15:29:43
>>99
しつこいようですが、そのテーブルには3レコードしか無いのですか?
それであれば手作業で修正した方が早いと思うんです。
それとも私が勝手に想像したように、先頭から3レコードずつが1セットになっていて、
これが延々と繰り返されていて、全体では何百とレコードあるということなのでしょうかね?
(さっぱり分からんのです…)

あとですね、「一番上の」と言ったレコードの順序に関してですが、
Accessに限らずデータベースでは順序の基準(キー)が必要です。
キーが無い場合、貴方の意図する順序となる保証がありません。
運が良ければ意図する順序になるかもしれませんが・・・

そんな訳で私を含めた多くの方がアドバイスできずにいるのだと思いますよ。
101名無しさん@そうだ選挙にいこう:2009/04/30(木) 17:06:04
>>100
質問の際に長くなるので省いたのですが、実際は15レコードです。
>>78のようなテーブル構造ではないのです。
一番上、というのは、ID(主キー)の行に別フィールドの全ての値を移動させたい、という事です。
分かりにくくてすいません。
確かに3レコードなら手作業で修正するべきですね・・・マヌケでした。

 ID   名前   住所   担当者  郵便番号   電話番号  メールアドレス  URL
"I001"  ""    ""      ""     ""       ""        ""       ""
""   "某会社" ""      ""     ""       ""        ""       ""
""    ""    "某所"   ""     ""       ""        ""       ""
""    ""     ""    "某氏"   ""       ""        ""       ""
""    ""     ""     ""  "000-0000"    ""        ""       ""
""    ""     ""     ""     ""    "000-00-000"    ""       ""
""    ""     ""     ""     ""       ""      "[email protected]"   ""
""    ""     ""     ""     ""       ""        ""      "http(ry"

                          ↓

 ID    名前   住所   担当者  郵便番号    電話番号   メールアドレス  URL
"I001" "某会社" "某所" "某氏"  "000-0000" "000-00-000" "[email protected]"  "http(ry"


ズレるので8列まで書きましたが、こんな風に一レコードに纏めたいんです。
15レコードでも手作業で、と言われてしまえば確かにそうなんでしょうけど、
自動化しろと言われてるので・・・。
102名無しさん@そうだ選挙にいこう:2009/04/30(木) 17:12:35
>>101
( ゚д゚)ポカーン

三抜け
103名無しさん@そうだ選挙にいこう:2009/04/30(木) 17:21:39
斜めの時点では主キーではなくて、整列時の一レコードに纏めた時点で
IDを主キーにしたいって事です。
斜めに値が入ってる形で主キーはありえないですね・・・
何度もすいません・・・(‘д’;;;)
104名無しさん@そうだ選挙にいこう:2009/04/30(木) 17:52:22
>>103
これはDBのデータ?
この順で取得できることは、保障できないんだが?
#order by しなくてもこの順序どおり? その前提が謎
VBA(なんでもいいんだけど)で書きこんだほうが早いと思うが
この状態でExcelにはけるなら、VBA使ってもう終わってると思う
105名無しさん@そうだ選挙にいこう:2009/04/30(木) 18:11:02
>>103
斜めにデータが入ってるテーブル(既存)→ Table1
整形したデータを出力するテーブル(New)→ Table2
あらかじめ既存のTable1と同じフィールドの並び順でTable2を作成しておくこと。

'以下コード---------------
Dim DB As DAO.Database
Dim RSi As DAO.Recordset
Dim RSo As DAO.Recordset
Dim i As Integer
Set DB = CurrentDb
Set RSi = DB.OpenRecordset("Table1", dbOpenForwardOnly)
Set RSo = DB.OpenRecordset("Table2", dbOpenDynaset)
RSo.AddNew
Do While Not (RSi.EOF)
For i = 1 To RSi.Fields.Count
If RSi.Fields(i - 1) <> "" Then
RSo.Fields(i - 1) = RSi.Fields(i - 1)
End If
Next i
RSi.MoveNext
Loop
RSi.Close
RSo.Update
RSo.Close
DB.Execute "DELETE FROM Table1"
DB.Close
Set DB = Nothing
Set RS = Nothing
'-------------------(以上です)
106名無しさん@そうだ選挙にいこう:2009/04/30(木) 18:13:12
最終行訂正
x Set RS = Nothing

o Set RSi = Nothing
o Set RSo = Nothing
107名無しさん@そうだ選挙にいこう:2009/04/30(木) 18:16:06
>>101
二重ループでいけるんじゃねーの?
つーか、固定長データの切り位置間違えたようなデータだね。
とりあえずレコード順が必要だから、最後尾にオートナンバー(便宜上ID1)入れろや。
それで並び順が変わるようならインポートしなおし。
で、整形前のデータが入っているテーブルをT1、
整形後データを格納するテーブルをT2とすると、(つづく)
108名無しさん@そうだ選挙にいこう:2009/04/30(木) 18:16:47
Dim I As Long
Dim dum As String

Set cn = CurrentProject.Connection
rs1.Open "SELECT * FROM T1 ORDER BY ID1", cn, adOpenStatic, adLockReadOnly
rs2.Open "T2", cn, adOpenKeyset, adLockPessimistic

Do Until T1.EOF
If Isnull(rs1!ID) Then dum = rs1!ID
rs2.Add New
For i = 0 to rs1.Fields.Count - 2
If IsNull(rs1(i)) Then rs2(i) = rs1(i)
Next i
rs2.Update
rs1.NextRecord
Loop

こんな感じじゃねーか? あ、ちなみにADOね。
あと規制くらってるから、そうそうレスできんから。


109名無しさん@そうだ選挙にいこう:2009/04/30(木) 18:48:54
>>101
DAO 使う場合ね、項目数が4だと、
-------------
Sub omanuke()

Dim i As Integer, itizi(3) As String, rs As Recordset
Set rs = CurrentDb.OpenRecordset("test")
Do Until rs.EOF
For i = 0 To 3
itizi(i) = rs.Fields(i) & itizi(i)
Next i
rs.MoveNext
Loop

rs.MoveFirst
rs.Edit
For i = o To 3
rs.Fields(i) = itizi(i)
Next i
rs.Update
Set rs = Nothing

End Sub
110名無しさん@そうだ選挙にいこう:2009/04/30(木) 22:58:31
単純に考えて、集計クエリで行かないですかね
(↓こんな感じで)
select max(ID),max(名前),max(住所),max(担当者),max(郵便番号),max(電話番号),max(メールアドレス),max(URL) from TBL名

よければ別名定義でちゃんとした項目名をつけてみてね
111名無しさん@そうだ選挙にいこう:2009/04/30(木) 23:02:44
(補足)
上記方法でうまくいったら、テーブル作成クエリに変更して新規テーブルを作成するか。
あるいは追加クエリにして、正規登録テーブルへ追加するかしてみてください
112名無しさん@そうだ選挙にいこう:2009/05/01(金) 08:21:17
確かに無理にUPDATEする必要はないよな。
結果が得られればいいだけなら毎回>>110のクエリでいいんじゃね?
113名無しさん@そうだ選挙にいこう:2009/05/01(金) 11:34:20
>>104
Accessのテーブルのデータです。
私のスキルだと、テキストを一旦ExcelVBAでCSV形式に整形した後に、
そのCSVファイルをAccessの正規テーブルに直接インポートする方が良いみたいですね。
ExcelVBAならセル番地指定で楽なんですけど、言われるまで気付きませんでした・・・。

>>105
>>107
>>109
ありがとうございます。
私のスキルだとコード読むだけで一杯一杯で、まだ把握し切れてないですが・・・
動作確認してみたら動きました。
レコードが大量だと、処理をコード化する方が良さそうですね・・・。
ちなみに元のテキストは

ID:I001
名前:某会社
住所:某所
長いので以下略

こんな感じです。
勉強不足ですね・・・精進します。

>>110
ありがとうございます。
MAX関数にこういう使い方があるとは・・・数の比較だけだと思っていました。
やっと逝けました・・・まさに目から鱗でした。
114名無しさん@そうだ選挙にいこう:2009/05/01(金) 13:43:28
>>113
> ちなみに元のテキストは
>
> ID:I001
> 名前:某会社
> 住所:某所
> 長いので以下略
>
> こんな感じです。

おい! 初めに書けよ

十抜け
115名無しさん@そうだ選挙にいこう:2009/05/01(金) 14:06:08
>>114
あ・・・すいません OTL

お騒がせしました、勉強して出直します。
答えて下さった方々、ありがとう。
116名無しさん@そうだ選挙にいこう:2009/05/01(金) 19:33:07
クライアントからランタイムだけでデータベース開けるようにするためにはデータベースにどういう操作を加えてやれば良いですか?
117majires:2009/05/01(金) 19:39:54
>>116
特に必要ない。

クライアントマシンにランタイムを入れれば、Accessで作ったソフトはなにもせずとも
動く。mdbだろうと、accdbだろうと、mdeだろうとね。

うちの場合、開発用マシンにだけAccess2007を入れて、クライアントはランタイムのみ。
といっても、面倒くさいので、mdbのファイルをクライアントに設置しているだけだけれど。
ただ、データはMySQLに蓄積しているので、クライアント側にデータが溜まることはない
ってな感じ。
118名無しさん@そうだ選挙にいこう:2009/05/01(金) 20:42:08
ところがですねー、やってみたらウィンドウのわくが出たところでとまっちゃうんですよね。
Runtimeのバージョンが違うのかと2000と2003と2007それぞれ試しましたがだめです。
2007でやったときだけなんかOCXファイルを探していますって言うメッセージが出てるんで、
mdbの中にこのOCXファイルを埋め込んでコンパイルみたいなことをやらなくっちゃだめなのかなと?
119名無しさん@そうだ選挙にいこう:2009/05/01(金) 21:04:33
既定のフォームって言うのを設定してやったらその画面だけ出てきました。
なるほどテーブルとか直接編集できるものは表示されないってことですね。
レポート印刷させるのもフォームにボタンかなんかつけねばだめだな、これは。
テーブルに直接入力とかやってましたがそれではだめですね。
ちょっと分かってきました。
120名無しさん@そうだ選挙にいこう:2009/05/01(金) 21:57:21
なにを当たり前なことを
121名無しさん@そうだ選挙にいこう:2009/05/01(金) 23:00:29
>>115
テキスト->Accessのサンプルっていっぱい転がってるはずだから
探してチャレンジしてみなよ 簡単だから
今後の業務内容によると思うけど、マクロよりもVBAでやったほうが
何かと楽だと思うよ(あとあとの事考えるとね)
122名無しさん@そうだ選挙にいこう:2009/05/02(土) 08:17:58
>>117
信頼できる場所の設定、どーすんの?
123名無しさん@そうだ選挙にいこう:2009/05/02(土) 13:17:57
Access2007 Runtimeの信頼できる場所の設定はRegstryを修正するのが一番簡単

http://macoto.blog.so-net.ne.jp/2009-03-21
124名無しさん@そうだ選挙にいこう:2009/05/02(土) 13:31:16
素直にパッケージソリューション
125名無しさん@そうだ選挙にいこう:2009/05/05(火) 20:05:38
またAccess Clubがおかしいな。
126名無しさん@そうだ選挙にいこう:2009/05/05(火) 20:52:56
>>125
普通に見られるのだが。
127名無しさん@そうだ選挙にいこう:2009/05/06(水) 21:01:17
Windows 7 RC版にAccess 2003インストールした者はいるか?
128名無しさん@そうだ選挙にいこう:2009/05/06(水) 22:00:38
両方持っていない
129名無しさん@そうだ選挙にいこう:2009/05/08(金) 22:43:32
この連番ロジックの解説を・・・
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1325923008
130名無しさん@そうだ選挙にいこう:2009/05/08(金) 22:58:51
>>129
フィールド値が自分自身のフィールド値以下であるレコード数をカウントしてる
131名無しさん@そうだ選挙にいこう:2009/05/08(金) 23:02:26
>>129
ACCESS2000についてご質問です。 項目名「データ順」「コード」「郵便番号」「氏名...gbsg9405さん

ACCESS2000についてご質問です。
項目名「データ順」「コード」「郵便番号」「氏名」というデータがございます。
このデータを「コード」順の「郵便番号」順に並び替えて、5桁の連番を付ける事は可能でしょうか?

追記です。
「データ順」の連番はオートナンバーで設定しております。最終的に「連番」という項目名を増やして5桁の連番を付け加えたいです。
ご説明が分かりづらかったら申し訳ありません。宜しくお願いします。

質問日時: 2009/5/6 23:57:46

(2件中1〜2件) 並べ替え:回答日時の 新しい順 | 古い順
tkyk_halさん

1つ条件が足りませんよ。コードと郵便番号が同じデータであった場合に、どちらに若い連番を割り当てるかです。
幸いオートナンバー型のデータ順がありますので、この若い数に若い連番を当てることにします。こういう場合にユニークな値(他と重ならない一意な値)の大切さが分かりますね。

新しいクエリを作成し、右クリック>SQLビューに下記を貼りつけて下さい。
その際、テーブル名の所はお手元のシステムのものに書き換えて下さい。

SELECT *,Format((SELECT COUNT(*)
FROM テーブル名 AS T2
WHERE T2.コード<T1.コード OR
(T2.コード=T1.コード AND T2.郵便番号<T1.郵便番号) OR
(T2.コード=T1.コード AND T2.郵便番号=T1.郵便番号 AND
T2.データ順<=T1.データ順)),"00000") AS 連番
FROM テーブル名 AS T1;

回答日時:2009/5/7 20:51:01
132129:2009/05/09(土) 00:01:01
うむむ・・・
みなさんも、こういうのがスラスラ書けるんですか?
どれぐらいの修行が必要なんでしょ?
133名無しさん@そうだ選挙にいこう:2009/05/09(土) 00:10:14
>>129
自分の説明に対して、「ご説明」とかバカじゃないの?
134名無しさん@そうだ選挙にいこう:2009/05/09(土) 15:47:06
わたしも日本語を覚えたての頃は、重箱の隅をつついて
したり顔をしていた時期がありました。懐かしい思い出です。
135名無しさん@そうだ選挙にいこう:2009/05/09(土) 20:25:21
accessは融通利かないものね
136名無しさん@そうだ選挙にいこう:2009/05/10(日) 06:21:00
Runtime2007でClearTypeをオフにすることは可能でしょうか?

会社で自分のPC(WindowsXP)だけAccess2003(Office 2003 Professional)が入ってて、
この2003で作ったmdbを、所内の全PC(WindowsXP)にて2007Runtimeで使ってるんですが、
欧文フォントだけがClearTypeで表示されてしまいます。

おそらくExcelやWordも「2007」が入ってれば、
そちらで「常にClearTypeを使用する」をオフにすればRuntimeでもオフになるんでしょうけど、
どのPCもOfficeは「2003 Personal」のため、この設定ができません。

レジストリでも結構ですので、何か方法はないものでしょうか?
よろしくお願いいたします。
137名無しさん@そうだ選挙にいこう:2009/05/10(日) 06:48:04
138136:2009/05/10(日) 07:14:23
>>137
ありがとうございます。
今自宅のPC(WindowsXP、Office2003、Runtime2007)でやってみたところ、
無事オフに出来ました。

向こうでもClearTypeを好まない人って結構いるんですね。
"No more ClearType" とか書き込まれてて笑えました。

今ググってたらようやくMSDNで
「Application.Options.AlwaysUseClearType = False」ってのを見つけたんで
明日会社行ったら早速やってみようと思ってましたが、
>>137の方が全然ラクですね。

本当にありがとうございました。
139名無しさん@そうだ選挙にいこう:2009/05/10(日) 17:49:40
【設定】
 メインフォームにサブフォームを張り付けた状態。
 メインフォーム、サブフォームに各々テキストあり。
【やりたいこと】
 メインフォームのテキストにデータを入力したら、サブフォームの
 テキスト・データが更新されるようにしたい。
*とりあえず、メインフォームはテーブル連結という設定で…

Access初心者に近いので、具体的ご教示いただけるとうれしいです。
140名無しさん@そうだ選挙にいこう:2009/05/10(日) 18:13:31
具体的ご質問してくださるとうれしいです。
141名無しさん@そうだ選挙にいこう:2009/05/11(月) 13:10:24
Accessで↓のような管理データベースを製作したいと思い、
テーブル作成までは完了しました。

車両データテーブル
所有者情報テーブル
使用者情報テーブル
エンジン関係部品テーブル
ブレーキ関係部品テーブル
その他部品テーブル
(↑部品はひとつのテーブルでまとめた方が良いのかな?)

テーブル作成したものの、その後どうすりゃいいのかさっぱりです。
ExcelVBAを少々いじくる程度のスキルでAccessは触り始めたばかりです。
叔父からの依頼で、エクセルで簡易的なものは作成したのですが、
データベースを作成するならAccess使えや と友人に言われ
Accessを触り始めたところです。

簡単なイメージをエクセルで作成してみた画像が↓ですが、
車両と所有者及び使用者の関連付けと、所有者が同一車両の
集計等まったくちんぷんかんぷんですが、だれかご助言頂けませんか?

Access入門みたいなキーワードでぐぐってはみたのですが、
製作しようとしている内容としっくりくるものが見当たらず、、、
お助けください。

http://uproda.2ch-library.com/127229Ej6/lib127229.jpg
142名無しさん@そうだ選挙にいこう:2009/05/11(月) 13:16:06
143名無しさん@そうだ選挙にいこう:2009/05/11(月) 17:50:56
>>141
それならExcelでいいと思う。

ExcelではなくAccessを使うべき状況の目安は
・2次元の表に収まらず3次元以上になってしまう場合
・項目ごとの整合性が重要な場合
・データの件数が膨大な場合
・複数人で同時にデータの追加・削除を行う場合(これはAccessでも微妙だが)

2次元の表というのは、縦軸が顧客別、横軸が顧客ごとの項目で済む場合。
ここに営業記録や整備記録などの、顧客ごとに蓄積するデータが加わると
3次元になる。

ちなみにそのデータなら、登録画面の上半分は1つのテーブルでいい。
営業所と担当者くらいは別した方がいいが。
下半分のパーツに関する情報は、同じ型式(車種)の重複が多いなら別テーブル、
重複が少なければ同じテーブルの方が管理が楽。
144名無しさん@そうだ選挙にいこう:2009/05/11(月) 18:40:24
Access2003で教えてください。
レポートがすでにあり、ASPからアクセスしてレポートをPDF印刷したいです。
PDF印刷は完全自動で行いたいのですが、可能でしょうか。
また、Access2007でも可能でしょうか。
よろしくお願いいたします。
145名無しさん@そうだ選挙にいこう:2009/05/11(月) 18:41:38
それ、桐がちょうど良いな
146144:2009/05/11(月) 19:07:14
>>145
それはスレタイどおりですが、何とかAccessで…
147145:2009/05/11(月) 19:11:46
>>141 へのレスで書いた
148名無しさん@そうだ選挙にいこう:2009/05/11(月) 19:14:04
>>144
可能です。
149:2009/05/11(月) 19:16:16
>>143
同意だね。

勤怠関係なんかも同じことが言えると思う。人、それに対して年休の残や出勤日数
それにまつわる、日々の記録。
こうなると、Excelではちょっと無理。

この辺りが、分かれ目かもね
150名無しさん@そうだ選挙にいこう:2009/05/11(月) 19:21:49
Access2007をVistaで使っています。
異なるファイルにあるテーブルをリンクテーブルを使わずに
ADOで結合してレコードセットを作ることができますか。

例えば
A.accdbにtbl_aというテーブルがありフィールドがid,a1,a2
となっていて
B.accdbにtbl_bというテーブルがありフィールドがid,b1,b2
なっていたとして
id,a1,a2,b1,b2
というレコードセットは作れるものでしょうか。

A.accdbへのコネクションを作って
rs.Open "SELECT * FROM tbl_a LEFT JOIN tbl_b in 'B.accdb' ON tbl_a.id=tbl_b.id", cn, adOpenForwardOnly, adLockReadOnly
などとやってみましたがダメでした。

よろしくお願いします。
151144:2009/05/11(月) 19:43:18
>>147
失礼しました。

>>148
ぜひ方法を教えてください。
レポートを印刷するマクロを組んでいきなりPDFで印刷しようとしましたが、
プリンタの指定画面やPDFファイル名の指定画面が出て自動化できませんでした。
152:2009/05/11(月) 19:58:30
>>150
rsを2つ用意しないといけないんじゃねぇの?
153名無しさん@そうだ選挙にいこう:2009/05/11(月) 20:56:25
>>152
帳票フォームのソースにしたいのですが
(後出しの情報ですみません)
複数のレコードセットから新しいレコードセットを作れるということでしょうか。

可能でしたらぜひ教えてください
具体的なコードを書いてくださると嬉しいです。
よろしくお願いします。
154名無しさん@そうだ選挙にいこう:2009/05/11(月) 21:34:24
>>153
試していないがそのSQL文を
"SELECT * FROM tbl_a AS A LEFT JOIN (SELECT * FROM tbl_b IN 'B.accdb') AS B ON A.id = B.id;"
にしてみたらどうだろ
155名無しさん@そうだ選挙にいこう:2009/05/11(月) 21:37:04
>>150
www
156154:2009/05/11(月) 22:13:22
>>153
ごめん、「AS B」の「B」は「'B.accdb'」とは無関係ね
紛らわしい書き方してすまん。
157名無しさん@そうだ選挙にいこう:2009/05/11(月) 22:17:44
ADOだと接続文字列がすげえ面倒だからDAOにしとけや
158名無しさん@そうだ選挙にいこう:2009/05/12(火) 00:01:42
>>152
ファイルが違うなら、cnも2つ必要じゃね?
159名無しさん@そうだ選挙にいこう:2009/05/12(火) 06:49:29
ファイルとゆー以前に
データーベースが違うんだろ
160名無しさん@そうだ選挙にいこう:2009/05/12(火) 07:21:20
accessのフォームのテキストボックスについて、
縦の位置を中央に配置するにはどのプロパティを変更すればよいのでしょうか?
161名無しさん@そうだ選挙にいこう:2009/05/12(火) 09:23:13
SP2入れたらカーソル移動が速くなった気がする、気のせいか…
162名無しさん@そうだ選挙にいこう:2009/05/12(火) 10:44:08
VBAについて質問
同一モジュール内でフラグを作ってイベントを動かしたいんだが上手くいかない。
いろんなページを廻ってみたけど載ってるところがなくて。

Access2000でコードは

Private Sub プログラム1()

処理1
a_flag = 1

End Sub

Private Sub プログラム2()

If a_flag = 1 Then
処理2

Else
処理3

End Sub

プログラム2を実行すると条件式にあるa_flagがないと出るんだが、どうやって参照させればよいのだろうか?
163名無しさん@そうだ選挙にいこう:2009/05/12(火) 11:09:31
>>162
「変数 スコープ」でググってみればいいんじゃね?
164162:2009/05/12(火) 11:17:39
>>163
解決しました、アドバイスありがとうございます。
165150:2009/05/12(火) 13:31:56
>>154
ありがとうございます。
156が理解できなかったので154のまま試してみました。
動きました!
まだ教えていただいたSQLの意味がわかっていないので調べてみます。
かなり悩んでいて
一度ローカルのワークテーブルに読み込んで処理する方法で作ったのですが
やはりシンプルにしたいと思い質問したところでした。
本当にありがとうございました。

>>158
cnを2つ作っても、その先どのようにして結合すればいいのかわからなかったのです。
154とは別の方法もありますか。

>>159
複数のファイルを同一のデータベースとしてみなす方法があるということでしょうか。
それができればコネクションをひとつにして結合もできると思うのですが。

みなさん、ありがとうございました。
166154:2009/05/12(火) 19:14:46
>>165
156は接続先のファイル名とは関係ないよということ
まあ動いて何より。

>>157
udlファイル使えば結構楽になる
167名無しさん@そうだ選挙にいこう:2009/05/13(水) 15:17:22
イベント設定とマクロの値の代入についての質問なんですが

サブフォームにあるテキストボックスAに親フォームのテキストボックスBに書き込まれた内容を
代入させたいのですが、どのイベントに入れどのように代入を設定していいのかがわかりません。
どのようにしたらよろしいでしょうか。
168名無しさん@そうだ選挙にいこう:2009/05/13(水) 16:28:22
>>139
>>140
日本に1人だけしかしていない公開できない事例ですか?
企業の名前や商品名や生徒名や経費明細や得点や偏差値や
適当に仮名を使えばどういうシーンで使うのかとか、メインのオブジェクトの
データ型やオブジェクト名或いはサブフォームのオブジェクト名やサブフォームオブジェクト
のテキストのオブジェクト名など全て秘密では答える方も秘密です。
169名無しさん@そうだ選挙にいこう:2009/05/13(水) 23:02:31
ACCESS2000

コンボボックスで値を選択しているものをバックスペース等で削除します。
その後マウスなどで他のオブジェクト(テキストボックス等)を
クリックしたらコンボボックスの値が消す前の状態に戻って
しまうという現象があるのですがどうすれば回避できますか?
170名無しさん@そうだ選挙にいこう:2009/05/14(木) 11:27:24
>>169
バックスペースで文字を削除した後、一度Enterを押して他のオブジェクトに
移動した場合は症状が変わりますか?
イベントを使ってもいいと言うことですか?
フォーカス喪失イベントは有りますか?
入力後イベントはありますか?
171169:2009/05/14(木) 11:41:43
>>170
エンターとタブキーで移動させた時はちゃんと削除されます。
マウスでフォーカスを別のオブジェクトに移した際に前回値が残る現状があります。
イベントは使っても大丈夫です。
フォーカス喪失時、更新前、更新後のイベントは特に設定していますん。
試しに上記イベント内でコンボボックスのvalue値を確認したところ、前回値が入っているみたいでした。
172169:2009/05/14(木) 11:46:01
設定していますん。となっていますが誤字すいません。
設定していません。です。
些細な事なのですがニュアンス的に
重要だと思いましたので訂正いたします。
申し訳ないです。
173名無しさん@そうだ選挙にいこう:2009/05/14(木) 12:11:34
更新前は当然最初の削除前の文字列ですね。
更新後は元に戻ることから編集文字列変更が反映されていないと
考えられます。
イベントの種類として、1)更新前から2)編集文字列変更から3)入力後
次に4)更新後イベントと進むと思いますが、3のイベントでは変更後文字列
が確認できないで4)でしか確認できないのですか?
或いは2と3のイベントは存在しないのですか?
174173:2009/05/14(木) 13:03:44
>2)編集文字列変更から3)入力後
というイベントはアクセスには存在していないようですね。

変更時イベントは使えないのですか?
キー入力時とキー解放時と言うのがあるようですがこれも
今回のには使えないイベントですか?

フォーカス喪失時とフォーカス喪失後が有るので変更された文字列を
取得できればどちらかのイベントで文字列の変更は出来ないのでしょうか?
175169:2009/05/14(木) 13:10:11
確認したイベントは
afterupdate
beforeupdate
change
lostfocus
です。
いずれも前回値をvalueでもってしまっている感じでした。
176名無しさん@そうだ選挙にいこう:2009/05/14(木) 13:18:27
>>169
'ComboBox1.Valueが更新されていないのが原因だから、
'フォーカス喪失時イベントで強制的に更新したら良さそう・・・
'文字を削除というのが「何も選択されていない状態」を意味するなら
'リストインデックスを更新してはどうかな?

Private Sub ComboBox1_Exit(Cancel As Integer)
If ComboBox1.Text = "" Then
ComboBox1.ListIndex = -1
ElseIf ComboBox1.Text <> ComboBox1.Value Then
ComboBox1.Value = ComboBox1.Text
End If
End Sub
177169:2009/05/14(木) 14:24:30
皆様
ご教授ありがとうございます。
本件あまり工数をかけられないとの事なのでこの対応は見送りになりました。
解決できず不本意ではありますが、一旦打ち切らせていただきます。お付き合いいただきありがとうございました。
178名無しさん@そうだ選挙にいこう:2009/05/14(木) 15:16:33
Access2000でも、これらはあるよな

ComboBox.LimitToList/入力チェック プロパティ
ComboBox."AutoExpand/自動拡張" プロパティ
ComboBox.ShowOnlyRowSourceValues プロパティ
179名無しさん@そうだ選挙にいこう:2009/05/14(木) 19:32:35
aaaさあああああああーーーーーーーー、まじアクセス使いづれーーーーーーー!!!
もともとカード画面前提の製品なんだろうけど
表形式が全然使えねーーーーーーーーーーーーー

バコバコ・ビュンビュン・グリグリ入力してーのに、なんだよアクセスって
仕事に何ネェジャン
画面揺れるわ引っかかるわチラ付くわ遅せーわで、ストレス溜まり幕リング
もう死にそーーーーーーーーーーーーーーーーーーーーーーー
人差し指入力のオッサン用かよ

桐の表形式がビュンビュン最高だわ wwwwwwwwwwwww
つーか、桐バージョンアップしてくれよ
180名無しさん@そうだ選挙にいこう:2009/05/14(木) 21:29:21
> バコバコ・ビュンビュン
って相変わらずいってるやつって不定期に出てくるね
いつも同じ奴がいってるんでしょうね

文句ばっかいっててもしょうがないし
いい加減Accessにも慣れて良い頃じゃないでしょうか

> 画面揺れるわ引っかかるわチラ付くわ遅せーわ
ソフト単体の問題というより単純にマシンスペックに問題がある気がします
181名無しさん@そうだ選挙にいこう:2009/05/14(木) 21:56:51
Accessはエクセルじゃないですからスクロールすれば描画更新生じて揺れますしチラツキます。
桐が特殊。

データベースは表示するレコード数を絞って運用してくださいな。
182名無しさん@そうだ選挙にいこう:2009/05/15(金) 08:54:39
桐の表形式の使いやすさは異常。
183名無しさん@そうだ選挙にいこう:2009/05/15(金) 19:12:50
初心者ですが、どうしてもやりたい処理があります。
左右に並んだセルのデータを結合したいのです
左セル 'お前が' 右セル'好きだ'
結合して'お前が好きだ'
にしたいのです。
可能ですか?
184名無しさん@そうだ選挙にいこう:2009/05/15(金) 21:28:51
Accessにセルはないです
項目をつなぐのであれば「&」でつなげばいいのでは
185名無しさん@そうだ選挙にいこう:2009/05/15(金) 22:36:13
>>183
Accessにセルの概念はありません。横一直線が1レコードであり、
列の概念があるだけです。
A列に お前が
B列に 好きだ

ならば

C列の式として、 = [A] & [B] とする。
186名無しさん@そうだ選挙にいこう:2009/05/15(金) 22:52:38
>>184-185
文字列結合自体はExcelと変わらないけど、
183がどこで結合しようとしているかが問題じゃね?
テーブルでやろうとしてるに1ジンバブエドル。
187名無しさん@そうだ選挙にいこう:2009/05/16(土) 00:37:35
Excel総合相談所と誤爆したに255twip
188名無しさん@そうだ選挙にいこう:2009/05/16(土) 08:15:52
桐にしとけに、付けてて良かったスレタイトル
189183:2009/05/16(土) 13:39:37
セルという概念はないんですね。
テーブルとかクエリとかの区別もあまりついてないので
すいません。

テーブルで、セルのように並んでいるんです
その隣同士をひっつけて一つにしたいんです

どうしてもエクセル的に考えてしまうんですが、
実際には住所が3つに分かれて記述されてまして、
扱いにくいので、一つにまとめたいんです。

’お前が’ ’好きだ’ ’よん’の3つを合わせて
’お前が好きだよん’にする場合、テーブルの
データシートビューで列を一つ挿入し、
=[住所1]&[住所2]&[住所3]という風に定義する
という感じになるのでしょうか?

データベースは、今使い始めで、エクセルとの
違いもあまりわかってませんので、もしかしたら、
質問するレベルにも至ってないのかもしれません。
がよろしくお願いします。
190名無しさん@そうだ選挙にいこう:2009/05/16(土) 15:17:01
Excelにエクスポートしてくっつけた奴をインポートするとよい。
191名無しさん@そうだ選挙にいこう:2009/05/16(土) 16:14:03
>>189=183
住所録のようなものを作られているのだと思いますが、まずはテーブルの最終形を
きちんと想定する事が重要です。データはテーブルに蓄積されていきますが、後になって
必要なフィールドが無いのは何かと不便です。またデータベースの場合、データ入力後に
テーブルの構造を変更するのは色々と苦労が多くなりタブーと言っても良いかと思います。

今回、後々の運用のためにそのタブーを犯して[住所1],[住所2],[住所3]を
1つにまとめて[住所4]を新たに作るのであれば、次のようにします。
(1) テーブルに[住所4]フィールドを挿入する。この時点では[住所4]は空のままです。
(2) [住所4]に値をセットするために‘更新クエリ’を作成して実行する。
この時、[住所4]にセットする値を[住所1]&[住所2]&[住所3] としておく。

もう1つの考え方として、データの蓄積は[住所1],[住所2],[住所3]のままにしておいて、
必要な時だけ連結する方法もあります。この方法のほうがデータベース的な考え方と言えます。
(1) テーブルを元に‘選択クエリ’を作成する。
(2) 表示するフィールドを[住所1]&[住所2]&[住所3] としておく。

もちろんテーブルを1から作り直しても構いません。(>>190さんの方法を参考に)
先を見越してテーブルを設計するのはある程度の経験も必要ですから、
色々とチャレンジしてみると良いと思いますよ。頑張ってみてください。
192183:2009/05/16(土) 17:46:39
皆さんありがとうございます。
アドバイスを参考にさせていただいて、やってみます。

193名無しさん@そうだ選挙にいこう:2009/05/17(日) 11:58:44
質問させてください

顧客のリピートオーダーの頻度を調べる必要があり
データとして 「顧客番号」 「オーダーのカウント」 「最古の日付」 「最新の日付」
のデータがあります
このデータからその顧客がどの周期でオーダーを繰り返しているのか調べたいのですが、日付間の月数を集計する方法が見つけられません
どの様にすればデータを集計できるか教えてください

アクセスのバージョンは2000になります

よろしくお願いします
194名無しさん@そうだ選挙にいこう:2009/05/17(日) 12:09:04
「最新の日付」 − 「最古の日付」 ÷ 30
195名無しさん@そうだ選挙にいこう:2009/05/17(日) 13:14:08
>>193
Datediff関数というのがあります。
月数 = Datediff("m", [最古の日付], [最新の日付])

詳細はググってみてください。いろんな場面で使えますよ。
196193:2009/05/17(日) 13:47:53
>>195
>>194

ありがとうございます。 自分の不勉強さがよくわかってしまいました
大変助かりました。
197名無しさん@そうだ選挙にいこう:2009/05/18(月) 12:07:20
<基礎データ>
XP、Access2007。不動産業。
<したいこと>
町の一区画に、100件ほどの弊社管理の物件が集中している。
リアルタイムの居住者マップ(位置関係の表示)を、Accessで作りたい。
<条件>
・あらかじめ、「区画ごとの物件ID」を、手動で入力しておくこととする。
・「物件テーブル」、「入居者テーブル」、「契約テーブル」により、どの物件IDに現在どの居住者が入居しているか把握できるものとする。
<質問>
・区画ごとの居住者マップ(位置関係の表示)をAccessで作成することは可能だろうか。
・自動的に、現在入居中の居住者の「名前」が、その区画の該当する位置に表示されるとありがたい。

不可能なら不可能と教えてください。
198名無しさん@そうだ選挙にいこう:2009/05/18(月) 12:39:45
htmlが楽チン。
199197:2009/05/18(月) 12:48:54
>>198
>>197をhtmlでやれば楽チンという意味でしょうか?
Accessとどのようにリンクさせるのか、具体的に教えていただけると助かります。
もしくは、ググルためのキーワードアドバイスなど。
200名無しさん@そうだ選挙にいこう:2009/05/18(月) 12:50:12
>>199

続々と倒産する建設業界&不動産その8
http://namidame.2ch.net/test/read.cgi/build/1237817318/
201名無しさん@そうだ選挙にいこう:2009/05/18(月) 13:54:24
197>>
ttp://www.mammoth.jp/qry/hplinkk_kasipark.qry?function=search&start=1&traderID=nihontsu&groupid=&kanri_target=&areaname=fukushima&city=%95%9F%93%87%8Es&tiiki=&address=&category=&yatin1=0&yatin2=999999
詳細を押すとgoogle地図へリンクします。
アクセスのバージョンと文字数制限と項目数制限が解れば可能かどうかの
判断の一つにはなるでしょう。

参考のためにアクセスで作成に使用する予定時間を教えて下さい。
202名無しさん@そうだ選挙にいこう:2009/05/18(月) 14:09:13
すいません、メインフォームとサブフォームについての質問です。
メインフォーム内にあるテキストボックスAに入力したデータを元に
サブフォーム内にあるテーブルのデータを検索(抽出)して表示させたいのですが
どうしたらよいでしょうか。
リレーションシップを組もうにも参照整合も出来ないばかりか1対多の形にもできず
未定義のままです。よってVBAで組みたいのですかどのようにすれば良いでしょうか
203名無しさん@そうだ選挙にいこう:2009/05/18(月) 14:44:34
>>201
Accessは2007。
文字数制限とは、表示する入居者名の文字数でしょうか。名字だけなら全角4文字くらいです。
項目数制限とは、表示するフィールド数でしょうか?フィールドは地番と入居者名で、2つです。

リンクを拝見しましたが、(ご承知の上のことかと存じますが)
一軒ごとの表示ではなく、区画地図として、A-1田中、A-2鈴木、A-3-斉藤などと全体が見られるものがほしいです。

Accessで作成に使用する予定時間という意味がよくわからなかったのですが、
お客さまのお問い合わせ時や、弊社で管理する際に、その都度、
この地図を参照できたらと思います。
テーブルで変更があった場合、それが地図に反映されているとうれしいです。

お手数をおかけいたしますが、よろしくお願いいたします。
204名無しさん@そうだ選挙にいこう:2009/05/18(月) 15:29:47
>>202
サブフォームのレコードソース変えればいいんじゃね?
205名無しさん@そうだ選挙にいこう:2009/05/18(月) 15:33:08
>>197
1)顧客名→地図 でなく
2)地図→顧客名 が知りたいと言うことですか。
2なら簡易地図画像を作りボタンを割り付けてクリックイベントや
ツールヒントを使って物件IDを元に例えばアパート情報のテーブルを
検索してフォームで表示します。
 マウスインするとテキストで例えば「179AP」等とポップアップメッセージ
が表示されます。

ttp://www.webmanagerpro.jp/wmp/updir/430007/hp/chin_gmap.php?tool=1#

 1日でシステムを作るのか、1時間で作るのか1週間で作るのかを知りたかった
だけです。

田中や斎藤や鈴木はアパート名ということですよね。

物件IDと部屋IDと2つ必要だと思います。
物件IDは建物の外観と階数と所在地情報、連絡先の電話と担当者名を管理し
部屋IDは物件IDのサブフォームにしてリンクさせ、部屋の写真や間取りを
管理し入居済みなら顧客名とリンクすれば将来の資産になると思います。

桐で作るのなら興味があるが、アクセスは使う予定がないので頑張って下さい。
206名無しさん@そうだ選挙にいこう:2009/05/18(月) 15:59:23
>>204
すいません、情報不足でした。
メインフォームはテーブルA、サブフォームはテーブルBで構成されています。
リンクも設定し、メインフォームのテキストに検索(抽出)したい文字を入れると
サブフォームにきちんとそのデータが参照されるようにしましたが、入力されたデータ
が出てくるのが更新された後に出てきます。
テキストに未入力ならレコードを出さない、入力されたら出すという処理を行いたいのですが、
どうしたらよいのかわかりません。
207名無しさん@そうだ選挙にいこう:2009/05/18(月) 17:23:20
メインフォームのテキストボックスのAfterUpdateイベントをトリガにして
サブフォームのレコードソースを変えればいいんじゃね?
208名無しさん@そうだ選挙にいこう:2009/05/18(月) 18:28:48
>>206
メインフォームのレコードソースは非連結でも構わないのだけど、
とりあえず、メインフォームに検索語を入れるテキストが一つ、
それと抽出実行するためのボタン一つ。
サブフォームのレコードソースも非連結でいい。
代わりに、サブフォームのプロパティの値ソースでテーブルBを貼り付けて
抽出語で抽出するキーになるフィールド(抽出に使うフィールド)に
IIf(IsNull([Forms]![A]![抽出語]),True,[抽出語] Like "*" & [Forms]![A]![抽出語] & "*")
と貼り付けておく。 ←抽出語が該当ゼロならすべて表示するパターン
あとは、テーブルAに抽出語を入れたら、コマンドボタンに
サブフォームを再クエリーかけるようにコマンド入れとけばいい。
209204:2009/05/18(月) 19:06:37
>>206
なにか勘違いしているようだが、204は207のことを言っているのよ。
わざわざVBAでやりたいと書いてあったから、ヒントでひらめくこと(ができるできるスキル)を期待したのだが。
で、レコードソースを替えるといっても、テーブルAだったレコードソースをテーブルBに替えろといっているわけではない。

Me!サブフォーム名.Form.RecordSource = "SELECT * FROM テーブルB WHERE 抽出フィールド LIKE '" & Me!テキスト0 & "'*"

てな具合に、抽出したものをレコードソースにすればといっている。
210名無しさん@そうだ選挙にいこう:2009/05/18(月) 20:41:03
>>205
すごいですね。
こうした仕組ははじめて見ました。
googleマップとリンクさせているのですね。
難易度が高そうですが、<Accessで>チャレンジしてみます。

今気づきましたが(遅)、ここは、「桐にしとけ」スレなのですね。
(申し訳ありません!)
次回、質問は別スレにてさせていただくかもしれません。
その場合は、このスレでご回答いただいたことをベースに、
お尋ねさせていただくかもしれませんこと、ご容赦いただけましたら幸いです。

ありがとうございました。
211名無しさん@そうだ選挙にいこう:2009/05/18(月) 20:47:15
>>197
可能と言えば可能。

すでに似たような物はつくってある。Accessに格納されているデータを
KMLに変換し、WebBrowserコントロールを内蔵したフォーム、そして、
Google Maps APIを組み込んだHTMLを読み込ませている。

ということは、ボタンを押した時に、KMLを吐き出し、そのKMLを読み込む
ようにしたHTMLを内蔵のフォームに搭載した、WebBrowserコントロール
で再び読み込む。

そういう仕組みだ。
ちょいと時間があれば、サンプルを用意できるが、今ちょっとたてこんでい
てな・・・・
212AB♂天秤:2009/05/18(月) 20:48:59
ちなみに、KMLをGoogle Maps APIで読み込むコードだけ、あとは、HTML
に追記してやれば、動く。

ただどうやって、KMLを読み込ませたら良いのか、わからん。
213名無しさん@そうだ選挙にいこう:2009/05/19(火) 10:45:05
>>211-212
>>197 >>199 >>203 >>210で質問させていただいた者です。

ありがとうございます。

地図は精密である必要がありません。
(お手間をおかけしておきながら、本当に申し訳ありません)
KMLファイルについて、検索してみました。
精密な地図を作りたい場合、ぜひ利用してみたいと思います。

以下のような簡単な図で、特定エリア内での位置関係さえ、わかればいいです。
(田中、後藤は、居住者名です)

├−−┼−−
|田中|後藤
├−−┼−−
|鈴木|山田

これをAccessだけで作ることは可能でしょうか。
フォームやレポートなどで、個別のIDをリンクさせることはできるのでしょうか。
教科書や参考書は自分なりに勉強し、検索もかけましたが、そこらへんがよくわかりません。

作成に割ける時間は1時間から半日以内です。
現在は、Wordでマップを作成し、入居者が変わるごとに、手動で修正しております。

よろしくお願いいたします。
214名無しさん@そうだ選挙にいこう:2009/05/19(火) 12:26:24
多分、業者に頼んだ方が良いレベルの要求だと思われ。
出来ないことではないんだけど、その域まで達するのに(通常業務をやりながらだと)一年くらいかかりそう。
215名無しさん@そうだ選挙にいこう:2009/05/19(火) 12:35:07
>>213
一番単純な方法は、先に地図を作っておいて、物件になりうるところに
テキストボックスを配置する方法ではなかろうか。
区画を識別できるフィールドがあれば、非連結レポートになると思うが、
テキストボックスのタグに区画名を記入しておき、開くときにでもコントロール総当たりで
タグに書かれた区画と区画フィールドに書かれた区画が一致するするレコードを書き込んでいく。
216215:2009/05/19(火) 12:38:17
wordのマップをそのまま流用できるよ。
217名無しさん@そうだ選挙にいこう:2009/05/19(火) 19:35:54
>作成に割ける時間は1時間から半日以内です

1日にそれくらい作る時間があるなら3ヶ月くらいあれば
完成するかもしれません。

 質問しながら作るのなら、1年くらい掛けると完成するかもしれません。
218名無しさん@そうだ選挙にいこう:2009/05/19(火) 20:57:58
>>214-217
みなさん、ありがとうございます。
本業の合間に、質問しながら1年かけて、というコースで行こうと思います。
お世話になりました。
219名無しさん@そうだ選挙にいこう:2009/05/19(火) 21:31:53
2007のアップグレード版って、インストール時に以前のバージョンのCDメディアは必要なんですかね?当方、2000の通常版を持っています。
220名無しさん@そうだ選挙にいこう:2009/05/19(火) 22:04:50
こんなのと1年つきあうことになるのかよ・・・
221名無しさん@そうだ選挙にいこう:2009/05/19(火) 22:40:44
>>219
普通は必要
222名無しさん@そうだ選挙にいこう:2009/05/19(火) 23:24:48
>>221
やはり必要でしたか。押し入れの中を探してみます。
ありがとうございました。
223215:2009/05/19(火) 23:29:50
>>220
つうか、地図部分はともかく、実行部なんて十数行のプログラムじゃないのか?
それとも俺、なんか勘違いしているのか?
224名無しさん@そうだ選挙にいこう:2009/05/20(水) 01:22:08
すいません。
テーブルAに数値フィールドがあって、このテーブルAのレコードを
合計して、この合計をテーブルBの数値フィールドに更新かけたい
のですけど、どういう風にすればよいでしょうか?
225名無しさん@そうだ選挙にいこう:2009/05/20(水) 08:34:10
>>224
テーブルAの数値フィールドをDSum関数で合計したものを
ソースにしたクエリを作ればよいのではないでしょうか?
どうしてもテーブルにしたいとか任意のタイミングで更新したいってことなら話は別
226名無しさん@そうだ選挙にいこう:2009/05/20(水) 22:16:29
FOM出版のAccess2007基礎、応用で勉強を始めたばかりの初心者です。
上記2冊以降、どの書籍を参考に勉強すればよいかわかりません。
オススメの本を教えてください。
将来的にはマクロやVBAが使えるようになりたいと思っています。
227名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:34:38
>>226
vbaやるんだったらネットで覚えた方がいいんじゃないかな
本読みながらコード打つの面倒だしMSDNのリファレンスも便利

一応俺の御用達サイト群
ttp://hatenachips.blog34.fc2.com/blog-category-5.html
ttp://www.accessclub.jp/
ttp://msdn.microsoft.com/ja-jp/library/cc348157.aspx
228名無しさん@そうだ選挙にいこう:2009/05/21(木) 02:38:13
Freeで提供してくれている、Accessのデータベースをダウンロードして、
仕組みを探ってみるのも勉強になるよ。2007なら、ノースウィンドがお勧め。
229名無しさん@そうだ選挙にいこう:2009/05/21(木) 03:30:16
有料のmdbのコードを見たらVBAの本に載っていないコードがたくさんあった。
やっぱり、VBの勉強が必要なのかな?
230名無しさん@そうだ選挙にいこう:2009/05/21(木) 07:11:12
その>有料のmdb
ってどんなの?
231名無しさん@そうだ選挙にいこう:2009/05/21(木) 08:42:18
>>230
売っているmdbファイルということ。
普通にあるじゃん。なにが疑問なの?
232名無しさん@そうだ選挙にいこう:2009/05/21(木) 09:02:03
>>上記2冊以降、どの書籍を参考に勉強すれば

上記2冊が死ぬまでツンドクになるだけだから次のことなんて考えなくていいよ
233名無しさん@そうだ選挙にいこう:2009/05/21(木) 09:37:39
DoCmd.OpenForm "フォーム1", , , , , acDialog

『フォーム1』をモーダルで開きたい場合は↑のように通常なら書くと思います。
ですが↑だと、フォーム1のサイズを変更できなくなってしまいます。

今やりたいと思っているのは、フォーム1をモーダルで開き、尚且つフォーム1のサイズはマウスで自由に変えれるようにしたいのです。

そのようなことは可能なのでしょうか?
234名無しさん@そうだ選挙にいこう:2009/05/21(木) 09:40:09
可能。
235名無しさん@そうだ選挙にいこう:2009/05/21(木) 13:41:35
313 名前: すずめちゃん(アラバマ州)[sage] 投稿日:2009/01/24(土) 17:19:53.45 ID:97CqafnI
特許庁のシステムとか、西武百貨店のシステムとか、三井リハウスのシステムとか
アクセス→SQLサーバー接続で作ったシステムです
それぞれ、プロが数千万円の報酬や助成金で作った、総額ん億円のシステムです
プログラム作成のお勉強見本としてドゾー

[殺人] Administrator(20081230-101522)のキンタマ.zip 2,263,376,860 09ed98f10653c3fc2555621ceeed6bc33e8f6228
[殺人] Administrator(20081230-101522)のメール.zip 59,426,579 4da9459b30eec31f58b86530dbb48d1cf86ef4be
[写真集][IV] Administrator(20081230-101522)のアルバム.zip 2,205,946,474 9d87cc0e08dc0e3afd959fcead6c48d569787cee

476 名前: すずめちゃん(アラバマ州)[sage] 投稿日:2009/01/25(日) 12:02:20.71 ID:pNrDVo49
解析班のために岡ちゃんが流出させた上のファイル全部うpしとく
パスは 135 ね
解凍したら全部で6Gあるから注意してね ウイルス削除済み
(p)http://www.adrive.com/public/7d08fe24675fa758db8ab29ba4cae136e10a2d9958ce415d2f248de84871eb52.html
(p)http://www.adrive.com/public/a300a6e3cecf155dda7f8c1843a9280da156b41119f79d58644217407ad6652d.html
(p)http://www.adrive.com/public/002efa3ac3b17864e3839888a0de348b1c565c1f24f226e403086491af4adb71.html
(p)http://www.adrive.com/public/945451d37fe9b7c3e609f5915f7abf0c9afaa1d78149ede318b38ac1724a79bc.html
負荷分散のため分けた。
全部同時にDLすれば早いぞ1時間位 全部DLしてから解凍してくれ

拡張子.dbxは下のフリーソフト使えば見れるようになるよ
(p)http://www.asahi-net.or.jp/~tz2s-nsmr/soft/dbxview/ne03ws.htm
拡張子.mdbはエクセルで開ける 起動フォームでテーブルがブロックされるものは
シフトキー押しながら起動で解除してテーブル見る

中のファイルのパスは DD`(4Y  か test で だいたい開ける
それでもダメなら報告してね 皆で解析するからw
後、個人情報を悪用したらダメだよw解析用だけにつかってねw
236名無しさん@そうだ選挙にいこう:2009/05/21(木) 17:26:47
2007SP2にしたが、相変わらず日本語版は埋め込みマクロをVBAに変換できない
何とかしろよ
237名無しさん@そうだ選挙にいこう:2009/05/21(木) 17:32:09
桐に(ry
238名無しさん@そうだ選挙にいこう:2009/05/21(木) 17:54:11
うん、もう桐が良いよ
239名無しさん@そうだ選挙にいこう:2009/05/21(木) 22:03:09
だからおれが最初からVBAにしとけってあれほど言ってたのに
なんでマクロでアフォみたいに大量に書いちゃうの?
アフォなの?
240名無しさん@そうだ選挙にいこう:2009/05/21(木) 22:25:09
>>226 です。

アドバイスありがとうございます。
ネットだといろいろあるのですね。
ただ2007対応の書籍となると皆無といったところでしょうか?
241名無しさん@そうだ選挙にいこう:2009/05/21(木) 22:27:28
>>235 の人が何か上げてるみたいですが・・・
違うのかな
242名無しさん@そうだ選挙にいこう:2009/05/21(木) 23:21:36
ADOとかDAOで条件式書くときに結構苦労してるんだけど
どっかいい学習先ないですか
'とか"のちょっとしたで動かなくて
エクセルと違って大変ややこしいですね
243名無しさん@そうだ選挙にいこう:2009/05/21(木) 23:38:06
>>242
まじめに勉強したいのだったら、一冊ぐらい本買おうぜ。
’や"のどこが条件式なのだろう。
"内での文字列は’で囲うと覚えておけばいいよ。
244名無しさん@そうだ選挙にいこう:2009/05/22(金) 07:05:05
本は4冊はあるんだけどコツとか書いてないかったりして、
実際動かすの苦労するんです、とりあえずそれは肝に銘じておきます。
ありがとう。
245名無しさん@そうだ選挙にいこう:2009/05/22(金) 14:03:48
>>242
Accessでクエリを作成->SQLを見てどうなっているかを解析する
#その前にSQLの本を、ちゃんとこなすこと かな
それを繰り返していけば、かなり使えるようになると思うよ
#union 以外は
マクロ+クエリをVBAベースに書き換えた経験がかなり役に立った
#オリジナル作った奴、殴りたいと思ったけどw
クエリを多重に使った他人のmdbのメンテはできねーよ
SQL一発で終わるものは、それで書けよ 全く
246名無しさん@そうだ選挙にいこう:2009/05/22(金) 22:25:56
データシートで、右クリックでレコードコピーして、新規行のレコードセレクタで貼り付けしたら、どうなる?
自動的にトランザクションモード?
この動作で良いんか?
247246:2009/05/22(金) 22:54:49
2007SP2だけ?
新規行にレコードコピーして編集したら、一度閉じて開いた後に、編集結果残ってる?
248名無しさん@そうだ選挙にいこう:2009/05/23(土) 00:13:43
いま公式ブログの2007 SP2エントリ見直してきたけど、
コメント欄がSP2バグレポと罵倒の嵐になってるなw
249名無しさん@そうだ選挙にいこう:2009/05/23(土) 08:41:05
XP Access2000です
以前にも質問させて頂いたものですがまた教えてください

顧客 受注日 のデータからリピート間隔を調べています

2回以上の受注をした顧客の 最初の受注日と2回目の受注日の間隔と
それが100日ごとに何パーセントの率であるかを調べなければ行けなくなりました
今回のデータ件数は50000件位あります

古本屋で購入したりして調べたのですが方法がわかりませんでした
どなたかご教授下さいませ
250名無しさん@そうだ選挙にいこう:2009/05/23(土) 11:35:30
名前 受注日     経過日数
あ  21/2/1    0
い  21/2/2    0
う  21/2/4    0
あ  21/3/6   33
い  21/3/15  49
あ  21/5/24  79
う  21/6/30 143
い  21/7/25 132

まず、経過日数を求めるために顧客毎に絞り込み受注日で並び替えて
顧客名の数だけ繰り返して置換します。
次に期間を指定して受注件数を集計します。
経過日数が100日以内の顧客だけを絞り込みます。
件数を集計します。
 期間がどのように指定するかで、プログラムの組み方が変わると
思います。
 毎日のリピート率が必要なら、顧客名と受注日が解った時点でイベント
を使い経過日数を書き込むようにした方がいいと思います。
 そうすれば、集計だけなので短時間で終わると思います。

アクセスはクエリーとVBAで頑張って下さい。
251名無しさん@そうだ選挙にいこう:2009/05/23(土) 13:45:28
having count(受注日) > 1 の顧客毎にmin(受注日)
あとはループ group by 顧客, 受注日, etc の結果を
min(受注日)+100日ごとに集計かな・・・・
# SQL は VBA で作る。case 使えれば楽なんだけど
かな?
252名無しさん@そうだ選挙にいこう:2009/05/23(土) 14:37:20
>>249
集計クエリは作れる前提として…

1.テーブルを元に、顧客をグループ化して受注日の最小値を集計する
クエリを作成する。(クエリ1)
2.テーブルとクエリ1を元に、受注日の最小値より大きい受注日を持つ
データを選択する。(クエリ2)
3.クエリ2を元に、顧客をグループ化して受注日の最小値を集計する
クエリを作成する。(クエリ3)
4.クエリ1とクエリ3を元にすれば、受注日(初回)と受注日(2回目)が
求められます。
※今回は理解しやすいようにクエリを分割して作成しました。

あと、100日ごと…の部分は>>250さん、>>251さんの解釈で良いのでしょうか?
私には意図するところが理解できなかったので省略させてください。
253246:2009/05/23(土) 16:02:58
色々と試したら
Recordset.MoveLast したら新規レコード保持できた、何故か以後は保持できるようになった

あと、新規行にレコードコピーするたびに、ヘッダに置いた非連結テキストボックスの更新後イベント発生するのは以前から?
254名無しさん@そうだ選挙にいこう:2009/05/23(土) 17:45:00
AC2000:
コードとBooleanの2フィールドを持ったテーブルがあります。
これを元にBoolean型フィールドをチェック/アンチェックするフォームを作成したのですが、
通常の作りでは縦に並んでしまい使い勝手が悪い。なので、例えば
1で始まるコード、2で始まるコード…
といったようにグルーピングして設置したいのです。
サブフォームを使えばどうにでも出来るのですが、
もっとスマートなやり方はないもんでしょうか。
255名無しさん@そうだ選挙にいこう:2009/05/23(土) 21:05:48
もう桐にするよ
256名無しさん@そうだ選挙にいこう:2009/05/23(土) 21:53:35
/(^o^)\ナンテコッタイ
257名無しさん@そうだ選挙にいこう:2009/05/24(日) 01:16:11
Accessなのに桐桐舞い とは、これいかに

お後がよろしいようで
258名無しさん@そうだ選挙にいこう:2009/05/24(日) 08:01:36
確かに柔軟なフォームやレポートは桐で簡単に作れるよ。
259名無しさん@そうだ選挙にいこう:2009/05/24(日) 11:29:45
一般的なデータベースの実務的利用なら
レコードの操作は、
・単純に合計する
・ある抽出条件で抜き出す
・クロス集計する
・指定順に並べる
・・・・・
ぐらいなもんで済んでしまう。
あとは、これらを排他なしで保持して、別のフォームやレポートに
流用できればいいのだから、クエリー系が簡単なやつがいいよ。
260名無しさん@そうだ選挙にいこう:2009/05/24(日) 21:26:44
最新バージョンは何時になってもバグ大杉で安定はまだまだ先
安定したころにはOSのサポートなくなって使えない
以下ループでMSに無限にお布施

Win7でAccess2003は対応するのかな?
261名無しさん@そうだ選挙にいこう:2009/05/24(日) 21:45:56
オフィス2010のアクセス2010が対応するんじゃね
262名無しさん@そうだ選挙にいこう:2009/05/24(日) 21:48:04
じゃ、またお布施ってことで
263名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:22:36
なんでOSをコロコロ変えるの?
俺は今年の2月WinXPのアップグレード版の箱を初めて開封したよ。もちろんSp2じゃないよ。
OSなんて枯れたのが一番。Win2Kがいちばんだけど、動画ソフトが対応していなかったからやむなくXPの箱を開封したよ。
264名無しさん@そうだ選挙にいこう:2009/05/25(月) 01:40:56
OSはともかく、
Accessって使ってるバージョンが古いと
新しいバージョンで作ったファイルを
開くことすら出来ないことがあるから困っちゃうわ
265名無しさん@そうだ選挙にいこう:2009/05/25(月) 10:11:17
サポート終了してるOS使ってる男の人って。。。
266名無しさん@そうだ選挙にいこう:2009/05/25(月) 11:01:35
Win3.1でごめんなすって
267名無しさん@そうだ選挙にいこう:2009/05/25(月) 11:01:49
>>265
安定感抜群。
268名無しさん@そうだ選挙にいこう:2009/05/25(月) 13:48:37
枯れてるのが最良なら死ぬまでMS-DOSでも使ってればいいのに
269名無しさん@そうだ選挙にいこう:2009/05/25(月) 13:52:01
ウインドウズなんて、みんなDOSじゃんw
270名無しさん@そうだ選挙にいこう:2009/05/25(月) 17:39:29
access2007
レポートをexcelにエクスポートできるんだが、
なぜにxls形式なのだろうか。
さほどの影響はないけど、変だよね
271名無しさん@そうだ選挙にいこう:2009/05/25(月) 18:45:24
2007SP2でデータベース構造の解析のテーブル定義の印刷を
実行した際にフィールドのサイズが表示されないのは
何か設定をしなければならないのでしょうか?
272名無しさん@そうだ選挙にいこう:2009/05/25(月) 21:17:05
原始発売当初から十数年経ってなお、ちっとも進化していないAccess
273名無しさん@そうだ選挙にいこう:2009/05/25(月) 21:23:16
初歩的な質問ですみませんが、どなたか教えてください。

アクセスのフォームでタブコントロールを配置しました。
全ページ同じ項目を配置し、全ページ同じ形式(単票)です。
ページ1、ページ2、ページ3・・・で、非連結状態です。

その中で、特定のページにのみデータを表示したいのですが、
うまくいきません。どうしてもページ1にだけデータ表示されます。
例えば、ページ3にだけデータを表示したい場合はどうしたらいいでしょうか?
特定ページをどのように書き表したらいいでしょうか?

説明が抽象的でスミマセンが、どなたか宜しくお願いします。


274名無しさん@そうだ選挙にいこう:2009/05/25(月) 21:42:27
Access2007で作った CommandBarControl objects は削除できないのか orz
275名無しさん@そうだ選挙にいこう:2009/05/26(火) 10:51:27
>>273
ちゃんとタブコントロール内に配置できているの?
タブコントロールの上に重なっているだけじゃないよね?
まぁ、タブ内のコントロール配置が同じなら、俺は後者でやるけどな。
あとは表示したいページに切り替わったら、データぶち込めばいいだけだし。
276275:2009/05/26(火) 11:16:15
ちなみに

Me!タブコントロール名

でページインデックスが参照できる。
簡単に言えば、ページ数-1の値が得られる。
277名無しさん@そうだ選挙にいこう:2009/05/26(火) 22:28:01
2007でフォームを使ってデータ入力してEXCELに出力して印刷、
あるいはテーブルで表示して印刷したいのですが
当日のみのデータだけ必要なのですが、前日のデータが残っていていちいち
削除しなければならないので、自動的に前日のデータを削除する方法、あるいは、
印刷が終わったら、アクセスを閉じたら削除される方法を教えて下さい。
初心者なのでVBAとかよくわかりません。
278名無しさん@そうだ選挙にいこう:2009/05/26(火) 23:01:35
>>277
クエリ使えよ。
ところで、日付が入力されている列はあるのだろうな。
あるのだったら抽出条件にDate()とでも入れておけ。
削除も同じ。削除クエリで抽出条件に<Date()で今日以前のデータは削除される。
削除する必要があるかは疑問だが。
279名無しさん@そうだ選挙にいこう:2009/05/26(火) 23:03:54
データベースでは基本的に古いデータを削除しません
全体から必要なデータだけ抽出して処理します

当日のデータのみ処理する場合は、当日のデータのみ抽出します

【Access 開発者用リファレンス 】
  フォームのフィルタを使用してレポートをフィルタする方法
を検索参照してください
280名無しさん@そうだ選挙にいこう:2009/05/27(水) 00:02:00
>>278
フォームのヘッダに日付を入れてるだけです。
いったん印刷をかけてしまうと、そのデータは全く必要がなくなるので、
次の日、またデータ入力する際には、もう前日のデータがなくなっている
状態にしたいのですが・・・。自動的に閉じるときとか、次に開くときに
削除されている状態にはできないでしょうか?
削除クエリとは、そのつどやるんですよね?
281名無しさん@そうだ選挙にいこう:2009/05/27(水) 00:03:47
>>279
見てみます、ありがとうございます。
282名無しさん@そうだ選挙にいこう:2009/05/27(水) 01:14:12
>>279
フォーム作っているなら、削除ボタンとか作ったら?
最良と思われるのは印刷もAccessのレポートを使って
フォームに印刷ボタンを配置してボタンが押されたら
印刷→削除を実行させることだろう。
VBAが解らないのなら、コマンドボタンのウィザードで印刷ボタンと
クエリの実行(削除クエリは作っておく)で削除ボタンをつくり
削除ボタンでできたコードをひとつにまとめてしまえばいい。
2007は持っていないのでようわからんが、同じような機能はあるだろう。
283名無しさん@そうだ選挙にいこう:2009/05/27(水) 05:35:39
そんな処理なら
なぜにアクセスが必要なんだろうかって気もするな
284名無しさん@そうだ選挙にいこう:2009/05/27(水) 06:11:51
>>280
その設計思想は基本的に駄目だろ。
中座するのでAccessいったん終了した場合はどうなる?
データに日付を持っていないなら、>>282みたいに確実にデータがいらなくなった状態がわからないと。
テーブル構造を変えられるのなら、日付フィールドを追加する(フォームに表示する必要なし)。
規定値にDateと入れておけば、レコードが増えるたびに勝手に入力日付(正確にはシステム日付)が入るから
フォームイベントの開くときにでも、今日以外の日付を削除するコードを書けばいい。
そうすれば>>278も使える。

285名無しさん@そうだ選挙にいこう:2009/05/27(水) 08:47:19
>>277
まったく>>283の言うとおりなんだが、
あえて現状を利用するとするなら
データの入ってないデータベース(Accessのファイル)をどこかにコピーしておき
新しくデータを入れるときにそれをコピーしてきて使うというのはどうか?
286名無しさん@そうだ選挙にいこう:2009/05/27(水) 08:52:58
>>277
InfoPathでテンプレート作るとお望みの通りになる、便利だぞ
Acrobatでフォーム作っても出来そう
287名無しさん@そうだ選挙にいこう:2009/05/27(水) 17:48:20
acrobatがほしい、安く譲ってください
288名無しさん@そうだ選挙にいこう:2009/05/27(水) 18:11:35
体験版に、KeyGeneがネット上にあるよ
289名無しさん@そうだ選挙にいこう:2009/05/27(水) 18:59:58
この店で売ってる
http://www.hhyyhh22.co.nr
290名無しさん@そうだ選挙にいこう:2009/05/27(水) 20:09:20
いい加減に潜と通報するぞ
291名無しさん@そうだ選挙にいこう:2009/05/27(水) 22:19:07
今日以外の日付を削除するコードとはどのようにやるんですか?
292名無しさん@そうだ選挙にいこう:2009/05/27(水) 22:39:41
すいません、できましたありがとうございました。
293名無しさん@そうだ選挙にいこう:2009/05/27(水) 22:41:29
いえ、どういたしまして。
294名無しさん@そうだ選挙にいこう:2009/05/27(水) 22:59:29
もちろん手動で一ずつ消していけばできる
295名無しさん@そうだ選挙にいこう:2009/05/28(木) 22:23:57
>>275
ありがとうございます。うまくいきました。
VBAは便利だけど、毎回奮闘ですわ。
296名無しさん@そうだ選挙にいこう:2009/05/29(金) 08:41:34
Now accepting nominations for Access 2010 Technical Beta program
I’m pleased to announce the Access team is taking nominations to participate in the Office 2010 Technical Beta program.
We expect availability of our first beta release, known as Technical Preview, in the month of July. The team is excited to get feedback from our community that will help us make this a great release.
Here is your opportunity to nominate yourself to participate in the program (space is limited).
If you are interested in beta testing Access 14 please complete the following nomination form (you will need to log into Microsoft Connect with a Live ID).

We look forward to hearing from you.

P.S. Access MVP are already nominated and need not apply.
297名無しさん@そうだ選挙にいこう:2009/06/02(火) 10:30:01
Aさん・Bさん・Cさん・Dさん・Eさんの5人がいるとして、
りんご・いちご・バナナ・ぶどう・すいか・オレンジ・メロンの7つの果物があります。
人は今後追加していきますし、果物も追加していく予定です。
Aさんをクリックしたら、果物リストの中からAさんの好きな果物のみを表示する事はできますか?
298名無しさん@そうだ選挙にいこう:2009/06/02(火) 10:39:11
できません
Aさんの好きな果物データを入力しておく必要があります
299名無しさん@そうだ選挙にいこう:2009/06/02(火) 11:07:54
>>298
そうでしたか。。
了解致しました。どうもありがとうございます。
300名無しさん@そうだ選挙にいこう:2009/06/02(火) 11:43:42
>>299
人工知能の実装とかしたいのか?
Aさんがりんごを好きだという情報はどこで入れるんだ?
301名無しさん@そうだ選挙にいこう:2009/06/02(火) 16:21:23
>>297
突っ込まれているように、登録された人物に好きな果物という情報が必要。
一番単純なのはりんご・いちご・バナナ・ぶどう・すいか・オレンジ・メロンという列を作ってフラグを立てることだろう。
しかし、これは発展性のない作りなのでお勧めしない。
多少Accessに慣れた人なら、恐らく登録メンバーテーブル(メンバーID、氏名、好きな果物)と果物テーブル(果物ID、果物名)作る。
ここでミソなのが果物テーブルのID。ここを1、2、3、4…という連番ではなくて2の乗数にする。
そして登録メンバーテーブルの好きな果物には果物IDをいれ、複数回答の場合は合算したものを入れればよい。
302名無しさん@そうだ選挙にいこう:2009/06/02(火) 16:27:24
> 連番ではなくて2の乗数にする。

出し入れのスマートな方法も書いてよ
303名無しさん@そうだ選挙にいこう:2009/06/02(火) 16:56:23
それ果物が10個程度ならIDの最大値は2^10で済むけど
20個とか30個以上に増えた場合のことを考えると
むしろより発展性がなくなってるような気が・・・
304名無しさん@そうだ選挙にいこう:2009/06/02(火) 17:15:59
>>303
31個までなら長整数型でいけないか?
305301:2009/06/02(火) 18:48:26
>>302
果物テーブルにはフラグフィールドも必要だった。
書き込みはXor、表示はAndで楽勝でしょうが。
306名無しさん@そうだ選挙にいこう:2009/06/02(火) 18:56:08
もっと簡単にやさしくお願いします
307名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:03:48
【 システム環境  . 】 Windows98, Access2000
【 VBAが使えるか .】 はい
【 VBAでの回答  】 可
【 検索キーワード 】結合式がサポートされていません

テーブルの構成
TABLE1 : ID1, STR1
TABLE2 : ID1, ID2
TABLE3 : ID2, STR1

TABLE1に次々と項目が入力されていきます。
オプション項目が選択されたときのみTABLE2に項目のIDとオプションのIDが記録されます。
オプションの項目はTABLE3の中から選ばれます。

このとき、ASPで
select * from (TABLE2 inner join TABLE3 on TABLE2.ID2 = TABLE3.ID2) right join TABLE1 on TABLE1.ID1 = TABLE2.ID1
をexecuteすると、結合式がサポートされていませんというエラーになります。
MySQLでは結合後NULLを含むようなものもjoinできるようなのですが、
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_09.htm
AccessではたとえばTABLE2とTABLE3を結合させて配列に格納しておくようなことをしないといけないのでしょうか。
ちなみにrightをleftにすると、オプション項目があるもののみ抽出されてエラーは発生しません。
308名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:05:02
あ、TABLE3のSTR1はSTR2の間違いです。
309名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:05:50
>>306

ttp://www.f3.dion.ne.jp/~element/msaccess/AcTipsBitMask.html

の応用。このとおりでいいなら、果物テーブルはいらないけどね。
310名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:09:13
どうもアリガト
でも簡単ではない・・・
Access2007買って複数値フィールド
311名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:27:57
>>310
Do Until rs.EOF
rs.Edit
If (Me!好きな果物 And rs!果物ID) <> 0 Then
rs!Flg = True
Else
rs!Flg = False
End If
rs.Update
rs.MoveNext
Loop

これだけだよ?
312301=311:2009/06/02(火) 19:40:08
わるい。途中で送信しちゃった。
やっていることは、好きな果物で登録された数値に果物IDが含まれているかをチェックし、
含まれていれば>>305で言ったフラグフィールド(Flg)をTrueに、そうでなければFalseにしているだけ。
313名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:54:50
けち臭いことスンナよ。
普通に一対多のリレーションでいいだろ。
ラブラブランクも登録できるようにするべきだ。
314名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:56:16
一対多じゃなくて多対多ですわ。
315名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:56:56
毎回レコードセット回すのか?
316名無しさん@そうだ選挙にいこう:2009/06/02(火) 20:01:11
始めからテーブル一つで良いでしょ
317名無しさん@そうだ選挙にいこう:2009/06/02(火) 20:14:16
>>307
TABLE2とTABLE3を結合させてクエリとして名前をつけて保存しとくといいよ。

Accessでサブクエリなんて・・・
318名無しさん@そうだ選挙にいこう:2009/06/02(火) 20:30:14
>>317
なるほどさんくす。
やっぱ無理なのか。
将来的にMySQLに移植しようかと思ってるんで、できれば使いたかったんで質問しました。
319301:2009/06/03(水) 02:47:07
>>315
こういうのも面白いと思ったのだが……
って俺へのレスでいいんだよね?

>>310
普通に、メンバーIDで1対多になる「好きな果物テーブル」でも作れば?
320名無しさん@そうだ選挙にいこう:2009/06/04(木) 15:41:41
xp 2003 VBA可です。

商品マスタテーブルからクエリを作成して、そこにテーブルの項目:原価、売価を
使用して、粗利(円)、粗利(パーセント)の演算項目を追加したところ、クエリの項目の更新ができなくなりました。
原因がわかる方いたしたらおしてください。
321名無しさん@そうだ選挙にいこう:2009/06/04(木) 16:42:41
商品マスタテーブルだけじゃなくて他のテーブルに結合してないか?
322名無しさん@そうだ選挙にいこう:2009/06/04(木) 18:18:29
>>321
してます・・・。
してると問題あるんでしょうか?
323名無しさん@そうだ選挙にいこう:2009/06/04(木) 19:22:06
わかる方いたしたら
324名無しさん@そうだ選挙にいこう:2009/06/04(木) 22:03:56
私の陰茎の結合先がNULLなのですが、結合先を膣にするにはどうしたらいいでしょうか
325名無しさん@そうだ選挙にいこう:2009/06/04(木) 22:55:27
金貯めてソープ
326名無しさん@そうだ選挙にいこう:2009/06/04(木) 23:24:34
自己結合という手もあるよん。
327名無しさん@そうだ選挙にいこう:2009/06/05(金) 08:46:41
>>307
SELECT * FROM TABLE1 INNER JOIN
(TABLE2 INNER JOIN TABLE3 ON TABLE2.ID2 = TABLE3.ID2)
ON TABLE1.ID = TABLE2.ID1;
クエリ作ってSQLで表示<結構役に立つ
Accessはこのあたり癖があるみたいだね
328名無しさん@そうだ選挙にいこう:2009/06/05(金) 08:49:08
ちがってるわ すまんw
329名無しさん@そうだ選挙にいこう:2009/06/05(金) 08:54:34
SELECT * FROM TABLE1
LEFT JOIN
(select * from TABLE2 INNER JOIN TABLE3 ON TABLE2.ID2 = TABLE3.ID2) tb1
ON TABLE1.ID = tb1.ID1;
でいいのかな
330名無しさん@そうだ選挙にいこう:2009/06/05(金) 18:49:28
>>324-326
君らみたいなのをこのスレで見たのは初めてだよ
ある意味新鮮だったな
331名無しさん@そうだ選挙にいこう:2009/06/06(土) 19:57:35
Accessは中途半端だなぁ、桐の方が良いよ
332名無しさん@そうだ選挙にいこう:2009/06/06(土) 20:08:00
空気読めなくてごめんね 今時Web上で共有知識も探せないようなソフト誰があえて使うんだよ…
333名無しさん@そうだ選挙にいこう:2009/06/06(土) 21:01:50
>>331
桐も中途半端だろ
334名無しさん@そうだ選挙にいこう:2009/06/06(土) 21:10:16
まあAccessは同じことをするのに色々な方法があるけど、桐はヘルプだけで十分だしな。
335名無しさん@そうだ選挙にいこう:2009/06/07(日) 10:17:03
アクセス2007買いました。
開発者用ヘルプと格闘して数カ月、解らないことがあります。

*Property プロシージャ
*RaiseEvent

この2つは、無意味で使わなくても良いとの理解なのですが、どんなもんでしょ?
使うと却って遅くなって、使うと多少カッコ良いかも程度の意義しかない、であってますか?
336名無しさん@そうだ選挙にいこう:2009/06/07(日) 10:36:06
VBA でクラスモジュール使うときに使うね>Property プロシージャ
>無意味で使わなくても良い
というものではない。使うとうれしいことはある
#VB6のsubmainでiniファイルの読み込みをするとか
dbへのアクセス周りをラップするとか
#自分はそう使ってるわけではないけどね
そのあたりちゃんと説明してある本があるかな・・・?

RaiseEventは使ったことがないなぁ・・・
337名無しさん@そうだ選挙にいこう:2009/06/07(日) 10:38:50
>>332
日本語でおk
338名無しさん@そうだ選挙にいこう:2009/06/07(日) 10:58:29
俺は、どちらも使ったことない orz
339名無しさん@そうだ選挙にいこう:2009/06/07(日) 14:35:26
>>335
クラス使うならどちらも必須。日常的に使う。
だからPGのスタイルによる。OOPが分からないなら、使えない。
必要性がわからない段階では、無理して使う必要はない。
でも使いはじめると、もうそれ抜きでは設計できなくなる。
340名無しさん@そうだ選挙にいこう:2009/06/07(日) 15:07:07
CSVデータをインポートする時点で絞り込みをかける方法はありますか。
現状、大量のCSVデータを一時テーブルに取り込んでからメインの処理を走らせているのですが、
データ量によっては取込完了前にACCESSの限界容量2Gを超えてしまいます。

現状は取り込みを何度かに分け、その都度
一時テーブルの不要データ削除→最適化
で凌いでいますが、非常に効率が悪いと感じています。

元となるCSVデータは固定であり、変更できません。
よろしくお願いします。
341239:2009/06/07(日) 15:11:02
CSVデータは月別に複数のファイルに分かれています。
使用するデータ(期間)は毎回異なるため、リンクテーブルは使えません。
342名無しさん@そうだ選挙にいこう:2009/06/07(日) 16:02:15
一時テーブルもmdbを別ファイルにしてリンクテーブル使えば?
343名無しさん@そうだ選挙にいこう:2009/06/07(日) 17:27:48
アクセスVBAでクラスって普通のフォームモジュールだろ?
344名無しさん@そうだ選挙にいこう:2009/06/07(日) 17:54:43
>>340
1ヶ月分のCSVファイルをインポートしても2GBの壁を越えないのであれば
こんな感じのファイル構成を考えたらどうかな?

・Main.mdb プログラム格納
・MonthlyData.mdb CSVファイル1ヶ月分のインポート先(一時ファイル)
・SelectedData.mdb MonthlyData.mdbから抽出されたデータの格納先(一時ファイル)

1.SelectedData.mdbを作成
2.SelectedData内にSelectedTableを作成
3.MonthlyData.mdbを作成
4.MonthlyData内にMonthlyTableを作成
5.MonthlyTableにCSVファイルをインポート
6.MonthlyTableから必要レコードのみSelectedTableへ追加
7.MonthlyDataをファイル削除
8.必要な月数だけ3〜7を繰り返し
9.必要データが蓄積されたSelectedDataを元に処理。
10.処理完了後、SelectedData.mdbを削除

作り込むのは面倒かもしれないけど、>>342の言うように別ファイルにして
処理後に削除するようにすると最適化が不要になるよ。
345339:2009/06/07(日) 18:25:07
>>343
そう。
だから、そんなようなクラスを自分でも積極的に設計して使うのか、
それとも組み込みのクラスだけを意識せず受動的に利用するのかっ
ていうスタンスの違いが出るね。
システムの規模が小さかったり、連結フォームでデータ出して終わり
とかだとクラスの使いどころが無いから、状況によるけど。

質問者さんはヘルプで勉強中みたいだから、10行ていどの使用例
見てる分には、クラスの必要性を実感できなくて当然だと思う。
たぶん、クラスを使わないでスパゲッティになってるシステムの保守を
やらされたとき、逆説的にクラスのメリットを痛感するかもしれない。
346名無しさん@そうだ選挙にいこう:2009/06/07(日) 18:42:36
xp 2003 です。

初心者の質問で恐縮です。
エクセルファイルを開いて、値を参照したいのですが、getobjectでこけてしまいます。
アドバイスください。ライブラリは参照しています。
エラーメッセージは「実行時エラー13 型が一致しません」です。

Dim appexcel As Excel.Application
Dim wb As Excel.Workbook
Dim wsh As Excel.Worksheet
Dim path As String
Dim i As Integer

path = "C:\Documents and Settings\xxxxxxx\デスクトップ\xxxxxxxl.xls"

Set wb = GetObject(path) ←ここでこけてしまいます・・・。

Set wsh = wb.Sheets("xxxxxxxx")


347名無しさん@そうだ選挙にいこう:2009/06/07(日) 21:52:43
オプション追加して、
Set wb = GetObject(path,"Excel.Application")
でどう?

だめなら、とりあえずwbを単なる総称オブジェクトにするとか試してみな
Dim wb As Object
348名無しさん@そうだ選挙にいこう:2009/06/07(日) 21:55:03
おっと、この場合なら、本体の"Excel.Application"じゃなくて
"Excel.Sheet"が正しかったっけかな
349335:2009/06/07(日) 22:51:59
>>336
>>339
>>345

有難うございます。

> システムの規模が小さかったり、連結フォームでデータ出して終わり
> とかだとクラスの使いどころが無いから、状況によるけど。

連結フォームを卒業したら改めて勉強してみようと思います。
350名無しさん@そうだ選挙にいこう:2009/06/07(日) 23:08:29
俺様メモ

***ここまで読んだ***
351名無しさん@そうだ選挙にいこう:2009/06/08(月) 07:56:58
>>340
2G超えるなら素直にSQL鯖使ったら?
EXで4Gの制限あるけど
352346:2009/06/08(月) 08:29:07
>>347
早速試してみます。ありがとうございました!
353名無しさん@そうだ選挙にいこう:2009/06/08(月) 22:11:15
2007でフォームの入力でルックアップを使っているのですが
リスト項目の編集というのがあってフォーム上で追加できますが、
2000ではどうやるのですか?同じようなことはできないのでしょうか?
354名無しさん@そうだ選挙にいこう:2009/06/08(月) 22:16:34
XP, Access 2000
VBAでお願いします。
CSVをMDBにインポートする。(テーブル名=CSVファイル名で新規テーブル作成)
条件:取り込み対象のCSVの項目(ヘッダ:フィールド)数は、いつも同一とは限らないです。(可変であります。)
インポート定義は、項目数が異なる為、使う事ができず、どうすれば取り込めますか?
ファイル名_インポートエラーというエラーテーブルが作成され、F1項目のテーブルが作成され、困っています。
355名無しさん@そうだ選挙にいこう:2009/06/08(月) 22:29:59
>>353
できません
356名無しさん@そうだ選挙にいこう:2009/06/08(月) 22:33:51
可変の時点で定型のインポート処理は無理
桐でも使わんことには・・・
357354:2009/06/08(月) 22:45:13
>>356
schema.iniの作成は可能です。(FSOで。)
csvファイルと同じディルクトリに配置するところまでは分るんですが、
Access.DoCmd.TransferTextでは使えないですね。
別にAccess.DoCmd.TransferTextを使わなくてもよいです。
schema.iniを使った登録方法がよくわからないです。
サンプルコードとかあっったら、教えてください。
358名無しさん@そうだ選挙にいこう:2009/06/08(月) 22:45:48
>>354
1行目にヘッダがあれば その名前使って create tabel した後
取り込めばいいかと思うけど access で create tabe やったことねーな
でも各項目の型はどう判断するの?

ヘッダーのMAX&Typeが定義できるなら(できないと無理だと思うよ)
それでテーブル作って、
ヘッダーの項目名みながらsql文を作って食わせればいいと思うけど
359354:2009/06/08(月) 22:54:35
>>358
型は全てテキストで統一です。(CSVデータは全てテキストだから。日付・数値は存在しません。)
CSVデータの項目数と同じフィールドのテーブル付くって、(CREATE TABLE)やるしか、方法はないのかなぁ。orz
360名無しさん@そうだ選挙にいこう:2009/06/08(月) 22:54:43
>>354
逆に聞きたいのだが、項目数が可変でどうやって定型処理をしているの?
あと、csvはフィールド名つき?(F1がどうたら言っているから、ないとは思うが)
361354:2009/06/08(月) 22:59:59
>>360
VBAで、フィールド分ループして処理を実行します。
CSVはフィールド付きです。(取り込む際は、フィールド名として使います。)
362名無しさん@そうだ選挙にいこう:2009/06/08(月) 23:32:05
フィールド名もデータとして取り込んでしまえば?
項目数が可変とはいえ、Accessの制限からは逃れられないのだから
254フィールド(最後列はオートナンバー)のテーブル作ればメチャ簡単。
363名無しさん@そうだ選挙にいこう:2009/06/09(火) 00:02:20
>>354
select intoでfromにCSV指定すればいいんじゃね。
select直後の列リストの部分を動的に生成すればいけそうだけど。
場合によってはsceme.iniとの合わせ技で。
よく分からなかったら「select into csv」でググれ。
ただし試してないので結果的にダメだったらスマソ。
364354:2009/06/09(火) 00:35:27
ADOでなんとかやってみます。
365名無しさん@そうだ選挙にいこう:2009/06/09(火) 01:02:57
ドリフだとここで全員倒れる感じ。
366名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:08:00
ダメだこりゃ!
367名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:08:42
歯磨きしろよー
368名無しさん@そうだ選挙にいこう:2009/06/10(水) 00:23:26
オナニーしろよ!
369名無しさん@そうだ選挙にいこう:2009/06/10(水) 21:01:56
話がそれてきましたが、このへんでおしまいにしましょう
370名無しさん@そうだ選挙にいこう:2009/06/10(水) 21:41:06
次行ってみよう!
371名無しさん@そうだ選挙にいこう:2009/06/10(水) 23:41:42
ババンバ、バンバンバン♪
372名無しさん@そうだ選挙にいこう:2009/06/15(月) 21:48:47
Accessのレポートがバカだから我が社で桐を20個買いますた
373名無しさん@そうだ選挙にいこう:2009/06/15(月) 22:35:46
自社製品は何割引?
374名無しさん@そうだ選挙にいこう:2009/06/16(火) 18:43:03
Access2003(WindowsXP)で作成してます。
グラフウィザードで作ったのレーダーチャートで、
すべての項目が10以下の時も最大値を10固定にしたいのですが、
これは実現可能でしょうか?
可能でしたらその方法をご教授お願いします
375名無しさん@そうだ選挙にいこう:2009/06/16(火) 20:31:31
桐20個はちょっと買いすぎ
そんなに大きな会社なのか?
376名無しさん@そうだ選挙にいこう:2009/06/17(水) 00:28:14
アクセス2000です。Noテーブルの1から1000迄の連番主キー[No]
と商品テーブルの[商品名] を商品の[枚数]でユニオンクエリー
を商品フォームの 印刷コマンドボタンのクリックイベントに書
くだけで新しいテーブルを結合してレポートに印刷したいので
すが、[No]を[枚数]の変数「mai」での絞り込みと商品テーブル
の商品コード Me![商品コード]で求めた変数値で1件にする
書き方が解りません。

開いているフォームは商品だけです。

レポートを開くだけで印刷できますか。
「??枚印刷しますか」とメッセージを簡単に表示できますか
377名無しさん@そうだ選挙にいこう:2009/06/17(水) 00:39:48
けっこう勉強してるみたいだけど
ムリせず母国語で書いたほうが伝わるかもしれないよ
378名無しさん@そうだ選挙にいこう:2009/06/17(水) 01:00:54
>>376
少し落ち着きましょう。
まず関連する全てのテーブルの構成を1つずつ明確にしてもらって、
次にレポートの元になっている(?)ユニオンクエリーがどんなものか、
それをどんな風に印刷したいのかを分かるように書いて欲しいかな・・・と。
379376:2009/06/17(水) 01:15:39
テーブル名 構成主キー      その他
No     [No]数値
商品    [商品コード]数値 [商品名]文字列[枚数]数値
イベントでユニオンクエリーを作って例えば枚数が235
だったら
[No][商品名]
1  これ
2  これ
235  これ
タイルレポート
[商品名]   [商品名]
[商品名]   [商品名]
[商品名]   [商品名]
[商品名]   [商品名]
380376:2009/06/17(水) 08:27:27
桐だと
所属対象表項目データ型抽出更新禁止絞り込み条件
No.tbl  [No]カウンタ レ  レ ["No.tbl".No]=<&秒
商品.tbl[商品名]文字列 レ  レ ["商品.tbl".商品コード]=&分
アクセスだと
フィールド[No] [商品名]
テーブル No  商品名
並べ替え
表示   レ   レ
抽出条件
または

フィールドからまたはの部分をイベントで作りたい
381名無しさん@そうだ選挙にいこう:2009/06/17(水) 08:55:15
頼むから日本語で書いてくれ
382名無しさん@そうだ選挙にいこう:2009/06/17(水) 11:10:21
>>376
イマイチ把握できんのだが、枚数が235だったら
商品No1〜235までを抽出して印刷したいってことか。
383名無しさん@そうだ選挙にいこう:2009/06/17(水) 13:12:32
簡単なことを簡単にやるには桐が丁度良いって見本だろ
384名無しさん@そうだ選挙にいこう:2009/06/17(水) 14:36:02
>>379-380
いまいち理解できんのだが、レポートのRecordSourceにやりたい内容の
385名無しさん@そうだ選挙にいこう:2009/06/17(水) 14:36:43
クエリを放り込めば一撃なのは確か
386名無しさん@そうだ選挙にいこう:2009/06/17(水) 19:37:58
クエリで、以下のExcelシート範囲を読む際、
空白セル($C$1)が存在する場合、該当項目(C列)が取得できません。
SELECT * FROM [Excel 8.0;HDR=NO;Database=C:\Book1.xls].[Sheet1$A1:C1];

へっだ--->A,B,C
$A1:$C1--->あああ,いいい,
387名無しさん@そうだ選挙にいこう:2009/06/17(水) 19:38:48
クエリで、以下のExcelシート範囲を読む際、
空白セル($C$1)が存在する場合、該当項目(C列)が取得できません。
SELECT * FROM [Excel 8.0;HDR=NO;Database=C:\Book1.xls].[Sheet1$A1:C1];

へっだ--->A,B,C
$A1:$C1--->あああ,いいい,
388名無しさん@そうだ選挙にいこう:2009/06/19(金) 15:59:09
Access2007です。
外部DBにADOで接続して作ったレコードセットを
レポートのレコードソースにしたいんだけど無理?

レコードソースにIN句を使ったSQLを指定すればできるんだけど
デメリットとか気をつけなければいけないことはある?
389名無しさん@そうだ選挙にいこう:2009/06/19(金) 16:43:15
強いて言うならお前の存在がこのスレのデメリット
390名無しさん@そうだ選挙にいこう:2009/06/19(金) 22:48:43
>>388
気にするなよ。俺も同じことを知りたいよ。
391名無しさん@そうだ選挙にいこう:2009/06/20(土) 07:38:09
>>388
非連結レポート?
帳票ならレポート用のテンポラリテーブルに流したほうが
工数少なくなるのでは?単票1レコードならありかも。

レポートのRecordSetプロパティには制限あるってことだろ?

Report_Open時
 recordset取得
詳細_Print時
 コントロールに値挿入
 rs.MoveNext
こんな流れになるんじゃねぇの
392名無しさん@そうだ選挙にいこう:2009/06/20(土) 08:03:13
IN演算子の有無が質問の主旨とどう関係してくるのか
まったく分からない
393388:2009/06/20(土) 08:46:16
>>390
ありがとう
オレ打たれ弱いんで嬉しかったよ

>>391
連結で帳票レポート。
フォームで試してみたんだが
直接レコードセットを指定するのとローカルに読み込んでからでは
結構時間の差が出たんでできれば直接レコードセットを指定したいと思って

単票のときはひとつひとつ値を代入していけばいいんだ!
こりゃいいこと聞いた
ありがとう

読み込んだデータの再利用も含めて
テンポラリテーブルの検討もしてみます。

>>392
外部テーブルが A.accdb の tbl_B だとして
レポートを開くときに
me.RecordSource = "select * from tbl_B in 'A.accdb'"
とやればできるってこと
394名無しさん@そうだ選挙にいこう:2009/06/20(土) 16:05:50
395391:2009/06/20(土) 17:28:25
>>388 単票でも表形式でも同じなんだが、
Form1でフィルターとソートしてあるRecordSetを印刷する
として、Cloneをレポートで使用。詳細セクションに配置した
コントロール名とRecordSet.Field名は同一とする。

Dim rs As New ADODB.Recordset
Private Sub Report_Open(Cancel As Integer)
 Set rs = Forms("Form1").RecordsetClone
 rs.Filter = Forms("Form1").Recordset.Filter
 rs.Sort = Forms("Form1").Recordset.Sort
End Sub
Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
 rs.MoveFirst ’印刷プレビューするなら先頭移動が必要
End Sub
Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
 Dim Ctr As Control
 For Each Ctr In Me.詳細.Controls
    Ctr = rs(Ctr.Name)
 Next
 rs.MoveNext
 If Not rs.EOF Then Me.NextRecord = False
End Sub
Private Sub Report_Unload(Cancel As Integer)
 rs.Close: Set rs = Nothing
End Sub
パフォーマンスは知らん。
My備忘録に加えたのでついでに投稿
396388:2009/06/20(土) 20:41:55
>>395
すごい!
まずフィルタとソートを引き継げるっていうのがいかしてるよな。
コントロールに代入するところも
me.textbox名=rs.fld名
って感じで一件一件書き起こすことを考えてた。
NextRecordプロパティ?
そういやそんなのあったなって感じ。
(だから「単票のときは…」ってなった)

>>391 はこのくらい当たり前って思うかもしれないけどホントにすごいよ。
オレのレベルじゃ全く思いもよらなかった。
やっぱここで聞いてよかった。

今Accessが手元にないんで週明けに試してみます。
大感謝です。
397名無しさん@そうだ選挙にいこう:2009/06/20(土) 22:32:57
>>396
>>391じゃないけど捕捉。
詳細セクションにTextBox以外のコントロールが配置されてる場合は注意が必要。
同じく、配置されているコントロールの名前は必ずフィールド名に対応している事。
398391:2009/06/21(日) 01:02:07
me.ControlName=rs(FieldName)でコツコツもお好み次第っしょ。
FieldNameとControlNameを揃えるのは一つの方法ということで。
RecordSetのフィールドすべてをForm/Reportに流すんだったら、
Dim Fld As ADODB.Field
For Each Fld In rs.Fields
    Me.Controls(Fld.Name) = rs(Fld.Name)
Next
Tagプロパティ使って分岐させてもいいかも
399名無しさん@そうだ選挙にいこう:2009/06/21(日) 12:19:46
チェックボックスが大きさも変わらないし色も変わらないし、どうやって使うの?
何これ
俺、何か根本的に勘違いしてる?
400名無しさん@そうだ選挙にいこう:2009/06/21(日) 12:56:32
おまえは他のWindowsアプリで長巨大チェックボックスとか見たことあるの?
401名無しさん@そうだ選挙にいこう:2009/06/21(日) 13:17:31
桐ならONのときの色を設定できるけどな。
402名無しさん@そうだ選挙にいこう:2009/06/21(日) 14:44:20
>>401
さすが、Windows対応のソフトですね。
あ、64bit版Windowsには非対応でしたか。失礼しました。
403名無しさん@そうだ選挙にいこう:2009/06/21(日) 16:56:07
>>399
チェックボックスに連動するコマンドボタンで代用しとけば?
Private Sub btn1_Click()
Me.chk0 = Not Me.chk0
Me.btn1.Caption = Me.chk0
End Sub
404399:2009/06/21(日) 17:10:32
>>403
ありがとん
でも、表形式フォームで試してみたら何か変、オンオフで全部変わっちゃう
405403:2009/06/21(日) 17:57:46
>>404
トグルボタンだな。少し見難いから工夫してさ。
406名無しさん@そうだ選挙にいこう:2009/06/21(日) 18:07:57
実際作成する前の、テーブルやなんかの作り方の話で相談させて下さい!
分割支払いを管理するDBを考えてます。

今、下の(1)のようなテーブルがあって、これをサブフォームやら使って、
(2)のように表示したいのですが、どういう処理をしたら良いもんですか?


(1)テーブル1
No 案件名 支払開始日  支払終了日 総回数 総金額 単月金額 端数 ・・・・
1  案件A  2009/01/01 2009/12/31  12   \35,000  \2,916   \8 ・・・・
2  案件B  2009/01/12 2010/01/11  12   \59,248  \4,937   \4 ・・・・
3  案件C  2010/03/15 2010/07/14   4    \30,012  \7,503   \0 ・・・・

(2)月別支払予定
No 案件名  09/01 09/02  09/03 ・・・  09/11 09/12 翌年以降
1  案件A  \2,924 \2,916 \2,916 ・・・ \2,916 \2,916     \0
2  案件B  \4,941 \4,937 \4,937 ・・・ \4,937 \4,937     \0
3  案件C     \0    \0    \0 ・・・    \0    \0  \30,012



※端数は初月に含む。   ←この処理が全然思いつかず、最も困ってます。

何か良い方法があれば、よろしくお願いします。
407399:2009/06/21(日) 18:13:23
たびたびドウモです
トグルボタンの見栄えの工夫って、お勧めありますか?
条件付き書式も背景色も使えないんですけど
408名無しさん@そうだ選挙にいこう:2009/06/21(日) 19:07:58
表形式の使い勝手をもとめるならば桐にしてください。
409388:2009/06/21(日) 22:15:10
>>397
ありがとう。
レポートはこれから作るんで気をつけるよ。
後で見たときもわかるようにコードにコメントとして書いておいた方がいいな。

>>398
なるほど。
逆にフィールドの方を回せばコントロールに気を遣わなくていいということか。
必要なフィールドだけ集めたクエリを作っておけば楽ちんそう。

Tagプロパティなんて初めて知ったよ。
OpenArgsみたいに使えるんだね。


いやぁ明日が楽しみです。
410名無しさん@そうだ選挙にいこう:2009/06/21(日) 23:28:02
>>406
支払日は毎月決まった日じゃないの?
特に案件Bは支払終了日が2010年なのに最終が09/12で翌年以降\0になってるし
単純な間違いっぽいけどキチンと整理してから作り始めた方がいいよ。

「※端数は初月に含む。」の処理は単に初回に端数を足せばいいと思うんだが
411名無しさん@そうだ選挙にいこう:2009/06/21(日) 23:32:20
開始月、終了月、総額、対象月を渡せば対象月の金額を返す関数作るのが
結果的には一番シンプルになりそうな気がするな
412名無しさん@そうだ選挙にいこう:2009/06/22(月) 00:21:42
>>399
access チェックボックスのサイズを大きくする
でぐぐってみれ。答えがある。
透明ボタンを配置するっておもすれー
413399:2009/06/22(月) 08:50:26
>>412
アリガト、試してみる
414388:2009/06/22(月) 20:39:14
時間があまりとれず>>395のやり方だけ試してみました。
比較のため一度ローカルのテーブルに読み込む方法もやってみました。

条件:3万レコードで1レコードにつき12フィールド表示
>>395の方法はフォームに一覧が表示されている状態から。
テンポラリテーブルはADOで接続してローカルに読み込むところから。
両方ともプレビュー画面が表示されるところまでで、2回目を測定しています。

結果は>>395が約3秒弱、テンポラリテーブル使用が約12秒。
圧倒的に>>395の方がパフォーマンスがよかったです。

みなさん、ありがとうございました。
415名無しさん@そうだ選挙にいこう:2009/06/23(火) 07:19:33
>>406
・支払は月一回
・端数加算は初回 or 最終回
だったら、IIF関数を4段ネストでいける
416名無しさん@そうだ選挙にいこう:2009/06/23(火) 08:59:17
透明ボタンを試してみたけど、透明ボタンに何の意味があるか解らない
テキストボックスをクリックイベントすれば同じじゃないんの?
417名無しさん@そうだ選挙にいこう:2009/06/24(水) 00:44:29
テキストボックス単体で使った場合、クリックした後にフォーカスが
移ってキャレットが点滅するのを避けたかったんんじゃね?
漏れが書いたわけじゃないから真意は知らんけど。
418名無しさん@そうだ選挙にいこう:2009/06/24(水) 09:10:00
キャレット表示がウザいからってEnabled=Falseにするとクリック時イベントが発生しなくなるから
ラベルのほうがいいかもしれんね
419名無しさん@そうだ選挙にいこう:2009/06/24(水) 09:13:53
キャレットが点滅は、更新後処理:レコード保存 で対応した
元々チェックボックスは更新中になってウザイから、そうしてた
420名無しさん@そうだ選挙にいこう:2009/06/24(水) 14:06:36
透明ボタンによるチェックボックス代替は、チェックボックスと
同様なキーボード入力も考慮してあるってことだべ

チェックボックスにフォーカスがあることがわかりにくいという
ことが感じられるから、Enter&Exitイベントでラベルを強調する
ようにしてるかな。私の場合
421名無しさん@そうだ選挙にいこう:2009/06/24(水) 19:06:31
努力は理解されてる?それとも自己満足?
422名無しさん@そうだ選挙にいこう:2009/06/24(水) 19:08:03
Access2000 SP3 使ってます。

[生年月日] から 年齢を求める関数を VBA にて作成し、

年齢: GetAge([生年月日])

といった感じでクエリから呼び出しています。

しかし [生年月日] というフィールドが Null の時には VBA の関数が呼ばれません。

年齢: Switch([生年月日] In Null, -1, [生年月日] Is Not Null, GetAge([生年月日]))

とした場合でも、[生年月日] が Null のときでも -1 が入りません。
しかし、

年齢: Switch([生年月日] In Null, -1)

とした場合、[生年月日] が Null だったとき [年齢] にちゃんと -1 が入ります。

生年月日 が入力されていれば年齢が、入力されてなければ -1 を [年齢] フィールドに入力されるにはどうしたらいいのでしょう?
423名無しさん@そうだ選挙にいこう:2009/06/24(水) 19:56:55
IsNull([生年月日])で条件判断するか、あるいはNz関数を使う
424名無しさん@そうだ選挙にいこう:2009/06/24(水) 20:20:00
関数みなおしてみれば?
Public Function GetAge(BirthDay As Variant) As Integer
GetAge = -1
If IsDate(BirthDay) Then
  GetAge=**BirthDay使った年齢ロジック**
End If
End Function
425名無しさん@そうだ選挙にいこう:2009/06/24(水) 23:16:11
>>423
ありがとうございます。
今、地方に飛ばされたので、週明けに家でやってみます m(_ _)m

>>424
VBA 側で確かめようにも、引数として渡してるフィールドが Null だと、
関数そのものが呼ばれないんです。
これはデバッグプリントや一時停止などで確認した結果、関数が呼ばれてない事に気がつきました。
426名無しさん@そうだ選挙にいこう:2009/06/24(水) 23:30:22
DATE型の引数にNULLを渡して落ちるからよくわかんないけど
ON ERROR RESUME NEXT よしこれで落ちないとか
うんこなコードになってるに一票
427名無しさん@そうだ選挙にいこう:2009/06/24(水) 23:50:43
ON ERROR RESUME NEXT は自前でエラートラップしたいときにしか使わないですし、
今回は ON ERROR RESUME NEXT 自体使ってないです。

しかも、エラーになるとか、不正で落ちるとか以前に [生年月日] が Null の行は
関数が呼ばれていません。
428名無しさん@そうだ選挙にいこう:2009/06/25(木) 00:04:42
まあ、おまえがそう言うんなら呼ばれてないんだろう・・・・

おまえの中ではな
429名無しさん@そうだ選挙にいこう:2009/06/25(木) 00:21:23
コードの中で、変数の宣言が行われたあとの最初の構文にブレイクポイントを設定して、
一時停止した際の引数の中身を見ると毎回値が入っていました。

表として表示してるクエリの実行結果を見ながら変数の中身を確認してると、
上から順番にちゃんと関数 GetAge が呼ばれて、引数に値が入っているのは確認出来ています。

そして、[生年月日] が Null の時は VBA は一時停止されず、次の [生年月日] フィールドが Null でない行へ進んでいます。

この挙動から 「これは関数が呼ばれてないんだな」 と考えましたが、ほかにも考えられる事項があるのでしょうか?
430名無しさん@そうだ選挙にいこう:2009/06/25(木) 00:31:10
GetAgeの仮引数をVariant型以外で宣言しているので、
Nullを渡そうとして型不一致エラーで落ちているだけ、
というのが生前の親父の口癖だった。。。

それ以前に「[生年月日] In Null」でエラーにならないのが
アヤシすぎるが。
431名無しさん@そうだ選挙にいこう:2009/06/25(木) 00:31:23
年齢: Nz(GetAge([生年月日]),-1) でダメなのか?
もし、呼ばれないんならダメなんだよな
432名無しさん@そうだ選挙にいこう:2009/06/25(木) 00:37:56
要は、GetAge() は呼び出されているんだけど、パラメータを渡す段階で型不一致エラーが
発生してAccess側で勝手にエラー処理されているってことです。
で、>>431の方法が一番簡単ですね。
433名無しさん@そうだ選挙にいこう:2009/06/25(木) 00:44:43
あれこれ試してます的な意気込みのあるところはいいんだけど
なんでデバッグウィンドウで直接?GetAge(Null)を試さないんだよw
434424:2009/06/25(木) 01:29:59
おれも>>426に0.5票
ユーザ定義関数使ってんだから-1出力も関数に組めばいいじゃん
と思って引数のデータ型はValiantにした。試すと>>422が期待す
る結果は得られた。
もしくは、
IIF(isDate([生年月日]),GetAge([生年月日],-1)
でいいと思う。2007だとInにはカッコが必要と怒られる。
435424:2009/06/25(木) 01:40:06
どわぁ、実証と風呂してたら進行してるし...
>>431がいいね
Nzの引数、きちんと使えてなかった俺です。
436名無しさん@そうだ選挙にいこう:2009/06/26(金) 06:06:24
ごめん、非常にどうしようもない質問で申し訳ないんだけど…
Access2000のDAOのレコードセットで
直前に開いたテーブルをクローズせずに
またOpenRecordSetしてしまうと、
なにか問題あるのかな…
ループで回している中で
スナップとダイナでオープンされた
レコードセットが一つずつ、
それがクローズされないまま、
次のループで使用されてます

以前のmdb見てて、そんな場所があったもので
気になってしまって…
デバッグプリントして内容見ても
問題なさそうで…
念のため、ヘルプでOpenRecordSetを見たんだけど
使用例でもクローズしないで、連続使用してる…

もしかして、AccessのDAOだと
連続使用する場合、クローズしないものなのかな…?
437名無しさん@そうだ選挙にいこう:2009/06/26(金) 08:58:39
プロシージャの中で宣言された変数は、そのプロシージャの実行中だけ有効で、キーワード Static により静的変数として宣言されていない限り、
プロシージャの実行が、終了すると値は破棄されます。
438名無しさん@そうだ選挙にいこう:2009/06/26(金) 09:41:29
>>436です
>>437
ひとつのプロシージャの中の事なんです
具体的には
For intCnt = 1 To 5
 WKCODE = 0
 strSQL="SELECT * FROM 商品マスタ WHERE コード = " & intCnt
 Set rsTemp=Currentdb().OpenRecordSet(strSQL,dbOpenSnapShot)

 If Not rsTemp.EOF then
  WKCODE=rsTemp!コード
 End If
  
 IF WKCODE<>0 Then
  strSQL="SELECT * FROM 単価マスタ WHERE コード = " & WKCODE
  Set rsTemp=Currentdb().OpenRecordSet(strSQL,dbOpenDya\naSet)

  If Not rsTemp.EOF then
   rsTemp.Edit
   rsTemp!単価 = 0
   rsTemp.Update
  End If
 End If
Next

本来のコードではないのですが
こんな感じで連続使用してしまっています
デバッグで見てみると、とりあえずオープン時に該当テーブルを問題なく開いているようなのですが・・・
439名無しさん@そうだ選挙にいこう:2009/06/26(金) 11:45:40
>>436です
自己解決しました、お騒がせしました

とりあえず、全データをデバッグで表示しつつ
確認したところ、問題がなさそうだったので
このままにしておく事にしました。

DAOだと二重展開の時はエラーにならずに
また開けるんですね・・・

逆に分かりにくいような(--;
440名無しさん@そうだ選挙にいこう:2009/06/26(金) 13:11:48
>>438
Set rsTemp=Currentdb().OpenRecordSet(strSQL,dbOpenSnapShot)
Set rsTemp=Currentdb().OpenRecordSet(strSQL,dbOpenDya\naSet)

同じ変数だから同時には存在しないんじゃね?
441名無しさん@そうだ選挙にいこう:2009/06/26(金) 13:59:13
>>440
前のテーブルをクローズしないまま、またテーブルを開いていたのが気になって・・・

2回目に宣言した際に前のレコードセットは勝手に開放されて
次のテーブルをオープンするみたいです
442名無しさん@そうだ選挙にいこう:2009/06/26(金) 15:53:33
勝手に開放もなにも、前のオブジェクトは存在しないから
暗黙的に set nothing されてる
443名無しさん@そうだ選挙にいこう:2009/06/26(金) 16:32:55
なるほど、そうだったんですね
ありがとうございます
モヤモヤが晴れました(^^)

それともう一つだけ気になる事が

Varient型にRecordsetやQuerydefなどを
設定できるのでしょうか
444名無しさん@そうだ選挙にいこう:2009/06/26(金) 20:23:57
def_recordset as variant ってこと?
as Object じゃね?
じゃなかったら 意味ふっす
445名無しさん@そうだ選挙にいこう:2009/06/26(金) 20:38:21
俺なら暗黙の解放とか信用しないで試しに10万回とか100万回とかループさせて
リソースがどうなるか自分の目で確認してからじゃないと
とてもモヤモヤは晴れないが・・・
446名無しさん@そうだ選挙にいこう:2009/06/26(金) 20:48:45
>>444
すいません、言葉足らずでした

Dim wks As Variant

Set wks = Currentdb().CreateQueryDef(””)

こういう使い方はできるのでしょうか
447名無しさん@そうだ選挙にいこう:2009/06/26(金) 22:19:56
A)
Set rsTemp=Currentdb().OpenRecordSet(strSQL,dbOpenSnapShot)
Set rsTemp=Currentdb().OpenRecordSet(strSQL,dbOpenDya\naSet)

B)
Set rsTemp=Currentdb().OpenRecordSet(strSQL,dbOpenSnapShot)
Set rsTemp=Nothing
Set rsTemp=Currentdb().OpenRecordSet(strSQL,dbOpenDya\naSet)

A)とB)は全く同じだと思う
448名無しさん@そうだ選挙にいこう:2009/06/27(土) 00:14:11
>>447
ありがとうございます

データ自体は何度も確認し
おそらく問題はないとは思っていたのですが
正直、CloseなりNothingなりをしないで
再利用した事がなかったもので
見てて、かなり不安でした
449名無しさん@そうだ選挙にいこう:2009/06/27(土) 00:42:21
>>446
ヘルプを読んだほうがいいのでは?
450名無しさん@そうだ選挙にいこう:2009/06/27(土) 01:20:24
>>448
例えばプログラムをDB1.mdbに書いて DB2.mdbにあるデータを操作する場合、
Openした時にDB2.ldbが作られて、CloseするとDB2.ldbが削除されますよね?
何が言いたいかというと、都度Closeした方が処理速度は遅くDB破損のリスクは
低くなるだろうって事です。(たぶん単一DBであっても)

でもって、暗黙的な解放については>>445に同意。
Acc2000環境下のADO.Connectionだったと思うけど、同一プロシージャを
繰り返し呼びまくっていたらPCの反応が鈍くなって、よくよく調べたら
リソースを食いつぶしていた事があった。(プロシージャ内で明示的に解放したら解決)
451名無しさん@そうだ選挙にいこう:2009/06/27(土) 03:44:59
>>449
ヘルプをみてみたのですが
固定長、ユーザー定義を除く全ての変数を
格納できる、とありました
変数、といわれるとRecordSetもQueryDefも
いまいちしっくりこなかったのですが…

いわれてから、もう一度よく読んだところ
格納後、VerType、TypeName関数を使えば
保存されている変数のタイプを知る事が出来ると
あったので、ためしにいくつか保存して
みました
結果、RecordSetはタイプ9RecordSet
QueryDefはタイプ9QueryDefと
まちがいなく指定した内容を認識できてました

申し訳ありません
お騒がせいたしました
数値や文字列を受けとる時しか使っていなかったのですが
いろいろと保存できたのですね…

>>450
やっぱり破損やリソースなどの面で見ると
あまり芳しくないみたいなんですね

やっぱり、正規の手順でしっかりクローズして
解放するのが確かなんですね…
いろいろと見ていただき、ありがとうございます
452名無しさん@そうだ選挙にいこう:2009/06/28(日) 13:57:07
DatabaseやRecordsetオブジェクトでは "Nothing"キーワード の使用はメモリ消費の観点からは無意味。
同じデータベースに対して繰り返しアクセスする場合には "dbs.Close" さえも省略してもメモリには影響しない。
また、Setステートメントで宣言されたオブジェクトは適用範囲外になると自動的に解放され、特にRecordSetオブジェクトではCloseメソッドを省略してもそのメモリ領域は解放される。

http://www.tsware.jp/labo/labo_19.htm
453名無しさん@そうだ選挙にいこう:2009/06/28(日) 16:40:50
>>452
おっしゃる通りなんですけどね。
そこはMS製品と付き合うコツと言いましょうか・・・
仕様と使用の違いみたいなものが時々あるから困るわけですw
454名無しさん@そうだ選挙にいこう:2009/06/28(日) 19:44:42
>>450>>453
それ、ADOの場合でしょ
つーか、ADOだとCloseしてもメモリ解放されないよ、さらに set Nothing しないと

DAOだと、Close と set Nothing は同義だし、変数が値を失ったら暗黙的にメモリ解放される

以上が仕様で、もちろん仕様通りに動作してる
455名無しさん@そうだ選挙にいこう:2009/06/28(日) 22:12:38
ADOでSET Nothingしない男の人って。。。
456名無しさん@そうだ選挙にいこう:2009/06/29(月) 19:33:05
457名無しさん@そうだ選挙にいこう:2009/06/29(月) 20:04:04
officeのバージョンアップなんて必要に迫られないとしないな。
いまもAccess2002だけど。もちろん全シリーズを持っているけどね。
458名無しさん@そうだ選挙にいこう:2009/06/29(月) 20:27:55
Office Updateがもうそろそろ終了ですよ
初めてのaccessは2000だったなぁ
459名無しさん@そうだ選挙にいこう:2009/06/29(月) 22:56:25
>>458
え、そうなの。いや知らなかったよ。
ググって状況のみこめた。

2000はもうほとんど使ってなかったけど、過不足ないという点でベストだった気がする。
サポートさえちゃんとしてくれていれば、2000でいいと今でも思うし。

とりあえずRIP
460名無しさん@そうだ選挙にいこう:2009/07/01(水) 08:45:26
● 招待制テクニカルプレビュー版の登録サイト
 Home - Microsoft Office 2010 Technical Preview
  https://microsoft.crgevents.com/Office2010TheMovie/Content/Home.aspx
● Office 2010 のプロモーションサイト
 Office 2010
  http://www.office2010themovie.com/

● ソース
 The Microsoft Office 2010 IT Blog : Office 2010, Hello World
  http://blogs.technet.com/office2010/archive/2009/05/11/office-2010-hello-world.aspx

  

 
*Which language would you prefer for the Technical Preview?
(あなたはどの言語でテクニカルプレビューしたいですか?)

○ English(英語)
○ Japanese(日本語)
 
とあったので、もしかすると日本語のテクニカルプレビュー版も出るかもしれません。
461名無しさん@そうだ選挙にいこう:2009/07/01(水) 12:47:07
VBAは消滅に向かってるね
462名無しさん@そうだ選挙にいこう:2009/07/01(水) 13:01:44
IMmediaはファイルメーカーがスポンサー?

「現場の改善と同時にシステムを育てる」――FileMakerを選んだ日本原燃 www
http://www.itmedia.co.jp/enterprise/articles/0906/11/news001.html


阪大の産学連携プログラム、受講生管理はFileMakerで
http://www.itmedia.co.jp/enterprise/articles/0906/24/news004.html
463名無しさん@そうだ選挙にいこう:2009/07/02(木) 11:13:00
>>461
vb.netの構文にならねーかな
#移行が大変だけどね
464名無しさん@そうだ選挙にいこう:2009/07/02(木) 14:42:43
VBAとかやめて、C#で統一してくれ。
465名無しさん@そうだ選挙にいこう:2009/07/02(木) 15:10:23
君たち、何を言ってるのだ?
近々、開発言語のオマケは廃止
マクロのみで桐・ファイルメーカー並みに簡単に構築できるようになり、
アクセスで喰ってる人達は失業
466名無しさん@そうだ選挙にいこう:2009/07/02(木) 17:29:02
キミの文章には特徴があるね
467名無しさん@そうだ選挙にいこう:2009/07/02(木) 19:07:46
派遣村があるじゃないか
468名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:04:57
所属、名前、休み理由、のテーブルを各1個ずつ作りました
これをフォームで

社員番号を入力したら所属名前が決まり、休みの理由をリストボックスで
選ぶようにしたいのですが、テーブルに社員番号がないんで
社員番号から選ぶのは無理ですか?
469名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:15:08
>>468
普通に考えて無理だろ。
468だってなにかしらの資料を参照しなければ(暗記しているものも含めて)、
誰がどの社員番号なのかわかるはずもない。
470名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:17:26
社員番号から所属名前が決まるテーブルをなんでつくらないの?
471名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:22:18
>>469-470
まったくの初心者で大変申し訳ない

468に社員番号テーブルを加えて、その後にリレーションで繋げて
フォーム作成すればよいのでしょうか?
いまいちテーブルの使い方がわかってなくてごめんなさい
472名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:27:16
名前が登録されているテーブルに社員番号と所属(のインデックス)も入れないか?
473名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:32:26
テーブル1に社員番号、名前、所属が入ってるのを作り
理由テーブルを作り、フォーム作成に取り掛かればよいのかな。

474名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:38:48
>>473
こうじゃないか?

所属テーブル(部署ID、部署名)
社員テーブル(社員ID、氏名、部署ID)
欠勤理由テーブル(理由ID、理由)
欠勤テーブル(社員ID、理由ID、日付)

あとはIDがつくものでリレーション。

475名無しさん@そうだ選挙にいこう:2009/07/02(木) 22:54:39
>>474
なるほど。そんな感じになるのですね。
明日ちょっとがんばってみようと思います

ありがとうございました。
476名無しさん@そうだ選挙にいこう:2009/07/02(木) 23:26:41
欠勤の主キーは社員+理由じゃなくて社員+日付では
477名無しさん@そうだ選挙にいこう:2009/07/03(金) 00:02:00
>>456
2010ではテーブルイベントや計算項目が装備されるみたいだね
478名無しさん@そうだ選挙にいこう:2009/07/03(金) 00:15:05
計算項目ってあれか、数量*単価で金額とかやっちゃうやつか
これもしかして何でもかんでもAccessにしとけな時代きちゃうの?
479名無しさん@そうだ選挙にいこう:2009/07/03(金) 00:47:06
>>477
テーブルイベント? 何それ


と思ったけど、TechnicalPreviewの画面見て意味わかった。
ついにAccessにトリガキタ━━━━(゜∀゜)━━━━ッ!!
480名無しさん@そうだ選挙にいこう:2009/07/03(金) 06:29:05
桐のパクリて言われてまっせ
481名無しさん@そうだ選挙にいこう:2009/07/03(金) 08:20:45
Accessにしとけ
482名無しさん@そうだ選挙にいこう:2009/07/03(金) 09:07:50
更新日時の記録はテーブルイベントに変更っと
483名無しさん@そうだ選挙にいこう:2009/07/03(金) 15:46:58
2010で貧粗なレポート・デザインはそのまま?
484名無しさん@そうだ選挙にいこう:2009/07/03(金) 17:26:11
レポートは廃止になります<m(__)m>
別途、クリスタルレポートを購入してくださいませ
485名無しさん@そうだ選挙にいこう:2009/07/03(金) 17:33:18
たけー _| ̄|○
486名無しさん@そうだ選挙にいこう:2009/07/03(金) 18:11:57
むしろ、クリスタルレポートをOfiice Proにはバンドルさせるってのは?
487名無しさん@そうだ選挙にいこう:2009/07/03(金) 18:21:44
桐をバンドルした方が安いな。
488名無しさん@そうだ選挙にいこう:2009/07/03(金) 23:24:46
>>479
トリガーとUPDATEってなにが違うの?
SQL Server2000がおまけでついていたからちょっと触ってみたけど、
理解ができなかった。
489名無しさん@そうだ選挙にいこう:2009/07/03(金) 23:26:50
どうもこんばんわ。

先日質問したものです。
なんとかそれなりに出来たものの、社員番号を入力してコマンドボタンを
押すと所属と氏名が出るように作ったと思ったら・・・

コマンドボタン押したら社員マスタにある所属、名前が1番最初のものがでてきてしまいました。
社員マスタに所属、番号、氏名を入れてるのですが、社員番号だけを入れて残り二つを
表示するにはどういうコードを書けばよいのでしょうか・・・
490名無しさん@そうだ選挙にいこう:2009/07/03(金) 23:31:04
これは本格的に桐が必要なレベル
491名無しさん@そうだ選挙にいこう:2009/07/03(金) 23:38:56
>>489
非連結テキストボックスを配置。
更新後処理に

(社員番号が数値の場合) Me.Filter = "社員番号 = " & Me!テキストボックス名
(社員番号が文字列の場合)Me.Filter = "社員番号 = '" & Me!テキストボックス名 & "'"
Me.FilterOn = True

でいいだろう。あとは応用。

492489:2009/07/03(金) 23:41:23
あ、コマンドボタンか。
クリック時にだね。
493名無しさん@そうだ選挙にいこう:2009/07/03(金) 23:47:28
間違えた。492は491だorz
494名無しさん@そうだ選挙にいこう:2009/07/03(金) 23:58:52
>>491
このコードはコマンドボタンの中に埋め込めばいいのでしょうか。
今、モノがなくてちょっと試せないので申し訳ない。

やりたいのは社員番号のテキストボックスに社員番号を入れて、コマンドボタンを
押して、任意の場所に名前と所属をだしたいです。
物分りが悪くてごめん際ー
495名無しさん@そうだ選挙にいこう:2009/07/04(土) 00:13:55
>>494
プロパティーにイベントっていうタブがある。
で、コマンドボタンなら普通はクリック時の所を選ぶと、右端に▼と…が出てくるはず。
…を押すと「ビルダの選択」っつうのが出るから、そこから「コードビルダ」選ぶ。
すると
Private Sub コマンド名_Click()

End Sub

つうのが出るから、Private Sub コマンド名_Click()とEnd Subの間にコードを書き込む。
これがVBっていわれるやつ。
あとは自分で勉強。
496名無しさん@そうだ選挙にいこう:2009/07/04(土) 00:45:25
>>495
ありがとうございます
早速時間を取りやってみようと思います(勉強含め)
497名無しさん@そうだ選挙にいこう:2009/07/04(土) 02:23:56
クエリをExcelにエキスポートし、再度同じ名前でエキスポートすると、
「ワークシートのセルを削除できません。」
というエラーが出るのですが、これは何でしょう。
どなたかご存じのかたはいませんか?
498名無しさん@そうだ選挙にいこう:2009/07/04(土) 08:11:36
VISTAが勝手にデータ追加を行ってるとみた
一度削除してからエクスポート
499名無しさん@そうだ選挙にいこう:2009/07/05(日) 20:52:33
Accessでも、フォーム(レポート)の定義で、倍率指定できたりフォーム領域外に、
オブジェクトを配置できるようになってくれればコメントも残せたりで結構助かるんだが、
その辺のところは、早く桐を見習って欲しい
簡単だろ→マイ○ロソフトさん!それとリボンなんかやめてくれよ!
500名無しさん@そうだ選挙にいこう:2009/07/05(日) 21:11:17
>>499
そうそう
レポートも桐みたいに配置をプリンタ余白分を領域外にマイナス値で指定出来れば、官公庁の定型書式に対応可能なんだよね
501名無しさん@そうだ選挙にいこう:2009/07/05(日) 22:10:57
まったく何回ヴァージョンアップしてもかゆいところには手が届かないソフトだよなAccessって
フォーム・レポートがやたら壊れやすい点を除けば、良いソフトなだけに残念です
502名無しさん@そうだ選挙にいこう:2009/07/06(月) 21:04:33
超絶初心者の質問で申し訳ないのだが
Me.Filter = "あいうえお=" "& Me!テキストボックス1 &"
Me.FilterOn = True
の場合どれが検索後の表示ボックスに表示する部分はどこにあたるのですか?

あいうえおが検索する場所で、テキストボックス1は検索する数字なりを入れる場所って
ことでいいのですか?
503名無しさん@そうだ選挙にいこう:2009/07/06(月) 21:12:41
>>502
基本は連結フォームだから、条件がなければそれで話を進めるのが普通。
とくに初心者とあればなおのこと。
Filterはフォームの元となったデータソース(テーブルやクエリ)を指定した式で
抽出しているだけ。

初心者ならDlookupでも使えば?
504名無しさん@そうだ選挙にいこう:2009/07/06(月) 21:17:08
>>501
フォームの壊れっぷりは常軌を逸していると思う。
ボタンを配置するだけで、メモリーが足りないと言って永久に開けなくなるとか、ふざけているとしか思えない。
505名無しさん@そうだ選挙にいこう:2009/07/06(月) 21:20:18
>>502
>Me.Filter = "あいうえお=" "& Me!テキストボックス1 &"
まず検索後の横のダブルクォーテーションが余計

Me.Filter = "あいうえお=" & Me!テキストボックス1

でいい。

検索とは結構違って条件にあてはまるレコードは全て表示される。
506505:2009/07/06(月) 21:21:40
間違えた。検索「語」ね
507名無しさん@そうだ選挙にいこう:2009/07/06(月) 21:23:20
>>503
んー難しいですね。

文字入れて検索して、それを表示と言うのを作ってるのですが
非連結のテキストボックス3つ作って1つ検索用で二つ表示される用で
やる場合がさっぱりです・・・
508名無しさん@そうだ選挙にいこう:2009/07/06(月) 21:32:37
>>507
だからDlookupを使えっていうの。
非連結テキストのコントロールソースに

DLookup("表示したいフィールド名", "テーブル名", "あいうえお= " & Me!テキストボックス1)

としてやればいいだろ。
509名無しさん@そうだ選挙にいこう:2009/07/06(月) 21:50:36
>>508
おぉそうなるのか
Dlookup("所属(表示させるテキストボックス)","社員マスタ","社員番号="
     & Me!テキストボックス1(検索文字入れるところ))
とすれば10番の人が存在するなら所属のところに10番の所属が表示される
ということなのか!なるほど。
ほんとにありがとう
510名無しさん@そうだ選挙にいこう:2009/07/06(月) 22:23:35
>>504
ふざけてますが、何か?
511名無しさん@そうだ選挙にいこう:2009/07/06(月) 22:25:02
>>510
頼む。俺の仕事中だけはふざけないでくださいまし。宜しくお願いします。
512名無しさん@そうだ選挙にいこう:2009/07/06(月) 22:28:15
>>505
Me.Filter = "あいうえお=""" & Me!テキストボックス1 & """"
513名無しさん@そうだ選挙にいこう:2009/07/06(月) 23:35:43
MSDEのData更新に困っております
AccessプロジェクトよりCSVファイルをインポートして
DataBase作成しているのですが、インポート先のCSVファイルは
常に更新されています
AccessプロジェクトのData更新の為、インポートを行うと
重複したDataになります・・・・
重複しないSQLもしくはVBEはないでしょうか?
514名無しさん@そうだ選挙にいこう:2009/07/07(火) 06:57:41
>>513
インポートじゃなくて、リンクすればいいじゃないか
キーになるものがあれば更新できるんじゃね?
515514:2009/07/07(火) 08:01:36
>>513
**ADOでのアプローチ**
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strFolder As String, cnStr As String
Dim fileName As String, selectSQL As String

cnStr = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq="
strFolder = "C:\hogehoge"
fileName = "hogehoge.csv"
selectSQL = "select * from " & fileName

cn.Open cnStr & strFolder
rs.Open selectSQL, cn, adOpenKeyset, adLockReadOnly

Do Until rs.EOF
  **お好みのupdate処理**
rs.MoveNext
Loop

rs.Close: cn.Close
Set rs = Nothing: Set cn = Nothing
516名無しさん@そうだ選挙にいこう:2009/07/07(火) 08:55:46
517名無しさん@そうだ選挙にいこう:2009/07/07(火) 12:20:44
VBSでパスワード付きのアクセスファイルMDBは開けますか?
518名無しさん@そうだ選挙にいこう:2009/07/07(火) 12:41:33
CSVファイルをtmpに取り込んで、すでに取り込まれていないデータ
のみを追加すればいいんでね(not exists かな)
519517:2009/07/07(火) 13:24:38
開けました
520513:2009/07/07(火) 19:59:10
沢山のご教授ありがとう御座います
>>514さん AccessプロジェクトはMDBと違って
インポートしかありませんでした

>>514さん
凄いですね試してみます
ありがとう御座います
521名無しさん@そうだ選挙にいこう:2009/07/07(火) 20:49:02
すいません質問です。
ひとつのテキストボックスに「月日〜月日 日間」
これを固定文字にしてそこに自分で日付を入力して自動で日間を
計算させるものを作りたいのですがDateDiff関数を見てもいまいちわかりません
どんな感じにやればいいのでしょう・・・・・
522名無しさん@そうだ選挙にいこう:2009/07/07(火) 21:11:11
> ひとつのテキストボックスに「月日〜月日 日間」

3つはないと無理じゃないかコレ・・・
日数を求めるんだったら
DateDiff("d", 開始日, 終了日)で求まる。
523名無しさん@そうだ選挙にいこう:2009/07/07(火) 22:08:41
>>522
やはり3つじゃないと無理っぽいですかねぇ
一応今日3つ作ってやったものの、なんかしっくりとこないと
言われ検索してたところなんで・・・す
524名無しさん@そうだ選挙にいこう:2009/07/07(火) 22:10:48
txtbox01のInputMaskを
99\/99\/99\→99\/99\/99;0;_

Private Sub txtbox01_AfterUpdate()
fromdate = Left(Me.txtbox01, 8)
todate = Right(Me.txtbox01, 8)
Me.txtbox01 = Me.txtbox01 & " " & DateDiff("d", fromdate, todate) & "days"
End Sub

日付を切りだす文字列関数はもうちょっと工夫が必要。
そして日付正当性の確認も必要。
保存されるFieldかどうかということは考慮してない。
525名無しさん@そうだ選挙にいこう:2009/07/07(火) 22:13:56
>>523
文字列操作関数の組み合わせでできるだろうが、苦労に見合わないと思うよ。
526名無しさん@そうだ選挙にいこう:2009/07/07(火) 22:16:43
>>524
おぉ・・・みても全然わからないです・・・初心者なので。

>>523
上のを見るとなんか手に負えないレベルになっています・・・
工夫して見やすいようにしたほうが楽なのですかね。
527名無しさん@そうだ選挙にいこう:2009/07/07(火) 22:38:11
俺ならテキストボックス3つでしっくりこない人を2階から投げ捨てて解決する
528名無しさん@そうだ選挙にいこう:2009/07/07(火) 22:41:42
へたすりゃ月、日ごとにテキストボックス作るレベルだな。
529524:2009/07/07(火) 23:15:53
>>523
InputMask設定されているテキストボックスで更新後処理したら
どうなるんかなと思って書いてみたが、実際使えるようにするの
には手間と工夫が必要よね。エラー出して原因突きとめて学習す
ればいいと思うよ。
使いどころがわからないけど、おもしろい意見だと思った。
530名無しさん@そうだ選挙にいこう:2009/07/07(火) 23:44:34
むしろテキストボックスが3つ「しか」ないのでしっくりこない
といわれていることに気づけ。
アホなWebアプリに馴らされたサルには、年と月と日個別に
コンボボックスを置いてやらないとバナナ食えない。
531名無しさん@そうだ選挙にいこう:2009/07/08(水) 19:28:02
しつもーん
今オプションボタンを2個作ってその二つはどちらかひとつしか付けられない
ようになってるんですが、そこからテキストボックスを選んだボタンにより
使用不可にしたいのです。

ボタン1を選んだら、ボタン2対応のコンボボックスが使用不可に
そしてその逆も作るとしたらどういう手順になるのでしょうか。
今はボタン1にチェックを既定値にしています
532名無しさん@そうだ選挙にいこう:2009/07/08(水) 19:41:09
>>531
Private Sub フレーム名_AfterUpdate()
If Me!フレーム名 = 1 then
Me!コンボボックス.Enabled = True
Else
Me!コンボボックス.Enabled = False
End if
End Sub

こんな感じじゃないか? 直打ちだから、間違いがあるかもしれない。
533名無しさん@そうだ選挙にいこう:2009/07/08(水) 19:46:16
>>532
助かります。ありがとうございます

私は始めてまだ1ヶ月もたたない初心者なんですが
やってもやってもコードが頭に入らないし、どう処理したいのか
しか思い浮かびません。みなさんどういう勉強しているんですか?
1ヶ月やっててコードひとつ書けない自分が情けないです・・・
534名無しさん@そうだ選挙にいこう:2009/07/08(水) 19:51:21
Private Sub fraフレーム_AfterUpdate()
 txtコンボ1.Enabled = Choose(ActiveControl,True,False)
 txtコンボ2.Enabled = Choose(ActiveControl,False,True)
End Sub

あるいは
Private Sub fraフレーム_AfterUpdate()
 txtコンボ1.Enabled = Choose(ActiveControl,True,False)
 txtコンボ2.Enabled = Not txtコンボ1.Enabled
End Sub
ってな感じかな?
535名無しさん@そうだ選挙にいこう:2009/07/08(水) 19:54:57
本を買うんだよ。初心者用と中級者用の。
初心者用はまじめに読めば1週間もしないで使い物にならなくなる。
それほど内容がない。が、大方の使い方は解るので必要となる。
中級者用は応用が多くなるから、これさえ選び間違えなければ、
大抵のことはできる。
中級者用がある程度理解できるようになれば、用語もそれなりに身についているはずなので
あとはネットで検索すれば事足りる。
536名無しさん@そうだ選挙にいこう:2009/07/08(水) 20:03:18
読むだけでなく、コードを打ち込んであれこれ実験する。
これがプログラムの基本だと思う。
537名無しさん@そうだ選挙にいこう:2009/07/08(水) 20:13:05
>>536に加えて、フローチャートみたいな制御図が書けるようになれば
ほぼ一人前だと思う。
これはプログラムの概念図だから、言語が変わっても使えるからね。
難しく考えることはない。頭の中で「次はどうしようかな?」っていうのを
記号を用いて図解しているだけの話だから。
538名無しさん@そうだ選挙にいこう:2009/07/08(水) 21:35:42
みなさんありがとうございます。

一応初心者用の本は1週だけですがサンプルプログラム使いながら
終わってますが、あまり覚えてない兼ね合い何週か擦る必要ありそうですね。
539名無しさん@そうだ選挙にいこう:2009/07/08(水) 23:08:50
【コラム】あまりに便利すぎた・・・Excel VBAの「行き詰まり」問題〔07/02〕
http://pc11.2ch.net/test/read.cgi/pcnews/1246498806/
540名無しさん@そうだ選挙にいこう:2009/07/08(水) 23:35:39
【 システム環境  . 】 WindowsXP, Access2003
【 VBAが使えるか .】 いいえ
【 検索キーワード 】計算式 関数

すいません初めて質問させていただきますが助けてください。
会社で唯一アクセスを利用できる同僚が在庫状況管理用に
DBを作成中だったんですが入院してしまい未完成になったままなんですが
業務上の期限が来てて早く対応しないけないんです。
あとは計算式を入力するだけらしいんですが、PC得意な私でも
アクセスは触ったことないのでちんぷんかんぷんです(泣
ACCESS大辞典なるものも渡されましたが専門的過ぎてわかりません・・・

計算式は単純な四則計算だけです。
エクセルみたいにはいかないのでしょうか?

該当のマスとマスを足してこのマスに答えを表示させる。。。
それだけなんですが・・・

単純な質問ですいませんが、よろしくご教授ください!
541名無しさん@そうだ選挙にいこう:2009/07/08(水) 23:37:42
>>540
VBAの入門書を買えばすぐにできます。
542名無しさん@そうだ選挙にいこう:2009/07/08(水) 23:37:57
入院中の同僚に遣って貰ってください
543名無しさん@そうだ選挙にいこう:2009/07/09(木) 00:10:27
どこかにDBうpしてくれれば見てやれるんだが。
言葉じゃ説明しづらい。
まぁ、>>541氏の言う通りなのだが。
544540:2009/07/09(木) 00:51:08
みなさんホント初心者ですいません。。

>>543さん
ありがとうございます。
ためしにアップしてみましたので一度見ていただけますでしょうか?
http://a-draw.com/up2/download/1247067795.mdb

在庫管理ですのでやりたいことは単純に、
生産数+在庫数-出荷数=現在庫 とか、
現在庫*単価=在庫総額 でたな卸しとか
現在庫が一定数超えたら(例:指定数の150%)赤点滅表示させるとか。

その程度のことなんですが、、、
さっきからいろんなHP見てますが、計算式として[数量]*[単価]等は書いてあるんですが、
入力箇所の説明が名称ばかりでどこのボタンを押すとか、
画像的な説明がなくて正直困ってます。

お手数おかけしますがよろしくお願いします。
545名無しさん@そうだ選挙にいこう:2009/07/09(木) 01:05:15
>>544
正直に言うが、テーブル構造がヤバイ。
とりあえず、このままの状態で挑戦はしてみるが。
546540:2009/07/09(木) 01:10:41
>>545さん

すいません、正直同僚も私たちより知ってるだけで
上級者ではないとおもうんで、上級者から見れば雑かも知れません。

深夜ですから今すぐじゃなくて明日でも結構ですので!
また明日もここチェックしますのでm(__)m汗

うpろだの方は消しときますね。
547名無しさん@そうだ選挙にいこう:2009/07/09(木) 02:26:43
質問ですが、こちらのスレでよいのでしょうか?

職場のPCでDate Time Pickerコントロールを使いたいのですが、フォームに配置しようとすると
「ライセンスがありません」旨のメッセージが出て、使うことが出来ません。
個人用PCのACCESS2003では何の問題もなく使用可能です。
なにか解決法をご存知な方がいらっしゃいましたら、ご教示頂きたくお願い申し上げます。
548名無しさん@そうだ選挙にいこう:2009/07/09(木) 03:17:51
>>540
月末在庫額、当月指示額、現状在庫数は計算で出るからテーブル上には必要ない。
コントロール名を変えて(例えば頭にtxtを付加)コントロールソースに、

月末在庫額(txt月末在庫額):=[月末在庫]*[単価]
当月指示額(txt当月指示額):=[当月指示数]*[単価]
現状在庫数(txt現状在庫数):=(Nz([月末在庫],0)+Nz([入荷数1],0)+Nz([入荷数2],0)…+Nz([入荷数15],0))-(Nz([出荷数1],0)+Nz([出荷数2],0)…+Nz([出荷数22],0))
ブリンクはできないが条件書式で色を変える。

必要ならうpするけど、ここに書いたこと以上はしていない。
計算はクエリ上でやってもいいかもね。
549名無しさん@そうだ選挙にいこう:2009/07/09(木) 04:53:02
>>547
なかばaccessclubで答えでてんじゃねか。
さっくりあきらめてカレンダーコントロールでどうぞ。
2007買ってランタイム配布のほうがなにかと都合がよさそうだ。
>>540
打つ手と時間がねぇなら、EXCELでやってしまえば?
レポート出力とか余裕あんのかい?
>>548
男前!!

昼まで寝ます ノシ
550名無しさん@そうだ選挙にいこう:2009/07/09(木) 08:58:52
>>540
桐で作り直した方が早い
551名無しさん@そうだ選挙にいこう:2009/07/09(木) 11:48:10
教えてください。

ユーザーにパスワードを知らせずに、アクセスにパスワード掛かったMDBを起動させる為に、
VBSでスクリプト作りました。
VBSはオマケのエンコーダーでエンコードしても簡単にデコードされちゃうので、VBでexeファイルに作り変えたいです。

今、VBexpress2008でやってみたのですが、希望通りの動作しますが、VBSの時と違ってウザイDOS窓が表示されちゃいます。
VBのコンソールプロジェクトで作りました。

DOS窓を表示させない方法はありますか、VBでWinフォームアプリ作成ではなく只単にMDBを起動させたいです。
552551:2009/07/09(木) 12:34:00
自己解決しますた。
553名無しさん@そうだ選挙にいこう:2009/07/09(木) 14:20:53
米Microsoftは4月1日(日本時間)、開発者向けツールおよびプラットフォームの次版である「Visual Studio 2010」の開発言語を従来の「Visual Basic」と「Visual C#」ではなく「Visual B#」に統一すると正式に発表、
製品の詳細について語り始めた。なお、.NET Frameworkのバージョンは従来の発表どおり「.NET Framework 4.0」とのことである。

Visual B# 10.4 (VB# 2010)は、同社が長年培ってきたVisual Basicに対してC#の要素を大幅に取り入れれた言語仕様となっており、従来のVisual BasicやC#との互換性は100%ないため、
開発者は過去の資産にとらわれず新しい仕様を有効活用できることを保証しているという。

Visual Basic 2005/2008、C# 2005/2008からVB# 2010へのアップグレードウィザードはソースコードをすべてコメントアウトすることを保証し、ウィザードにより生成された結果が中途半端に動作して問題を引き起こしていたのと比較して、
100%安全なコードを生成する事が証明されているアルゴリズムを採用したと発表されている。

また、Visual B# 10.4では、MultiPlatformクラスライブラリが新たに採用され、単一のフォーム定義クラスから「Webフォーム」、「Windowsフォーム」、「Windows Mobileフォーム」相当と同一動作する機能が予定されているとの噂もあるが、
この件についてはリリース当初から実装されるかどうか米Microsoftは明言をさけている。
なお、関係筋への取材では、Visual Studio 2008で廃止された「Mobile Webフォーム」についても対象になっているようである。

なお、これに伴い、Visual BasicとVisual C#はVisual Basic 2008及びVisual C# 2008が最終バージョンとなり、この最終バージョンは今後発売されるすべてのWindows OSで動作保証される事も同時に発表された。
Visual Basic 6.0が新OSでも動作保証されているためVisual Basic .NETへの移行が進まなかったのと同様の事がVisual B#にも起こる可能性も考慮すべきかもしれない。
554名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:38:59
質問です。

今アクセスで社員検索を作ったのですが、検索して該当者がいない場合に
メッセージボックスを出したいのですが色々調べても分かりません。

社員番号入力欄の更新時処理にマクロを入れてます。
そのマクロで検索が出来てます。

この場合どういうコードでエラーメッセージボックスを出せばよいのでしょうか。
555名無しさん@そうだ選挙にいこう:2009/07/09(木) 18:44:45
>>551
>ユーザーにパスワードを知らせずに、アクセスにパスワード掛かったMDBを起動させる
パスワードなしと変わらん気がするw
外部からの接続を拒否しようとしてるんかな
556名無しさん@そうだ選挙にいこう:2009/07/09(木) 19:43:22
>>554

動作確認はしていませんが、こんな感じかな?

If DLookup("*","社員TBL","社員id='" & txt社員id & "'") = 0 Then
 MsgBox("このコードは社員TBLに登録されていません。",vbExclamation,"エラー")
Else
 '〜本来の処理〜
End If
557名無しさん@そうだ選挙にいこう:2009/07/09(木) 19:47:20
>>556
DLookupって該当がなければNULLを返すんじゃなかったけ?
0でやるんだったらDCountじゃね?
558名無しさん@そうだ選挙にいこう:2009/07/09(木) 20:01:05
>>554
対象レコードがない場合、CurreentRecordプロパティに0が入るから
条件に使えばいいのでは?
559558:2009/07/09(木) 20:03:06
CurrentRecordねw
560名無しさん@そうだ選挙にいこう:2009/07/09(木) 20:08:45
>>557
うっかりしてました。そのとおりDCount関数の間違いです。
561名無しさん@そうだ選挙にいこう:2009/07/09(木) 20:13:41
>>558
コードがまったくわからないのです・・・
562558:2009/07/09(木) 20:40:25
更新後マクロに
条件:CurrentRecord=0(入力すると[]がにつくはず)
アクション:メッセージボックス
そのあと処理を続けるんなら、
条件:...
アクション:コマンド実行(フィルタの実行/解除)
フォームが一時的に空白になるからの。

Dcountで存在するかを条件した処理のほうが見た目は良さそう。
563名無しさん@そうだ選挙にいこう:2009/07/09(木) 20:59:29
>>562
なるほどーマクロにさらに入れるのですね。
今日マクロにメッセージがあったからそれを使ったら
入力したら該当ありなし関係なく出てたのでどうしたもんかと思ってたら
条件入れるところがあったのですね・・・明日会社でやってみようと思います

ありがとうございます。
この条件は該当しなかったら入力した文字は消えてフォーカスは番号入力
場所にとどまっているのでしょうか?
564558:2009/07/09(木) 21:28:20
>>563
558のマクロ2行は、作ったマクロの最後に加えるだぞ。
結果的にフォーカスは移動しないかもだが、空白にはならない。
消すならさらに1行書けや。
こっちのほうがいいかもしれん
1行目
条件:社員番号のカウント=0(定義域関数で)
アクション:メッセージボックス
2行目
条件:...
アクション:テキストボックスを空欄にする
3行名
条件:...
アクション:マクロの中止
565名無しさん@そうだ選挙にいこう:2009/07/09(木) 22:03:18
Accessの互換性について3点お伺いしたいのですが、
居室でOffice2007、2003、2000を入れている端末があるのですが、
どのバージョンでDBを作成すれば
どの端末でもDBを開けるようになるのかを教えて頂けませんでしょうか。

また、Access97で作成されたDBを
Access2003を開いてしまうとリンクが切り替わり、以降Access2003で開くようになってしまい、
その度にわざわざリンクをAccess97に戻す必要が出てきます。
Access2003を開いてもリンクが切り替わらない方法ってあるものなのでしょうか?

最後にAccess2003で作ったmdbファイルが
Access2007、Access2000で開こうとするとエラーが出てしまいます。
エラー内容は「データベースの形式を認識できません」です。
データベースの変換で解決することができますか?

私自身、Accessを触った経験が無く知識が乏しいのですが、
もしよろしければ上記の件、ご教授頂けないでしょうか。
566名無しさん@そうだ選挙にいこう:2009/07/09(木) 22:05:57
>>564
ありがとうございます。

早速明日試してみようと思います!
567名無しさん@そうだ選挙にいこう:2009/07/09(木) 22:21:03
>>565
一番古いバージョンで開発が基本だろう。
が、2007は2000の互換性を保証していなかった気がする(前後1代のバージョンだけだっけ)。
ショートカットで無理矢理起動するバージョンを指定するっていうのを見た覚えがあるな。
やってみる価値はあるんじゃね? > データベース変換
568551:2009/07/09(木) 22:58:19
>>555
ユーザーにテーブルのデータを見せたくないのです。
569名無しさん@そうだ選挙にいこう:2009/07/10(金) 00:28:49
>>568
テーブルを別ファイルにして、ADOとかIn句で接続したら。
テーブルのあるファイルは、拡張子を変更して偽装しちゃえばいいし、
ユーザーが使うファイルはMDEにしておけば参照先のファイルも解らないだろう。
570551:2009/07/10(金) 00:42:21
それだと遅いしメンドウです。
簡単に連結フォームでやりたいです、許せるのはmdb同士のリンクテーブルまでです。
571名無しさん@そうだ選挙にいこう:2009/07/10(金) 00:45:42
多分だけど、リンクの方が遅いと思うよ。
このスレだったと思うけど、In句は速いって実地で返答していた人もいたし。
572551:2009/07/10(金) 00:50:01
なら分割しないで単独mdbの連結フォームが簡単で速くてよいです。
573555:2009/07/10(金) 01:19:18
>>568
なるほどなぁ
accessならではで、ひとつの答えだの
お疲れさまでありんす
574540:2009/07/10(金) 18:21:27
>>548さん

すいません!レスしたつもりで反映されてませんでした(泣

今からでも間に合いますでしょうか?
ぜひうpしていただきたいんですが!
宜しくお願いいたしますm(__)m
575名無しさん@そうだ選挙にいこう:2009/07/10(金) 20:40:32
>>540
うpする前に聞くけど、圧縮していい? いいのだったら形式指定して。
そのままだと、ドライブ変えないと開けないようになっていたと思うんだ。ACCESSって。
576540:2009/07/10(金) 20:46:08
>>575さん
圧縮しないと利用できないのであればお願いします。
解凍すれば普通に利用できるんですよね?
577名無しさん@そうだ選挙にいこう:2009/07/10(金) 20:55:02
578577:2009/07/10(金) 21:10:58
>>576
ttp://a-draw.com/uploader/upload.cgi?mode=dl&file=2322

うpしなおした。DLキーとDELキー間違えちゃった。
DLキー 1233
579名無しさん@そうだ選挙にいこう:2009/07/10(金) 21:22:10
関係ない俺もGET
人の覗くのは勉強になるのさ、ぐへへ
580名無しさん@そうだ選挙にいこう:2009/07/10(金) 21:25:16
>>579
ならないと思うぞ。
581579:2009/07/10(金) 21:33:24
どうもありがとうございまいった
582名無しさん@そうだ選挙にいこう:2009/07/11(土) 00:19:27
こういうやりとりは後日に他の人間が参照しても何の役にも立たないログになるから
好ましくないと思うんだ
583名無しさん@そうだ選挙にいこう:2009/07/11(土) 18:28:38
週明けから、次の案件が始まる。
フロントエンド:access2007runtime
バックエンド:MySQL5
ちらっとADOしてきましてきます〜
何か有益情報はないかの?で、俺からは、
http://www.connectionstrings.com/
584540:2009/07/12(日) 02:58:37
>>577さん

おそくなりましたがDLさせていただきました。
ありがとうございました。

しつもんですが、タイトル末尾が「2」となっているのが
計算式を入れてもらったものですよね?
あと、元ファイルは3M程度の容量だったのが
DLしたファイルは解凍後でも800KB弱と小さいようです。
単純にファイルが増えて計算式も追加されてるのに何ででしょうか?

585名無しさん@そうだ選挙にいこう:2009/07/12(日) 16:47:03
すいません質問です。

今保存ボタンと印刷ボタンをひとつのボタンにまとめたいのですが
どのようにしたらいいのでしょうか。

保存はコードで書いてあり印刷についてはマクロを使ってます
586名無しさん@そうだ選挙にいこう:2009/07/12(日) 20:30:45
>>585
・印刷するマクロに保存マクロを追加
・印刷するマクロから保存プロシージャ呼出
・保存プロシージャに印刷コードを追加
・保存プロシージャから印刷マクロ呼出し
お好きなものをChoice!
587名無しさん@そうだ選挙にいこう:2009/07/12(日) 21:11:52
>>586
肝心な順番を忘れてました・・・
印刷マクロに印刷をするかしないかメッセージボックスを出しています。
そのハイをクリックしたら保存を開始して印刷へといく物を求めています

ので保存プロシージャから印刷マクロかコードを追加する方法を教えてもらって
よろしいでしょうか
588586:2009/07/12(日) 21:58:14
>>587 とりあえず前提:連結フォーム
privete sub btnCtr_Click()
if msgbox("Save and Print?",vbokcancel,"information") = vbcancel then exit sub
  ’[いいえ]で]押下で終了。
 if me.dirty then docmd.runcommand accmdsaverecord
  '編集状態である場合、カレントレコードの保存
docmd.openreport "Rpt_Name",acviewpreview
end sub
コードでは、こないな感じ。
VBAからマクロ呼び出すなら、docmd.runmacroにて。
VBAかマクロかどっちかにしたほうがえーかもな。
589名無しさん@そうだ選挙にいこう:2009/07/12(日) 22:34:25
>>588
ありがとうございます。
保存がadd.newで複数のテキストボックスに入力されたデータをテーブルに保存するように
してたので、このコードの場合保存で作ってあるコードはどこに
記入するべきなのでしょう。たびたび申し訳ないです。
590名無しさん@そうだ選挙にいこう:2009/07/12(日) 22:41:43
>>584
末に2がつくのはクエリで計算版。一部テーブル構造をいじっている。
うpするときは、mdbを最適化しような。あと、クレームが出ちゃったから、
自助努力も怠らないように。
591名無しさん@そうだ選挙にいこう:2009/07/12(日) 23:11:12
addnew? 非連結でADOとかDAO?
でもって新規レコードとか1レコードのレポートかしら?
正直、説明が足らんと思うど
592名無しさん@そうだ選挙にいこう:2009/07/12(日) 23:22:58
>>591
基本的に非連結のテキストボックスに検索かけた学生番号をに
対する学生の情報を表示して
学生の取ってる授業を自分でテキストボックスに入力して
そのデータをテーブルに保存と印刷すると言う感じです。

初心者なのでコンボボックス使ったりテキストボックスを付けて
検索して入力して表示させるだけって感じの簡単なフォームだと思います。
593名無しさん@そうだ選挙にいこう:2009/07/12(日) 23:31:47
初心者さんとお前の関係は?
594586=591:2009/07/13(月) 00:19:25
>>592
印刷とUpdateが個別に機能していると仮定すると

private sub btnCtr_click()’ボタンクリック時イベント**クリッコしたら処理が始まる
if msgbox("Save and Report?")=vbcancel then exit sub
***入力レコードを保存一式***
***印刷処理一式****
end sub

分岐とか指定がない限りコードの上から順々に処理だから、
作ったコードを挿入すれば概ねおけ。これはマクロでも同じ。
VBAで書くことを前提にレスしてるから、印刷処理のコードを
レコード保存のコードの下に書き込めばいいのではないか、
ということです。印刷指示は、docmd.openreport 〜〜 多分1行で済む。
一つの方法だからさ、実際やってみてエラー出して調べるのがいいよ
595540:2009/07/13(月) 17:28:51
>>590さん

有難う御座いました。
アクセスど素人なんで最適化とかもしりませんでした(−−;
現在、ネットと本屋をフル活用して勉強中です。

またなにかありましたら宜しくお願いいたします。
596名無しさん@そうだ選挙にいこう:2009/07/13(月) 18:48:43
初心者です。複数あるレポートデザインのラベルを一括変更する事ってできますか?出来るなら教えて下さい。
597名無しさん@そうだ選挙にいこう:2009/07/13(月) 18:58:19
>>596
できるけど、初心者には多分無理。
ヒントとしては、レポートをデザインモードで開いて、For〜Eachでコントロールを総当たり。
598名無しさん@そうだ選挙にいこう:2009/07/13(月) 19:07:34
>>597
ありがとうございます。初心者には厳しいですか↓
もし良ければもう少し教えて下さい。
599名無しさん@そうだ選挙にいこう:2009/07/13(月) 19:09:38
デザインビューで複数ラベル選択してプロパティボックスで変更って出来ない?
600名無しさん@そうだ選挙にいこう:2009/07/13(月) 19:12:18
ラベルの変更ってなにがしたいのさ。
位置? 表題? ラベル名? 
601名無しさん@そうだ選挙にいこう:2009/07/13(月) 19:21:49
標題です。レポートの種類がいっぱいあって毎回全部の標題(標題は全部一緒)を変えたいのですが…。
602名無しさん@そうだ選挙にいこう:2009/07/13(月) 19:26:54
Public Const にしとけ
603名無しさん@そうだ選挙にいこう:2009/07/13(月) 20:03:59
毎回Captionを変える状態って言うのが理解できん。
日付とかの変数が入るのだったら、テキストボックスを使うし。
604名無しさん@そうだ選挙にいこう:2009/07/13(月) 20:44:55
captionを変えるといろいろと便利になる場合があるんだよなぁ。
605名無しさん@そうだ選挙にいこう:2009/07/13(月) 21:00:36
日付とかの変数じゃない場合は無理ですか?
606名無しさん@そうだ選挙にいこう:2009/07/13(月) 21:33:07
結論から言えばできる。
ただ「もっと簡単な方法があるんじゃね?」っていう段階に話は突入している。
607名無しさん@そうだ選挙にいこう:2009/07/13(月) 21:36:22
だから Const
608名無しさん@そうだ選挙にいこう:2009/07/13(月) 23:17:33
>>596
バージョンが解らないからできるかは知らんが
AllReportsコレクションでレポート数とレポート名が取得できる。
で、>>597を組み合わせればいいだけ。
これで解らないようなら、まず無理。
609名無しさん@そうだ選挙にいこう:2009/07/14(火) 00:43:17
>>598
ぶっちゃけ、コードが欲しいんだろ?

Private Sub コマンド0_Click()
Dim Ctrl As Control
Dim i As Long

With CurrentProject.AllReports
For i = 0 To .Count - 1
DoCmd.OpenReport .Item(i).Name, acViewDesign, , , acHidden
For Each Ctrl In Reports(.Item(i).Name).Controls
If Ctrl.ControlType = acLabel Then
If Ctrl.Caption = "ABC" Then '比較対照(ABC)はテキストボックスにしておくとよい
Ctrl.Caption = "XYZ" '代入対象(XYZ)はテキストボックスにしておくとよい
End If
End If
Next Ctrl
DoCmd.Close acReport, .Item(i).Name, acSaveYes
Next i
End With
End Sub

こんな感じか?
610名無しさん@そうだ選挙にいこう:2009/07/14(火) 09:54:17
win2000
ACC2000

アクセス起動時にアプリケーションを全画面表示したいのですが、どのようなコードを書けばよいでしょうか
フォームやテーブルの最大表示は出来るのですが、アクセス自体を全画面表示に出来ません
611名無しさん@そうだ選挙にいこう:2009/07/14(火) 11:24:51
Office 14 Beta1 Ships
テクニカルプレビュー来たやつはshareに流してくれ
612名無しさん@そうだ選挙にいこう:2009/07/14(火) 11:26:41
ショートカットを作ってそれの実行時の大きさを最大化にすればokなはずだが?
もちろんそのショートカットから起動すること。
613名無しさん@そうだ選挙にいこう:2009/07/14(火) 12:00:18
ベータテストの参加申し込みがずっと保留状態のままだ
どうやら承認されなかったようだ
614名無しさん@そうだ選挙にいこう:2009/07/14(火) 14:15:20
>>612
そんな手段ががが
トンクル
615名無しさん@そうだ選挙にいこう:2009/07/14(火) 14:48:44
>>610
つ DoCmd.RunCommand acCmdAppMaximize
つ autoexecマクロ
616名無しさん@そうだ選挙にいこう:2009/07/14(火) 16:47:59
XP 2003 VBAちょっと可

クエリで集計した項目がフォーム上から(リストボックスを使っています)うまくソートが
かけられないのですが、どなたかアドバイスいただけませんでしょうか?
項目名は「Pieces の 合計: Pieces」、「Cost の 合計: Cost」です。クエリ上で演算した項目
(項目名は「客単価」等)はうまくいくのですが・・・
集計項目の項目名にスペースが含まれているのが原因じゃないかとか思っているんですが
どうなんでしょうか?
617名無しさん@そうだ選挙にいこう:2009/07/14(火) 17:13:57
>>616
素直に集計した結果を別テーブルにインサートしてそれを使ったほうが早いと思う。
クエリーの結果をさらに加工するというのはいろいろと制限があるし、
かえって遅くなることが多いし予想のつかない結果になったりするから私はそのやり方を多用する。
余計なテーブルが増えるのは非効率のようだけど、
そのテーブルの中がどうなっているのか調べることによりデバックもやりやすくなる。
618名無しさん@そうだ選挙にいこう:2009/07/14(火) 17:35:18
>>617
ありがとうございます。
その方法でやってみます!
619名無しさん@そうだ選挙にいこう:2009/07/14(火) 19:18:02
>>616

>項目名は「Pieces の 合計: Pieces」、「Cost の 合計: Cost」です。
とのことですが、これは合計を計算する項目であって、どういう単位で集計をしているか「グループ項目」の
方を提示してくれないと答えが出ないような気がします。
(結果セットの行の並びについて話しているので、グループ項目がない全体で1行の合計行しか返さない集計ではないでしょうから)

それぞれで結果の並びが違うということは、単純に考えて通常のクエリで作ったものとリストボックスに設定したクエリ(SQL文)
が違うだけだと思いますので、改めて内容を見返すか、それぞれのSQL文をここに提示してもらった方がいいんじゃないでしょうか。

集計クエリを作った場合、集計プロセスの過程でグループ項目でソートされた上での集計ですので、
通常は結果セットの並びは「グループ項目順」になるはずです。

もし、それ以外の並びになるのでしたら、意図的に並びを指定しているはずですので再確認してみてください。
(この辺はSQL文を見れば、「ORDER BY」の記述があるでしょうから一発で分かります)
620名無しさん@そうだ選挙にいこう:2009/07/15(水) 08:35:46
>>615
ありがとうございます
最大化(アプリケーション)マクロの実行でも出来るんですねー

出来るファイルと出来ないファイルがあるけどなんだろ
621名無しさん@そうだ選挙にいこう:2009/07/15(水) 09:24:37
autoexecって未だに使ったことがないな。使い道がわからないし。
ユーザビリティを考えると、フォームは必須になるから
起動時の設定で事足りちゃうと思うけど。
なにか「これはautoexecじゃないとできない」っていうものってあるの?
622名無しさん@そうだ選挙にいこう:2009/07/15(水) 12:49:08
>>621
俺は主にフォームを開く前に設定したいグローバル変数を設定するためのプロシージャを呼び出すのに使っている。
hogehoge.iniとかいう設定ファイルから呼び出すようにすると基本設定をhogehoge.iniで変えることができる。
例えば使うPCの解像度に応じて呼び出すフォームを変えるなんてことも可能。
そういう設定はautoexecマクロからautoexecプロシージャを呼び出してするということに決めておけば楽。
起動時のフォームでも出来るがグローバル変数を設定するためだけの
ダミーの起動時フォーム作るよりこれが一番しっくりくる。
623名無しさん@そうだ選挙にいこう:2009/07/15(水) 20:25:09
しっくり感はともかくやっぱりAUTOEXEC必須ってわけじゃないよな
624なると海峡:2009/07/15(水) 23:01:46
困っています。是非とも皆さんのお力をお貸しください。Access2003です。

以下のようにフォームがあります。

@検索結果一覧フォーム
 テーブルと連結しているテキストボックスが数個あり、起動するとフォームの
 プロパティのレコードソースに記載されているSQL文に従い、テーブルの
 内容を表示する。

 例えば以下のようなSQL文が記載されています。

  SELECT TOP 50 [ID] FROM [AddressTable]

A検索条件作成フォーム
 日時やIDや名前などを入力するテキストボックス・コンボボックスが
 複数存在し、それらの入力の有無に従い、Select文のWhere句以下を作成します。

 検索実行ボタンが押された場合、DoCmd.OpenForm を用いて
 検索結果一覧フォームを開くのですが、その時にDoCmd.OpenForm
 の4つめのプロパティであるWhereConditionに、作成したWhere句以下の
 文字列を指定します。具体的には下記のようなロジックになります。

 DoCmd.OpenForm "フォーム1",acNormal, ,作成したWhere句以下

これらを用い、検索条件作成フォームで検索条件を作り、その条件を検索結果一覧フォーム
に表示させる検索結果に影響させたいのですが、うまくいきませんでした。

 
625なると海峡:2009/07/15(水) 23:02:59

例えば Name = Hanako のデータを含むデータのTOP50を検索したいとします。
通常のSELECT文であれば、

SELECT TOP 50 [Name] FROM [AddressTable] WHERE Name = 'Hanako'

で指定できます。しかしながら、今回のようにDoCmd.OpenFormの
オプションでWhere句以下を指定しフォームを開いた場合には、まずTOP50
で検索が行われ、そのあとにName = Hanakoで絞り込みが行われます。

例えば、初めのTOP50での検索で、NameがHanakoであるデータが存在しなければ
検索結果は0件となります。意とした結果が返りません。

どのようにすれば私の求める結果を実現できるのか、助言をお願いしたく
参りました。よろしくお願いします。

※@、Aの設定はあまり変えたくないのです。@のテキストボックスを
 非連結にして・・・というのはあまり考えたくありません。


 
626名無しさん@そうだ選挙にいこう:2009/07/15(水) 23:52:56
>>625
副問合せ
627名無しさん@そうだ選挙にいこう:2009/07/16(木) 00:13:45
>>625
WhereConditionじゃなくOpenArgsにパラメータ渡して、
検索結果一覧フォームとやらの開く時イベントでSQL
生成すれば。
それがイヤだったんだろうなという雰囲気は感じるが、
根拠なくそこを避けて議論するのも不自然だしな。
一応言ってみた。
628名無しさん@そうだ選挙にいこう:2009/07/16(木) 00:28:50
>>623
必須ではないけれど設定すれば必ず最初に実行されるってのは便利ってば便利。
629621:2009/07/16(木) 00:43:02
ちょっと調べてみたけど、Accessに限っていえばそれほど必要ないのかな。
Excelとかだと確かに便利そうだけど。

>>622
「起動中。しばらくお待ちください」とかいう小さめなフォームを表示するのも駄目かな?
利用者からは案外評判がよかったのだけど。

>>628
shift押しながら起動するとキャンセルされるのは、起動時の設定と変わらなかったと思うけど。
630名無しさん@そうだ選挙にいこう:2009/07/16(木) 06:18:08
>>629
必要ないっていえば必要ないよ。
起動用の小さなフォームは最初使っていた。
でもそれでは空のmdbに全オブジェクトをインポートすると
(なんでそんなことをするかはAccess使いならわかるよね?)
起動時の設定をいちいちいじらなければいけない。
autoexecマクロならその必要がない。
そんなわけでマクロは使わない主義なんだけどautoexecマクロだけは使っている。
つまらない細かすぎるテクニックっていえばそうだけど
ちょっとでも便利なら使わない手はないだろう。
631名無しさん@そうだ選挙にいこう:2009/07/16(木) 08:08:06
>>625
検索結果一覧フォームのレコードソースを
SELECT TOP 50 [Name] FROM [AddressTable] WHERE Name = 'Hanako'
に書き換えればいいんじゃないの?
632名無しさん@そうだ選挙にいこう:2009/07/16(木) 10:31:01
>>625
Docmd.Openメソッドのwhereconditionオプションは、フォームフィルタのこと。
なので、処理は正確に行われているといえる。方法の選択がよくない。
意図する結果を求めるなら、
検索結果クエリを作成して検索結果フォームに連結するがお手軽ではないかな
633名無しさん@そうだ選挙にいこう:2009/07/16(木) 11:25:33
>>630
> (なんでそんなことをするかはAccess使いならわかるよね?)

解らないから、教えてよ
634名無しさん@そうだ選挙にいこう:2009/07/16(木) 12:05:42
>>633
Accessの調子悪いとき、とりあえず新しいファイルにオブジェクトをコピーするのが
常套手段だからじゃないか。マジレスなんて求めていないかもしれないが。
けど、自分が作ったものでそんな状態になったことなんてないなぁ。
他人が作ったものでmdb破損したことはあるけど、大抵は原因が特定できたし。
635名無しさん@そうだ選挙にいこう:2009/07/16(木) 12:08:54
ああ、autoexecマクロでオブジェクトをインポートするのかと思った
636名無しさん@そうだ選挙にいこう:2009/07/16(木) 12:36:26
>>634
いいなあ。テキストボックス、コマンドボタン一つを追加しただけで、そのフォームが永久に開かなくなるのなんて日常茶飯事なんだけど。
俺の環境では壊れてばかりだけどな。
637名無しさん@そうだ選挙にいこう:2009/07/16(木) 14:07:20
>>636
後学のため、是非とも見せてもらいたいぐらいだよ。
フォームに限らず一切の操作ができなくなったのは、2GB制限に引っかかった時ぐらいか。
作成環境とは別環境で開いたらエラー吐きまくって動かなかったのは
Accessでやってはいけないこと(予約語の使用や先頭文字が全角英数等)のオンパレードだったな。
638名無しさん@そうだ選挙にいこう:2009/07/16(木) 14:34:20
>>637
もう少し経験を積むことだね。
639名無しさん@そうだ選挙にいこう:2009/07/16(木) 17:35:31
愚痴レスはつまらん。
所詮、道具なんだから人それぞれの使いようだ。経験なんて糞くらえだ。
640名無しさん@そうだ選挙にいこう:2009/07/16(木) 17:45:38
フォームは壊れたことないけどレポートは何回も壊れたな。
>>636みたいにテキストボックスの追加だけで操作ができなくなって
結局、原因不明。
こういうのって対処法あるの?
641名無しさん@そうだ選挙にいこう:2009/07/16(木) 17:50:45
フォームやレポートが壊れた時は、
当該フォームを丸ごとコピペして、元フォームを削除して、元フォーム名にリネーム
これで大抵は治ってる
642名無しさん@そうだ選挙にいこう:2009/07/16(木) 17:52:46
>>641
THXやってみるわ。
643名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:09:24
すいません教えてください。

テキストボックス、コンボボックスを使って届出フォームを作ってるのですが
入力したところだけを保存したいのですがどういうコードで書けばよいのでしょうか。

今はAddnewを使いすべてのテキスト、コンボを選択して
保存している状態です。
これだと少し問題がでてきたので、入力されているところだけを
保存という形式にしたいと思っています
よろしくおねがいします
644名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:20:43
せいぜい15年程度の経験しか積んでいないが
俺が見たmdbを壊しまくる奴は全員決まってドのつく素人
645名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:25:29
俺は業務用mdbのカスタマイズをしているけど、テキストボックスをおいたとたんに壊れるw
素人とか玄人以前の問題だろうw
646名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:27:49
>>643
意味が解らん。新規登録ならAddnewだし、既存レコードの変更ならUpdateだろ。
647名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:40:41
>>646
ごめんなさい・・・
とりあえず、なぜそうしたいというと、フォームに年を入れないで保存されたとき
に年月日となるようにしてくれと言われて。
わからなかったのでとりあえずフォームにYear(Now)で年だけ作って
それをと入力月日の場所をまとめて1レコードで保存したのですが。

同じようなつくりの場所がもう一個あり、Addnewで全部の場所を
保存するようにしてるので空白でも年は参照してるので年だけ
出てきちゃうと言う感じになってるので、入力されてる部分だけ新規保存できないかなと・・・

あぁ・・これでも分かり図らいですねごめんなさい
648名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:44:07
テキストボックスおいただけで壊すような奴が
どうやってカスタマイズ作業とかw
649名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:45:47
>>648
知るかよw
置いただけでメモリーがなんたらかんたら言って開けなくなるんだよ。
マジレスすると、バグらしい。技術情報に載っていた気がする。
650名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:48:31
バグと理解しているのに、対策しない男の人って、、、
651名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:51:36
>>650
対策は無いはず。2007にダウングレードしたくないから2002を使っている俺も悪いのかな。
MSって改悪ばっかりなんだもん。
652名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:54:45
>>647
日付型なら年を省いて、も自動的に付加されると思うが。
変更時か更新後処理でフラグ立てするしかないんじゃないか。
普通は更新後処理でいいと思うが。
653名無しさん@そうだ選挙にいこう:2009/07/16(木) 20:59:01
>>651
2007でも壊れたw
654名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:02:15
>>653
マジですか〜w
655名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:02:16
>>652
保存先の月日を保存するフィールドは日付型にはなっています。

更新後処理には今日数計算するようなのを入れています。
今はテキストボックス4つを、月、日、月、日で分けて、それに入力したら
日数がでるようになっています。
で、後々のために入力した日付を月日、月日とINTOで一緒にしてフィールドに
保存しています。
656名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:07:28
>>644
不思議に経験を積むとあまり壊さなくなるよね。
今から思うとメモリーをやたらと喰うような処理をしていたのかもしれない。
フォームも必要以上に複雑にしたりとか。
そういうところのバランス感覚が自然に身につくからなんだろうけど。
そうはいってもやっぱりもう少し堅牢さは欲しいよな。
657名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:24:06
>>655
どういう運用だか知らんが、今のロジックでは、
年をまたいだ場合アウトじゃねか
なんかいろいろと遠回りしてる気がする
658名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:26:52
>>657
そうなんです・・・
初心者で何も分からないままネットで検索させてパズルのようにして
作っているもので

申請(休み)届けを作成中です・・・どんな風に作っていけばいいんでしょう・・・
659名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:36:13
>>655
別に責めるつもりはないのだが、以前にもここで質問したことがある?
例えば>>521とか>>585とか。
もしそうなら、情報を小出しにしないでまとめてもらいたいのだが。
で、Addnew使っているということは非連結フォームって言うことでいいの?
とりあえず晒せる範囲でいいから、コードを晒してよ。
660名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:41:21
>>659
連結フォームなのに意味なくDAO使ってる可能性もあるね。
>>658
なんかしっくりこないと言う上司に参考書買ってくれと伝えろ
661名無しさん@そうだ選挙にいこう:2009/07/16(木) 21:46:45
>>659
ありがとうございます。
コードは会社のaccessにしかないのですよ・・・
家でやろうにもACCESSがなくて出来ない状況です。ごめんなさい

基本的にフォームは非連結とコンボボックスしかないです。
662名無しさん@そうだ選挙にいこう:2009/07/16(木) 22:22:38
>>661
期間に関しては1年を超えることがなければ(まぁ、休暇申請だからまずありえないだろうが)
日付1 > 日付2で年跨ぎ問題はクリアできるだろう。
要は日付フィールドに年だけが登録されてしまうのが問題なのだろうから
それに関連がある月、日のテキストボックスが未入力、または未変更かをチェックすればいいだけじゃないの?
663名無しさん@そうだ選挙にいこう:2009/07/16(木) 22:26:01
>>660=643
テーブル側には日付フィールドが2つあるってことだね。
これをフォーム側では西暦を省略して入力したいってことかな?
[ ]月[ ]日〜[ ]月[ ]日 → [開始YYYY/MM/DD],[終了YYYY/MM/DD]

問題は>>657さんも言ってるけど、年をまたがる時の入力と
不正な値が入力されてしまった時にどうするかって事になる。
・2009/12/30〜2010/01/03 をどうするか?
・2009/13/32 をどうするか?

今から説明する方法はかなり変則的な方法になるんだけれど、
・2010/01/03は、13月03日と入力する。
・2009/13/32は、2010/02/01と解釈する。
というので良ければ、次の関数が使えるので参考にしてみて欲しい。

CDate(DateSerial(Year(Date()), Cint([テキスト月]), Cint([テキスト日])))
※メインとなるのはDateSerial関数。
664名無しさん@そうだ選挙にいこう:2009/07/16(木) 22:37:42
期間が連続とするなら、終了日=開始日+日数でいいんじゃねか
終了日入力はいらねぇ方法
665名無しさん@そうだ選挙にいこう:2009/07/16(木) 22:43:21
みなさんありがとうございます。

>>663の言うとおりフォーム側では省略するけどフィールドには年月日を結合して
すべて入れておきたいです。
ただ、上記のとは別に前にも書きましたが同じようなもので
[]月[]日 午前or午後休むと言う覧もあります。(これはどちらかを入力です)
今まではYear(now)で2009を両方に必ず保存するように仕向けていたので
2009年だけは必ず出てしまう状態でした。
これをちょっとどうにかできないかなって・・・

会社的に年またぎで休みを申請する人はいないと過程ということで進めています
ので、今のところは無視してもいいようです。
関数参考にさせてもらいます。

また
666名無しさん@そうだ選挙にいこう:2009/07/16(木) 23:01:05
>>665
だからさ、Addnewの段階で月日のテキストボックスの状態をチェックすればいいだけだって。
規定値なし、文字列だったら至極簡単。
rs.Addnew


If Not IsNull(Me!月1 + Me!日1) Then rs!日付1 = Cdate(Me!月1 & "/" & Me!日1)


rs.Update

とかするだけじゃないのか?
667名無しさん@そうだ選挙にいこう:2009/07/17(金) 08:56:05
勝手に今年を付加してくれるのか
ほんまCdate()関数は最強やで
668名無しさん@そうだ選挙にいこう:2009/07/19(日) 09:42:22
アクセス 2007/正規品だっていうけど、
こういう↓出品は違反じゃないの?MSに通報したろか

ttp://page11.auctions.yahoo.co.jp/jp/auction/n72939705
669名無しさん@そうだ選挙にいこう:2009/07/19(日) 11:21:52
どこらへんが、まずいのか分からないのですが、参考までに違反だと思われる箇所を教えてください?
670名無しさん@そうだ選挙にいこう:2009/07/19(日) 16:53:12
違反かどうかはわからんね。
実際にはアンインストールしてなくて使い続けているのなら違反だけど。
671名無しさん@そうだ選挙にいこう:2009/07/19(日) 17:25:38
中古で出してる奴なんて多いんじゃない?
672名無しさん@そうだ選挙にいこう:2009/07/19(日) 17:51:06
>>668
この出品者に試しにその辺(落札者様のご名義でユーザー登録することが可能です。とはあるがアクティベーションやライセンス的に問題ないのかどうか)を質問したら、
書いてあるとおりみたいな回答をもらったけど(しかも誤字が目立つ)、回答があいまいだったんでもう一度質問しようと思ったら、この出品者に対して再質問できないような
扱いにされてしまいました
この程度の質問でブラックリストに載せるのか? 超むかつく!
673名無しさん@そうだ選挙にいこう:2009/07/19(日) 19:07:31
ブッラクリストはともかく、特に問題があるようにも思えないが?
オクションにはもっと怪しい出品が沢山ある。プロダクトキーだけの販売とか?
そう言えばアップデート版ってインストール時に古いバージョンのCDを入れろと言われるのかと思ったら
さらのWindowsXPにすんなり入ってしまった。単にライセンスだけの問題らしい。
674名無しさん@そうだ選挙にいこう:2009/07/19(日) 19:25:00
>>673 
>特に問題があるようにも思えないが?

673はもしかして本人?w
でも全く問題無い、とは言えないかもしれない・・・
一度インストールしたら、たとえアンインストールしたとしても、
他人に譲渡してはダメというのが、MSが課しているお約束なのではないか?

>>672は、質問の仕方がムカつく仕方だったんじゃないの?
もしくは、あんたがいかがわしいもの出品してたり評価悪いのついて
たりとかして警戒されたんじゃ?
675名無しさん@そうだ選挙にいこう:2009/07/19(日) 19:27:36
>>668

>>672じゃないけど、
こんなこと付け足してある!ますます怪しい!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

(2009年 7月 19日 18時 56分 追加)

一度しかインストールを行っていないので、オンラインによる
ライセンス認証は問題なくできると思いますが、もし出来なかった
場合は、落札者様からマイクロソフトにお電話して頂き、ご自分が
正規メディアの所有者であることを申し出て頂ければ、認証キーを
口頭で教えてもらえるものと思われます。

ライセンス認証について、このような方法で、自己解決して頂ける方
のみご入札ください。

返品はお受けできませんので、ご了承下さい。

676名無しさん@そうだ選挙にいこう:2009/07/19(日) 19:31:04
アクセスに限らず、オフィスの認証、電話でするの
超ウザいよ。

高飛車なMSの電話オペレーターにあれこれほじくり返されるように
いろいろきかれる。彼らもオークションで海賊版出回ってることに
かなり神経とがらせてるからね。
677名無しさん@そうだ選挙にいこう:2009/07/19(日) 19:39:32
>>673=出品者!!質問に答えろ!!
678名無しさん@そうだ選挙にいこう:2009/07/19(日) 19:56:56
入札しようと思ったけど、もしアンインストールしたっていうのが
ウソだったらとか、うまくアンイストールできてなかったらみたいに
疑いだしたら、やっぱやめとこうって感じ。安物買いの銭失いに
なりがち(まあ、PC2台まではOKなんだけどね実際は)
679名無しさん@そうだ選挙にいこう:2009/07/19(日) 20:08:11
>>674

> >>672は、質問の仕方がムカつく仕方だったんじゃないの?
> もしくは、あんたがいかがわしいもの出品してたり評価悪いのついて
> たりとかして警戒されたんじゃ?
アンインストールやユーザ登録できるはずというのではアクティベーションできるか心配だたので、
インストール後アクティベーションできるかやライセンス的に問題ないかを軽く質問しただけです
出品者も良く分かっていない印象でした
680名無しさん@そうだ選挙にいこう:2009/07/19(日) 20:26:30
>>674じゃないけど)

>>679 
>出品者も良く分かっていない印象でした

そうなんだ。試しに何か質問してみようかな。

ってか、出品者にこのスレ読ませるのが先かもしれんwww
681名無しさん@そうだ選挙にいこう:2009/07/19(日) 20:44:52
まあ5千円ぐらいまでなら、ダメモトで札入れてやってもいいような
気もするけど。それ以上はヤダな
682名無しさん@そうだ選挙にいこう:2009/07/19(日) 20:55:22
>>681
ライセンス認証は問題ないと思う。メンドくさくても最悪、電話でできる。

問題は、実はアンインストールしてなくて、アンインストールされてない
PCがネットにつながっていたりしたら、落札した人が起動できないかも
しれないという事態があるかも。

ライセンス的には、異なる二台のPCまでは同時に使用できるという
話だった気が。
683名無しさん@そうだ選挙にいこう:2009/07/19(日) 21:00:31
譲渡って駄目だったんだっけ?
684名無しさん@そうだ選挙にいこう:2009/07/19(日) 21:20:02
中古ソフトの販売は合法という判例はすでにでている。
マイクロソフトが契約書になんと書こうとそれは動かない。
一番の問題はこの出品者が信用できるかどうか?
私なら止めとく。
685名無しさん@そうだ選挙にいこう:2009/07/19(日) 21:22:38
>>684 はげ道。こういうソフトは新品買ったほうがいいよ。
後でモメたくないしね。
686名無しさん@そうだ選挙にいこう:2009/07/19(日) 21:24:16
譲渡自体は問題ないよ。
ライセンス契約書にも明記されてる。

問題は実際に出品者が使い続けるかもしれないってこと。
メディアコピーしてプロダクトキーも控えておけばライセンス認証も可能。
ライセンス認証時にユーザ登録状況の確認はされないからね。
なんとでもごまかせる。

俺なら新品未開封しか買わない。
687名無しさん@そうだ選挙にいこう:2009/07/19(日) 21:25:40
>>684
単品Accessだものね。別段高いっていうわけでもないし、
オクなんて信用できん。
688名無しさん@そうだ選挙にいこう:2009/07/19(日) 21:28:34
でも3000円ぐらいで落とせて、ちゃんと動いたらラッキー
っていうのもあるけどねw
689名無しさん@そうだ選挙にいこう:2009/07/19(日) 21:32:14
>>688
まあギャンブルだと思って楽しむのもいいかもな?
690名無しさん@そうだ選挙にいこう:2009/07/19(日) 21:49:49
新品の最安値、価格comで、尼だと\21,600か・・・・
691名無しさん@そうだ選挙にいこう:2009/07/21(火) 13:34:11
Access2007のランタイムで動かしているプログラムのレポートのプレビュー画面で、
右クリックメニューを出したいと思うのですが、そのリストはマクロでしか作れませんか?
「印刷」と「設定」と「閉じる」だけでいいのですが、マクロの「印刷」だとダイアログを出せないようなので、
昔のAccessのように普通の印刷メニューを使いたいのです。
692名無しさん@そうだ選挙にいこう:2009/07/21(火) 14:16:31
>>691
印刷プレビューであれば、ランタイムでもribbonUI使えるけど
これではだめなのかい?
693691:2009/07/21(火) 15:10:15
>>692
ポップアップ状態の場合にも使いたいので、右クリックで印刷をしたいと思います。
694名無しさん@そうだ選挙にいこう:2009/07/21(火) 16:19:37
OutputToって、TransferSpreadsheetのAcSpreadSheetTypeが使えるのか。
695692:2009/07/21(火) 17:42:00
>>691
俺も使いそうな件があって確認してみた。なんとなくだができた。
Microsoft Office 12.0 Object Library参照が必要
696692:2009/07/21(火) 17:44:44
変なレスだったな。。。
VBAでもshortcutmenuが作成できるってことね
697名無しさん@そうだ選挙にいこう:2009/07/21(火) 18:36:09
698名無しさん@そうだ選挙にいこう:2009/07/21(火) 20:07:05
質問します

ACCESS2000で
下記テーブル1を作成

フィールドAAAを作成
・テキスト型
・インデックスはい (重複あり))
・あとはデフォルト
PKはオートナンバー

AAAのフィールドにAA00001〜AA02501まで
2501件レコードを作成する

下記SQLを実行すると結果がNULLになる
しかしインデックスをいいえにするとAA02501が取得できる
なぜこうなるのでしょう?
よろしくお願いします。

select max(AAA) as DATA from テーブル1 where AAA like 'AA[0-9][0-9][0-9][0-9][0-9]'
699名無しさん@そうだ選挙にいこう:2009/07/21(火) 20:42:22
>>698
access2007:同様な現象は発生しませんでした。
700名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:25:50
>>698
Access2002では再現しました。
AA02500までや、AA02502までだと抽出できた。
2501レコードだと問題が出るっぽい。
DMaxでも同じ現象が発生。

よくこんなバグ気付いたねぇ。
701名無しさん@そうだ選挙にいこう:2009/07/21(火) 21:42:00
近いお話で2501の倍数レコードでのLike(ry
http://support.microsoft.com/kb/418614/ja
702名無しさん@そうだ選挙にいこう:2009/07/21(火) 22:03:17
2007でも発生しますよ

AA?????でないレコード例えばAB?????があると抽出可

Likeで抽出できるレコード数が2501(おそらく倍数含む)の場合、
同様の現象が発生すると考えられる
ちなみに
Like '[A-A][A-A][0-9][0-9][0-9][0-9][0-9]' 抽出可
Like '[A][A][0-9][0-9][0-9][0-9][0-9]' 抽出可
703702:2009/07/21(火) 23:37:49
心配性ゆえ調べてみた。
Like "[A][A]#####" 抽出可
Like "AA#####" 抽出不可
Like "[A]A#####" 抽出可
Like "A[A]#####" 抽出不可
Like "[A]A[0-9][0-9][0-9][0-9][0-9]" 抽出可
Like "[A]A####[0-9]" 抽出可
Like "AA####[0-9]" 抽出不可
少し条件変えて、
Like "AA*" 抽出可
Like "AA#*" 抽出不可
Like "[A]A#*" 抽出可
Like "AA?????" 抽出不可
Like "[A]A?????" 抽出可
Like "AA????[0-9]" 抽出不可
Like "[A]A?*" 抽出不可

なんとなく傾向見えたかも、少し安心
704702:2009/07/22(水) 00:32:54
(誤)Like "[A]A?*" 抽出不可
(正)Like "[A]A?*" 抽出可

(追加)Like "A[A]#####"
(追加)Like "[A][A]?*" 抽出可
(追加)Like "A[A]?*" 抽出不可
(追加)Like "[A][A]#*" 抽出可
(追加)Like "A[A]#*" 抽出不可
5002レコードでも同様だったわ。
[] # ? と1文字指定が混じるとだめみたいね。
705691:2009/07/22(水) 08:46:39
>>692,697
VBAでならショートカットメニューが作成できるということはわかりました。
ありがとうございました。

ただ、VBAでショートカットメニューの作成は敷居が高いので
とりあえずは古いAccessでショートカットメニューを作成してそれを使うことにします。
706名無しさん@そうだ選挙にいこう:2009/07/22(水) 14:39:52
698です。
どうもバグっぽいですね。
みなさんありがとうございました。
707名無しさん@そうだ選挙にいこう:2009/07/22(水) 18:24:10
有用なバグ報告したら次期officeが貰える件
708名無しさん@そうだ選挙にいこう:2009/07/22(水) 18:55:26
by Leena Rao 2009 年 7 月 15 日

今週は週明けからMicrosoftのクラウド・コンピューティングに関連するビッグニュースが連続している。
まず月曜日には、Office 2010のWord、PowerPoint、Excelの無料クラウド版(ウェブ版)をデビューさせた。
今日(米国時間7/14)、Microsoftは、クラウド・コンピューティングのためのOSとして長らく喧伝されてきたAzureのビジネスモデルとリリース時期を明らかにした。
このプラットフォームにはMicrosoft SQL Azureによって利用できるウェブ・ベースのリレーショナル・データベースが含まれる。これは従来の.NETと接続して相互運用が可能だ。
709名無しさん@そうだ選挙にいこう:2009/07/22(水) 20:14:31
まだまだ次のスレには遠いけど、そろそろタイトルの【桐にしとけ】は外さないか?
桐なら〜ってレスを見かけると、それ以上回答しようかなという気がそがれる。
710名無しさん@そうだ選挙にいこう:2009/07/22(水) 20:17:45
970 以降に次スレ建てる & スレ建てた人に一任って事で良いんでない
711名無しさん@そうだ選挙にいこう:2009/07/22(水) 21:28:44
桐にしとくと簡単に解決しちゃうからな
712名無しさん@そうだ選挙にいこう:2009/07/23(木) 08:58:40
>>711
そういうことを言うから桐信者キモイとか言われるんだよな。
俺は桐も使うけどAccessも使う。
特にRDBMSに繋ぐ時は桐は事実上使えない。
パッと作って使いやすいのは桐だけど、
とことん使いやすいフォームを作るとなるとAccessのほうが良い。(手間がかかるが)
さらに突き詰めると各種言語で作成するほうが良くなる。(さらに手間がかかる)
適材適所で使いわけるのがベスト。
桐しか知らないで桐最高って言っているのは勝手だが
Access板にまで来て言うのはさすがに恥ずかしい。
713名無しさん@そうだ選挙にいこう:2009/07/23(木) 10:18:42
Centralize business logic. Data macros allow you to write logic behind tables similar to SQL triggers.
This makes it easier to maintain applications because you can centralize business logic:
714名無しさん@そうだ選挙にいこう:2009/07/24(金) 02:08:48
OS XP
ACC Ver 2002

テーブルAのF1から重複する番号を1つだけ残して削除するSQLを教えてください。
主キーはF2です。
715714:2009/07/24(金) 02:28:16
自己解決しました。

DELETE *
FROM テーブルA
WHERE F2 NOT IN (SELECT Min(F2)
FROM テーブルA
GROUP BY F1);

でも、遅い。レコードセットを回したほうが速そうなので
そちらでやることにします。
716名無しさん@そうだ選挙にいこう:2009/07/24(金) 11:02:20
>>715
まさかと思うけどF1にインデックッスつけているよね?
717714:2009/07/24(金) 13:55:35
>>716
ついています。結局SQLは五分ぐらい。
レコードセットぶん回し(とはいっても重複のみ抽出)は数秒。
比較になりませんでした。
718名無しさん@そうだ選挙にいこう:2009/07/24(金) 23:04:36
>>717
いったい何件のレコードを処理したの?
719名無しさん@そうだ選挙にいこう:2009/07/24(金) 23:22:17
>>714
桐でやれば瞬時、始めから単一化ってコマンドが用意されてる
キモイですか?
720714:2009/07/25(土) 01:06:34
>>718
7000件弱。うち、重複5件(2種、2件と3件)。

>>719
Accessでも「固有の値」を設定すれば同様のことができるようです。
721名無しさん@そうだ選挙にいこう:2009/07/25(土) 01:17:33
>>720
カーソル移動OFFにしてからやらなきゃw
722名無しさん@そうだ選挙にいこう:2009/07/25(土) 03:10:44
JETはサブクエリ使うとかなり遅くなる
723名無しさん@そうだ選挙にいこう:2009/07/25(土) 08:43:23
>>720
> Accessでも「固有の値」を設定すれば同様のことができるようです。

それ、意味違うから
できないからSQL使ったりレコードセット回したりしてんだろ
724名無しさん@そうだ選挙にいこう:2009/07/25(土) 13:55:39
>>719
キモイです
なぜなら単一化をするのが目的ではないし(それだけならAccessでも簡単)、単一化を使って重複データをどう削除するのか
全く回答に結びついてないから
725名無しさん@そうだ選挙にいこう:2009/07/25(土) 14:06:57
桐でやれば瞬時、補集合ってコマンドも用意されてる
単一化して補集合を削除するだけで終わり
キモイですか?
726名無しさん@そうだ選挙にいこう:2009/07/25(土) 14:10:45
キモイから、スルーしようぜ
727名無しさん@そうだ選挙にいこう:2009/07/25(土) 16:57:43
>>725
他のソフトのいいところも分かるし、きちんと説明できるんならまあいいんじゃないの
(しつこいのはいやだけどさ)
728名無しさん@そうだ選挙にいこう:2009/07/25(土) 17:32:59
AccessユーザーがAccessの使い方を聞いてるんだから、それは
おかしいんじゃね。>724 も書いてるけど、何の答えにもなってない。
Accessでの方法を説明した上で、「ちなみに○○だったら××ですね」
とかなら分かるけど。これじゃ単なる未承諾広告でしょ。

というか、725=727くさい。
木同スレでやれ。
729名無しさん@そうだ選挙にいこう:2009/07/25(土) 18:46:30
こんにちは質問です。

今非連結リストボックスが二つあります。
両方とも別々のものを表示するものです。

ですがリスト1を選んだときリスト2を選ばざる終えなくなる選択が
でるので、1が表示されたときに2も対応したのを表示するように
したいのですが、どのようにしたら良いのでしょう?

AならばBみたいな表示にしたいです。
BならばAにはしたくないです。
730名無しさん@そうだ選挙にいこう:2009/07/25(土) 19:33:38
リストAの値を条件に、リストBのソースのクエリを作ってリストAの更新後イベントでリストBをRequeryすればいいんじゃない?
よくあるパターンかと思いますけど、違うイメージなのかな?
731名無しさん@そうだ選挙にいこう:2009/07/25(土) 21:05:18
ん、よく見たら非連結のリストボックスの場合か、ってことは
> リストAの更新後イベントでリストBをRequery
じゃなくて、リストBの「RowSource」をSelect Case文とかで判断して、都度再設定になるのかな?
そもそも、リストBは入力の必要がある時とそうでない時があるなら、リストBの「Enabled」か「Visible」の切り替えも必要かもね
732名無しさん@そうだ選挙にいこう:2009/07/25(土) 22:51:38
>>731
紛らわしくてすいません

A、Bともに絶対選択はします。
どちらかが空白にはなりません。
733名無しさん@そうだ選挙にいこう:2009/07/25(土) 23:25:29
お願いします。

【 システム環境  . 】 WindowsXP SP3, Access2007
【 VBAが使えるか .】 はい
【 VBAでの回答  】 可
【 検索キーワード 】 ???

リストボックスにテーブルから表示させています。
表示だけで、変更してもどこにも反映させません。
そのリストボックスのSelected()メソッドを呼んで選択させたいのですが、反映されません。
フォームのロード時だけに書くと反映されるのですが、フォームのレコード変更時のところに書くと反映されません。
なぜでしょうか。
734名無しさん@そうだ選挙にいこう:2009/07/26(日) 01:10:17
>>733
>リストボックスのSelected()メソッドを呼んで
selectedプロパティを設定ということでいいのか?
>フォームのレコード変更時のところに
このイベントは一体なんなんだ?イベント間違えてない?

エスパー気味な回答であれば、
非連結なフォーム(Recordsauce/Recordsetの設定してないフォーム)は、
Form.AfterUpdateなど、カレントレコードに関するイベントは発生しない。
Form.DataChange/Form.DataSetChangeは、ピボットテーブル用のイベントだから
通常のフォームタイプではイベントは発生しない。
735名無しさん@そうだ選挙にいこう:2009/07/26(日) 01:17:46
反映されませんをNGでほぼ問題なし
736733:2009/07/26(日) 05:49:46
>>734
>>735
早速のレスありがとうございます。
今読むとさっぱり意味がわかりませんね...
すいません...
フォームは分割フォームで、下半分にデータシートビューが表示されています。
連結コントロールをいくつか配置しています。
「フォームのレコード変更時」は、フォームのレコード移動時でした(Form_Currentだったと
思いますが、今Accessが無いので自信がありません)。
ブレークポイントを張ると止まり、テスト的に8項目をリストに追加してMe!リスト.Selected(1)=Trueとしても
値が変わりません(選択されません)。Form_Loadにおくと選択されます。
よろしくお願いします。
737734:2009/07/26(日) 11:36:51
>>733
分割フォームね、ちょっと調子悪いよね。
それね、これでいけるはず。おれと同じところつまずいてるw
意図的にRequeryしてみてなぁ。リストボックスではやったことないけど、
コマンドボタンの活性/非活性はこれで解決した。カレント時なら、
Private Sub Form_Current()
Me.リストボックス0.Selected(1)=True
Me.リストボックス0.Requery '←←ここ
End Sub

他、データシート側での更新によるデータの競合処理の挙動とかおかしいことがあったので
分割フォームの使いどころは、俺的にはかなり限られてるのさ。
738名無しさん@そうだ選挙にいこう:2009/07/26(日) 13:51:20
Accessで何ができるのかまったく判らないので質問させてください。

住所、氏名、電話番号、、受付日時、買い物の金額などをフォームに記載したら明細書ができるようになるプログラムを作りたいのですが
Accessでできるでしょうか?

郵便番号を入れただけで住所がでててきて番地、マンション名などを入れるだけといったようにしたいです。
また買い物金額の単価と数をいれて、配送方法、支払い方法を選んだら支払い合計金額の計算も自動で行ってくれるという風にしたいです。
できればなんですがそのデーターを残して名前など検索をかければ出てくるといったようにしたいです。

そういうソフトが市販されているのは知っているのですが、色々勉強しておけば他の業務を合理化する為のソフトを作れるようになるのではないかと思いまして
質問しました。

739名無しさん@そうだ選挙にいこう:2009/07/26(日) 14:19:33
できるにはできますが、周りに聞く人がいないまま一人でAccessを覚えるのは大変だと思います
業務で使うならば、日々データが溜まっていくと思いますが年間でどの程度の件数になるか予想はつきますか?
件数が少ないならば、あえてAccessは使わずExcelで同様の一覧表を作ってみるのも手です

ちなみに、郵便番号のデータは日本郵便からとれそうですね
http://www.post.japanpost.jp/zipcode/dl/oogaki.html
(ただし全国が対象とすると、データ量が多くてExcelではマスタを持つのが困難でしょうから、Accessの利用がいいのかも...)
740名無しさん@そうだ選挙にいこう:2009/07/26(日) 14:22:29
あれを使うと丁度良いよな
741名無しさん@そうだ選挙にいこう:2009/07/26(日) 14:30:33
>>738
がんばれよー、
とりあえず試用版インストールして、図書館でできるシリーズでも借りてくれば
コスト0でスタートだ

住所入力支援で十分じゃね?
742名無しさん@そうだ選挙にいこう:2009/07/26(日) 14:41:09
ノースウインドそのまま使えちゃいそうな雰囲気だな
743名無しさん@そうだ選挙にいこう:2009/07/26(日) 14:50:40
>>739
レスありがとうございます。

ネットの某ショッピングモールに出店しており用意されている受注管理ソフトで行っていますが、1週間に2,3件程電話注文があります。
商品ページを見たけど注文の仕方が判らないらしく電話で注文をしてきます。。

その時は必要事項をメモで取り後でエクセルのテンプレに記載して明細書を打ち出しています。
このメモを取る業務を省いて電話で聞きながら登録できれば早いなあとおもいまして
あと銀行振り込みや郵便振替などの講座が複数あるのでその入金管理も大変なので融通のきいたソフトが作れたらなあなどど色々考えたりしています。

会社にはかじった位の人はいるのですがそれほど詳しくないので自分で勉強してみようとおもいました。
出来るだけの事は自分でコツコツやって判らない所はまたお世話になろうかと思います。

>>741
会社のofficeにaccessが入っているのでそれを利用しながら図書館か古本でも漁って勉強しようと思います。

住所入力支援だけでもよさそうですが、自分のスキルを上げたいので色々やってみたいと思います。
744733:2009/07/26(日) 18:47:30
>>737
ありがとうございます。

試してまた報告させていただきます。
745名無しさん@そうだ選挙にいこう:2009/07/26(日) 19:31:48
Access2007使用です。

テーブルの表示について
デザインビューとデータシートビューでフィールドの表示順序がずれてしまうことがあるのですが、
これを回避する方法ってありませんか。

と言うのも、データシートビューにて"タブ区切りのテキスト"を張り付けることでデータを入れようと考えています。
作業途中にフィールド表示順序が変わってしまうと作業に支障が出てしまうもので。
746名無しさん@そうだ選挙にいこう:2009/07/26(日) 19:40:41
>>745
バグだなぁ、デザインビューで変更後に頻繁に起こる、特に条件付き書式弄った後
SP2にしたら今のところ起らない
747745:2009/07/26(日) 23:34:27
>>746
SP2入れてデザインビュー操作したら修復できました。
ありがとうございました。
748名無しさん@そうだ選挙にいこう:2009/07/27(月) 01:09:18
ColumnOrderで表示順を指定する方法もある
749733:2009/07/27(月) 10:47:53
>>737
Requery試してみましたが、選択されませんでした。

「Me.リストボックス0.Selected(1)=True」のSelectedのところにマウスカーソル
を持っていくと変数の値がポップアップされますが、この行を通過する前もした後
も0と表示されます。ロード時だと0から―1になります。
何か設定が必要なのでしょうか。
750734:2009/07/27(月) 13:55:05
>>749
一度衝突したテーマなので、試してみたぜぇ。確かに分割フォームだとからっきしだめねぇ
データシート側でのカレント時では動かないっぽいな。フォーム/データシートでのイベント
作動が微妙に違う。データシート位置を変えることで変化に気がつく。
あと試してみるとしたら、設定前にリストボックスをクリアにするくらいだろうか。
ちょっとやってみた範囲ではだめだったけど...その他の手段は思いつかないなぁ.....

A.selectedプロパティを使用(MultiSelectが1 or 2)
 多分全件試験できてないけど、
 単票フォームでは意図した作動をする
 分割フォームでは意図した作動をしない
B.Valueプロパティを使用(MultiSelectが0)
 Value設定後Requeryで、フォーム側データシート側いずれの操作でも意図した作動する
C.コントロールを変更

想像の範囲では、データシートビューで使用できないコントロールについて、同様なこと
が発生する気がしますね。詳細にリストボックスを設置した場合、データシート側では、
コンボボックスに変換されるようだから、Aでは無理かも知れん。
予想してなかったことなんだけど、今回の件で以下の内容が把握できた。
・データシートを上か右にした場合と下か上にした場合でNavigationButtonの親が違う。
・データシート側での操作の場合、データシートに表示されていないコントロールを
 参照できないことがある。
・データシート側/フォーム側のコントロールを区別して参照する方法がわからない。

解決手段はぜひレポートよろしくですよ。
751734:2009/07/27(月) 17:31:05
誰得情報開始
分割フォーム上でデータシート側/フォーム側でのコントロール区別がついた。
Form.CurrentView プロパティで解決
誰得情報終了
752733:2009/07/27(月) 18:13:10
>>750
ありがとうございます。
いまだにできていませんが、できるようになったらまた報告させていただきます。

ちなみに頻繁に強制終了(毎回違うタイミング、場所)するのはなぜでしょうか...
753734:2009/07/27(月) 19:39:52
>>752
分割フォームいじくり倒してた時は、クラッシュしまくりだったよ。
・DefaultViewを変更しない
・データシートビュー用のプロパティを設定しない
・レコードソースをできるだけシンプルにする
・データシート側の更新を許可しない(UI仕様の変更)
・ADO/DAOなどで非連結はできれば避ける
で分割フォームがらみでクラッシュしなくなった感じですわ。どれが要因かわからない。
解決の決定打はわからんが、俺が試した順
1.データベースの最適化/修復
2.新規accdbにインポートして再構築
3.該当フォームの再作成
4.Officeの修復

開発専用ファイルで製造して、無事を確認してからメインでインポートするようにしたら
まぁまぁ大きな事故なく作業できてる。分割フォーム以外でクラッシュは経験ないに等しい。
開発:VistaUltimate(x64)/Mem8GB
主なクライアント:access2007Runtime/XpSP3/Mem2GB程度
754名無しさん@そうだ選挙にいこう:2009/07/28(火) 18:21:08
>>271
まったく同じ現象です。
2007で誰もデータベース構造の解析って使ってないのかな…
755名無しさん@そうだ選挙にいこう:2009/07/28(火) 20:21:18
>>751
それやるなってMSのサイトの何処かに書いてあったような…
確か英語のサイト
756名無しさん@そうだ選挙にいこう:2009/07/29(水) 16:27:11
2010テクニカルプレビューもう日本語版になってるな
757名無しさん@そうだ選挙にいこう:2009/07/29(水) 16:38:25
登録してきた。あとは寝て待つ。
758名無しさん@そうだ選挙にいこう:2009/07/29(水) 19:32:42
2010
起動が早い
レポートで条件付き書式使えるようになってる、コリャァ便利
あと、罫線、つーかテキストボックスの枠線を余白なしで繋げられるみたいな感じ
テーブルイベントも動いた
ヘルプがないので後は解らん

今回の大きな新機能はテーブルイベント
759名無しさん@そうだ選挙にいこう:2009/07/29(水) 19:41:10
>>758
テーブルイベントって、Triggerって感じ?
{after/before}:{insert/update/delete}
行単位でいけるのかしら
760名無しさん@そうだ選挙にいこう:2009/07/29(水) 19:46:13
insert/update/deleteは勿論有るが、beforeは無いと思う
マクロだから行単位ってのは解らん

あと、フォームでデータバー表示ってのがあった
761名無しさん@そうだ選挙にいこう:2009/07/29(水) 19:58:13
テーブルイベント実験したら行単位だった
updateのイベント設定してフィールドデータ置換かけたら全行でアクション生じた
762名無しさん@そうだ選挙にいこう:2009/07/29(水) 20:00:29
Data macros allow you to write logic behind tables similar to SQL triggers.
ってなってっから、Triggerとは別物と考えるべきかな
763名無しさん@そうだ選挙にいこう:2009/07/29(水) 20:03:45
ああ、ゴメン、なんか勘違い、サーバーのSQLupdateと違って自身テーブルエディットだから当然行単位か
ヘルプがないから解らないことだらけ
764名無しさん@そうだ選挙にいこう:2009/07/29(水) 20:33:49
レポートで条件付き書式って昔から使えてなかったか?
765名無しさん@そうだ選挙にいこう:2009/07/29(水) 20:54:21
昔からあった
フォーマットイベント使ってたorz
766名無しさん@そうだ選挙にいこう:2009/07/30(木) 10:30:33
access97使用です。レポートが1〜10あって1のラベルの標題を変更したら残りの9〜10が一括変更になる方法を教えて下さい。前スレに似たような質問があっけど初心者なのでよくわかりませんでした。優しい方、教えて下さい。



767名無しさん@そうだ選挙にいこう:2009/07/30(木) 12:26:20
97のサポートは終了しますた
768名無しさん@そうだ選挙にいこう:2009/07/30(木) 13:44:20
それぞれのレポートのフォーマットイベントで、表題は○○というファンクションを呼び出すのか?
769名無しさん@そうだ選挙にいこう:2009/07/30(木) 14:06:32
>>768
ゴメンなさい素人なもんで、ラベル:[○○○一覧表]っていうのがあってそれが10日おきぐらいに名前が変わるから1〜10までのレポートの変更するのが面倒なんですよ〜。レポート1のデザイン(ラベル)を変更したら10まで変わる方法を教えていただきたいんですが…。
770名無しさん@そうだ選挙にいこう:2009/07/30(木) 14:22:35
>>766
レポート2〜10の開く時イベントでラベルの書き換えをすればいいんじゃない?
レポート1を開いてないとできないかも
97持ってないからできるかわからないけど
771名無しさん@そうだ選挙にいこう:2009/07/30(木) 14:24:00
>>769
[○○○一覧表]の○○○をグローバール変数にしてそのグローバル変数を変えてやればいいのではないか?
772名無しさん@そうだ選挙にいこう:2009/07/30(木) 14:52:44
>>770
>>771

すいません。それってもしかしてコードが必要なんですよね?教えてくれませんか?ウザくてすいません。
773名無しさん@そうだ選挙にいこう:2009/07/30(木) 14:57:14
97のマクロに、値の代入 って無いの?
774770:2009/07/30(木) 15:38:55
>>772
me.LABEL名.Caption = Reports("レポート1").LABEL名.Caption
Captionの前の.以外の.は!にしないとだめかも

何度もあげなくて大丈夫
775名無しさん@そうだ選挙にいこう:2009/07/30(木) 15:39:53
もしかしてVBAを使わないでやれってことか?
そりゃあ無理ではないか?
776名無しさん@そうだ選挙にいこう:2009/07/30(木) 16:40:43
皆様ありがとうございました。自分のような素人には、皆様のレベルについて行けませんでした。勉強不足です。ご迷惑おかけしました。
777名無しさん@そうだ選挙にいこう:2009/07/30(木) 17:55:14
レポートで値の代入って使えるんだったかなあと思って
2007見てみたらなくなっててあせった
「すべてのアクションを表示」を押さないと出てこないのな
なんで隠したの?
778名無しさん@そうだ選挙にいこう:2009/07/30(木) 18:49:48
オブジェクトまたはコントロールにプログラミングを追加するときは、次の優先順位に従って使用を検討する必要があります。

1.データベースを信頼しなくても実行できるアクションのみから構成されるマクロ
2.実行するためにはデータベースを信頼する必要のあるアクションを含むマクロ
3.VBA プロシージャ
779名無しさん@そうだ選挙にいこう:2009/07/30(木) 19:25:29
ありがと
そんな区別があったんだな
1のマクロはセキュリティの警告でコンテンツを無効にしても実行できるマクロってことなのかな

マクロを使うと見通しが悪くなるからどうしてもVBA使っちゃうな
780名無しさん@そうだ選挙にいこう:2009/07/30(木) 23:18:01
マクロか・・・
そう言えばそんなものあったかな?って程度だな。
あんなもの使う理由が見当たらない。
よっぽどVBAのほうがわかりやすい。
781名無しさん@そうだ選挙にいこう:2009/07/30(木) 23:26:48
わざわざ、オマケで付いてるVBのサブセット使って外から操作せんでも、
マクロの方が、簡単・安全・確実・早い、だろ
マクロでできない事は、仕方ないけど

俺は、
レコードセット弄ったり、キーボードインベントとか、以外はマクロでやってるよ
782名無しさん@そうだ選挙にいこう:2009/07/30(木) 23:47:00
釣られないからな
783名無しさん@そうだ選挙にいこう:2009/07/31(金) 00:00:02
すんでのところで >>782 に救われた。
784名無しさん@そうだ選挙にいこう:2009/07/31(金) 18:30:51





MaxRecordsプロパティ
785名無しさん@そうだ選挙にいこう:2009/07/31(金) 18:42:26
>>776
桐でやってごらん
たぶん簡単にできる
786名無しさん@そうだ選挙にいこう:2009/08/01(土) 00:26:43
【 システム環境  . 】 WindowsXP, Access2000
【 VBAが使えるか .】 いいえ
【 VBAでの回答  】 否
【 検索キーワード 】 集計、集計クエリ、合計

「日付」 「担当者」 「原価」 「売値」 という4つのフィールドがあって
「7/15以降の担当者別売り上げ合計」を出そうと思った時にどうすれば良いのでしょう?

「Σ」を押して
「日付=グループ化 抽出条件:>7/15」「担当者 グループ化」「原価 合計」「売値 合計」にすると
日付ごとの担当者別売り上げ合計は出るのですが、この「日付ごと」がいらないのです。
担当者ごとに1行だけ「総計」を出したいのです。

しかし抽出条件を「日付>7/15」に設定するために「日付」のフィールドを出しているため
日付ごとのデータになってしまいます。日付を「非表示」にしても日付フィールドが表示されないだけで
日付ごとのデータになってしまう点は変わりません。

抽出条件として日付を設定しながら、日付ごとではなく総計でデータを出すにはどうすればよいのでしょう?
787名無しさん@そうだ選挙にいこう:2009/08/01(土) 01:12:46
where条件。min, first とかでも。
788Access2010-1:2009/08/01(土) 19:30:09
*New! Web Database
Create your database in Access and publish it to the Web. Your database, including data, forms and reports, can be opened via a browser. Share it with your co-workers and friends over the Web.
? Click the Office button on the Ribbon to open Backstage view. Click New and then click Blank Web Database.
Note: This feature requires Microsoft SharePoint Server 2010 to publish and share a Web database.
*New! Navigation Form
Create navigation forms for your database without writing any code or logic. Simply drag-and-drop, and specify forms or reports to display.
? Start with an open database. On the Create tab of the Ribbon, in the Forms group, click Navigation to view a list of available navigation layouts.
Bring Ideas to Life
*New! Macro Designer and Improved! Expression Builder
New and improved tools make it easier for you to build out logic and expressions in the database.
For Macro Designer:
? Start with an open form. On the Create tab, in the Other group, click Web Macro or Advanced Client Objects, and then click Client Macro.
For Expression Builder:
? Start with an open table. On the Table Tools Modify Fields tab, in the Fields & Columns group, click Calculated Field.
*New! Application Parts
Save time and effort by re-using database parts built by others for your database.
? Start with an open database. On the Create tab, in the Templates group, click Application Parts.
*New! Data Macros
Use Data Macros to attach logic to your data ? centralizing the logic on the table, not the form. Write your logic with ease using Macro Designer and make it snappy with Data Macros.
? Start with an open table. On the Table Tools Modify Fields tab, in the Table Logic group, click Create Table Events.
789Access2010-2:2009/08/01(土) 19:31:30
*New! Office themes
Easily apply consistent, professional designs across your Access databases using Office themes.
? Start with an open form or report. On the Home tab, in the Views group, click View and then click Design View or Layout View.
? The Form (or Report) Layout (or Design) Tools tabs appear automatically, based on your view.
? On the Design tab, in the Themes group, click Themes.
*New! Web Browser control
The Web Browser control is great for enabling Web 2.0 content integrated inside an Access Form.
? Start with an open form. On the Home tab, in the Views group, click View and then click Layout View or Design View.
? The Format Layout (or Design) Tools tabs appear automatically, based on your view.
? On the Design tab, in the Controls group, find controls including the Web Browser Control, Label, Button, List Box, Tab Control, and Subform/Sub Report.
790Access2010-3:2009/08/01(土) 19:32:53
*New! Data bars
You can create rich and dynamic reports that support Data Bars and rich Conditional Formatting to gain insight on the data.
? Start with an open report. On the Home tab, in the View group, click Design View or Layout View.
? Select a numeric field. On the Report Layout (or Design) Tools Format tab, in the Control Formatting group, click Conditional Formatting.
? In the Conditional Formatting Rules Manager dialog box, click New Rule. Then, in the New Formatting Rule dialog box, under Select a rule type, click Compare to other records.
*Improved! Spot trends quickly to gain insights in Microsoft Access 2010.
Now you can apply Conditional Formatting to your Access 2010 reports. Both you and your audience will more easily spot trends, helping you make better decisions.
? Start with an open report. On the Home tab, in the Views group, click View and then click Design View or Layout View.
? The Report Design (or Layout) Tools tabs appear automatically. Select a control and then, on the Format tab, in the Control Formatting group, click Conditional Formatting.
*Improved! Pre-built database templates
Find templates that you can start using without customization on Microsoft Office Online. You can also select prebuilt Community-Submitted database templates and customize them to meet your needs.
? Click the Office button to open Backstage view. Click New and then search Office Online for templates.
*New! Backstage view
The Backstage view replaces the File menu to help you get to the tasks you need and complete your work more efficiently. With Backstage view, you get a single location for essential information
about your database such as permissions and version information. You can also find new and existing templates, and sharing options including print, online and e-mail.
? Click the Office button (which appears to the left of the Home tab on the Ribbon) to open Backstage view.
791Access2010-4:2009/08/01(土) 19:34:09
*Improved! Ribbon
Find the right commands quickly so you can focus on results. Ribbon tabs can now be customized or replaced with your own custom tabs. Through the Options menu in Backstage view,
you can easily create new tabs that bring together your favorite commands and groups. Existing tabs can also be customized to fit your needs.
? The Ribbon replaces the menus and toolbars and is located along the top of your screen

**Enable Teams to Work Together More Effectively
*New! Web Services connection and support for Microsoft SharePoint 2010 Business Connectivity Services (BCS)
You can now connect to data sources via Web service protocol. Include Web services and line-of-business applications data right in the applications you build.
For Web Services connection:
? Start with an open database. On the External Data tab of the Ribbon, in the Import group, click Web Service.
For Business Connectivity Services:
? This feature is configured in SharePoint Server 2010.
*Improved! Data caching and synchronization
This feature has been improved to enable you to take a Web database into offline mode. Any changes made in offline mode are automatically synchronized with the master database on the server.
? Open any Web database that has been published to SharePoint Server 2010 and then make changes to data, forms or reports.
? Click the Office button to open Backstage view and then click Sync All.
? To sync changes back, click Sync All.
Note: This feature requires SharePoint Server 2010 and is enabled after publishing to SharePoint
792Access2010-5:2009/08/01(土) 19:34:50
**Anywhere Access to Your Work
*New! Get access to the database from virtually anywhere
You can now access, save and edit data from your desktop application, Web browser, or Smartphone.
? With an Access database open, click the Office button to open Backstage view. Click Share and then click Publish to SharePoint.
Note: This feature requires Microsoft SharePoint Server 2010 to share it as a Web Database.
793名無しさん@そうだ選挙にいこう:2009/08/01(土) 21:26:22
sharepointを推してきてるんかのぉ
794名無しさん@そうだ選挙にいこう:2009/08/01(土) 22:02:57
【 システム環境  . 】 WindowsXP, Access2003
【 VBAが使えるか .】 可 ( 初心者ですが)
【 VBAでの回答  】 可
【 検索キーワード 】 AccessのテーブルからExcelへの値移行

すみません、失礼します。

現在顧客向け商品台帳を作ろうとしています。
作りたい内容としては、フォームのボタンをクリックすると、
同データベース内指定のテーブルにある値を,指定した
Excel内の指定したセルへの挿入です。
マクロを使い指定したExcelまでは起動するのですが、
その後上手い事テーブル内のデータをエクセルへ挿入出来ません。

始めは下のようなコードを書いたのですが、フォームのテキストから
しか値が移りませんでした。(rsはエクセル行の変数で繰り返し
処理に使おうと思っています)
oApp.Range("C" & rs).Value = Me!JANCD

どうやったらExcelの指定のセルへテーブルのデータを移行出来るでしょうか。
宜しくお願い致します。
795名無しさん@そうだ選挙にいこう:2009/08/01(土) 22:16:07
>>794
Me!JANCDだとカレントレコードを参照してるからその通りだね。
DAOとかADOでRecordset使う処理が必要なんじゃねか?
796名無しさん@そうだ選挙にいこう:2009/08/01(土) 22:26:05
>>795

  .r==x r==x
          /三/.|/三/ |
         (三(/(三(/_/
          l ̄¨'| ̄ ̄¨|
          l;::::::::|:::::::::::::l
          l;::::::::|:::::::::::::l
          l;::::::::|:::::::::::::l
          l;::::::::|:::::::::::::l
          l;::::::::|:::::::::::::l
          l;{==}!::{==}:::l
         r|:::::::::::::::::::::::|
       _ノ  ̄`ー--、,;;l~ヽ
     ,∠==、ヽ `i'ー- .     l
    /    ヽ| 「`'ー、`ー、 .ノ
     l     ミ| /   `ー、ヽ
  /j     R|イ ー-ァ、.  Y゙  
  { [`ュハハハr''~] ̄ ___ノ  

ご指摘の通りにDAOを入れたら出来ました!!
有難う御座います!!本当に有難う御座いました!
797名無しさん@そうだ選挙にいこう:2009/08/01(土) 23:31:01
>> 786
787 の人も書いているように
「日付=グループ化 抽出条件:>7/15」のところを
「日付=Where 条件 抽出条件:>7/15」にすればOK
798名無しさん@そうだ選挙にいこう:2009/08/02(日) 15:33:22
windowsXPでaccess2000です。
VBAからaccess自体のwindowの位置や幅や高さの設定は可能でしょうか?
ちょっと分け合って、FORMのサイズがさまざまで、出来ればそれにそって
accessのwindowのサイズも変更したいのです。
よろしくお願いいたします。
799名無しさん@そうだ選挙にいこう:2009/08/02(日) 18:25:38
>>798
Windows APIを使用でよいと思います
800名無しさん@そうだ選挙にいこう:2009/08/03(月) 18:56:32
ACCESS 2007+Vistaです。
ADOでレコードセットを開く時にIN演算子の引数として既存のレコードセットのフィールドを使いたいのですが
どうやったらいいのでしょうか。
よろしくお願いします。
801名無しさん@そうだ選挙にいこう:2009/08/03(月) 20:21:34
>>800
GetRowsで配列化してIN句書き出すってのはどうだい?
802801:2009/08/03(月) 20:26:10
よく考えたらGetRowsでなくてもIn句書きだせるなw
803801:2009/08/03(月) 20:29:15
ん、In演算子か。。。ま、どっちでもいいか
連カキコすまん
804800:2009/08/03(月) 20:46:15
>>801
ありがとうございます。
教えていただいたのは配列もしくはレコードセットを回して
引数の文字列を作るということでしょうか?
希望としては配列そのものを指定するような感じで
簡単にできればいいなあと思っていたのですがダメですかね。

IN句でレコードセットに接続できるという意味じゃないですよね?
配列苦手なんで全然意図を理解できてないかもしれません。
ちょっと配列の勉強してきます。
805名無しさん@そうだ選挙にいこう:2009/08/03(月) 21:11:07
レコードセットのソースに設定したSQL分(あるいはクエリ)を、IN句として設定したいSQLのサブクエリとして指定してやればいいんでないの?
806801:2009/08/03(月) 21:29:08
>>804
×句 → ○演算子
1次配列ならJOIN関数使えそうだがな、、、
GetRowsが2次配列になるわ

>>805
Recordsetのフィールドがひとつとは限らんだろ
807名無しさん@そうだ選挙にいこう:2009/08/03(月) 21:52:10
>>806
>805 じゃないけど、Recordsetのフィールドがひとつじゃないとも限らんから、
むしろあって当然のレスだと思ったが。
808名無しさん@そうだ選挙にいこう:2009/08/04(火) 01:44:50
わたしはマジカルティーチャー ぱすてるIn句
809800:2009/08/04(火) 08:24:04
みなさん、ありがとうございます。
副問い合せで生成するのが一番シンプルそうですね。
新しく作るレコードセットと既存のレコードセットが
違うコネクションなんでできれば再利用したかったんです。

副問い合せとレコードセットを回す方法で実験して比較してみようと思います。
ありがとうございました。
810名無しさん@そうだ選挙にいこう:2009/08/04(火) 17:21:03
すみません、質問です。

Access97をwinXPで利用していました。
PCをvistaに変えたらAccess97をインストールできなくなってしまい困っています。
Access2007で97のファイルを開くこともできずどうしていいのかわかりません。

是非お分かりになりましたら教えて頂きたいです。
宜しくお願いします。
811名無しさん@そうだ選挙にいこう:2009/08/04(火) 17:34:46
>>810
これはどう?
Windows Vista で Access 97 ファイル形式のデータベースを Access 2007 ファイル形式に変換できないことがある
ttp://support.microsoft.com/kb/942394/ja

試す場合はバックアップを忘れずにね
812810:2009/08/05(水) 09:27:24
>>811
ありがとうございます!
バックアップしてから早速試してみます。
813名無しさん@そうだ選挙にいこう:2009/08/05(水) 15:55:11
Windows2000&ACCESS2000です。

全てVBAで組んでます。
フォームからレポート1をプレビュー表示。
レポート1を閉じるとき、Closeイベントでレポート2をプレビュー表示。
ここでレポート2がフォームの裏に隠れて表示されてしまいます。

レポート2を最前面に表示する方法はありますか?

Win32APIを使うとできそうなのですが、レポート2を閉じるときACCESSが不正終了が起きました。
ttp://www.accessclub.jp/bbs3/0189/superbeg61606.html

対応方法をご存じの方、ぜひ教えてくださいm(_ _)m
814813:2009/08/05(水) 16:27:12
自己解決〜
フォームのActivateイベントでレポート1が閉じられた場合レポート2を開くことで
レポート2を最前面に表示できやした〜
815名無しさん@そうだ選挙にいこう:2009/08/06(木) 17:02:43
Access2007を使っています。
フォームのサイズを外側のウィンドウに合わせたサイズにしたいと思います。
最大化ではありません。
Accessの内側のエリアのサイズを取得出来れば
DoCmd.MoveSize で大きさを設定できると思うのですが、内側のエリアのサイズは取得できますか?
816名無しさん@そうだ選挙にいこう:2009/08/06(木) 17:41:49
access2007のデザインビューでサブフォームの中をクリックすると、
画面の動作が1秒くらい止まってから中のオブジェクトを触れますが、
これって何か原因はあるのでしょうか?
817名無しさん@そうだ選挙にいこう:2009/08/06(木) 17:49:22
Access2007です。
フォームの印刷で、Excelのように「次のページ数に合わせて〜」っていう
ようなことはできないのでしょうか?
818名無しさん@そうだ選挙にいこう:2009/08/06(木) 18:01:02
>>815
2007持っていないから違うかもしれないが、フォームのポップアップをいいえにすれば
最大化でいけるんじゃないのか。
819名無しさん@そうだ選挙にいこう:2009/08/06(木) 18:13:17
>>815
最大化したいのでなければ
Form.WindowTop
From.WindowLeft
で、該当フォーム左上の相対座標とれる
WindowsAPIでaccess本体のwindowsize取得すればいいのではないかな
フォームを複数並べるのに使った気がする。

>>816
違うかもしれないがSP2入れて改善したかしれん

>>817
機能としてはねーよ。
勉強して作ればいい
820名無しさん@そうだ選挙にいこう:2009/08/07(金) 00:03:28
access初めて触ったのですが
フォーム、VBAの使いこなし方が詳しく解説されている
2007でお勧めの本ありませんか
821名無しさん@そうだ選挙にいこう:2009/08/07(金) 01:43:22
2010いいかもだな。基本的に動作が軽快だ
runtimeでたら乗り換えるぜ

>>820
ぶっちゃけググればテキストいらんかもだけど。。
サンプルコードがたくさん載ってるのが永く使える気がする
822名無しさん@そうだ選挙にいこう:2009/08/07(金) 07:05:41
web対応になってるからruntime出ないと見た
823815:2009/08/07(金) 08:54:53
>>818
最大化したいフォームと最大化したくないフォームがあって、最大化したくないフォームを開くと
最大化していたフォームの最大化が解除されてしまいうっとうしいので
最大化ではなくウィンドウの大きさの変更をしようと思いました。

>>819
WindowsAPIは敷居が高いですががんばって調べて見ます。
824816:2009/08/07(金) 08:57:12
>>819
SP2は当ててます。原因がハッキリとわからないのがつらいところです。
825名無しさん@そうだ選挙にいこう:2009/08/07(金) 10:56:41
はじめまして。環境はWindowsXP SP2、Access2003です。

AccessではVBAで組んだプロシージャのうち1つだけを実行することは
できますでしょうか?

ExcelではAlt+F8を押すとマクロウインドウが出てきて、
VBAで組んだプロシージャ(Private Subは出てこない)がズラっと表示されて、
どれか1つを選択して単発で実行できますよね。

ですが、AccessではAlt+F8を押してもマクロウインドウが出てきません。
ExcelのAlt+F8に変わるものはAccessには無いのでしょうか?

よろしくお願いいたします。
826名無しさん@そうだ選挙にいこう:2009/08/07(金) 11:11:43
Alt+F11
827825:2009/08/07(金) 11:52:34
>>826
ありがとうございます。
Visual Basic Editor画面でF5で、同じようなウインドウが出ました。
ありがとうございました。
828名無しさん@そうだ選挙にいこう:2009/08/07(金) 13:29:23
>>821
ありがとうです。探してみます
829名無しさん@そうだ選挙にいこう:2009/08/07(金) 22:49:48
ベテランの皆様方にご相談です。

Access2003をクライアント、Oracleをサーバとしたクラサバシステムを構築しようとしています。

機能数が多いこととメンバ間で業務知識に差があるため、画面担当とビジネスロジック
担当に分けようと思っています。
※AccessVBAについては全員標準装備

そこでAccessでMVCアーキテクチャのコーディングスタイルってないですかね?

通常ならJava等で開発するところなんですが、エンドユーザの強い希望でAccessは
はずせないのです。

アドバイスよろしくおねがいします。
830名無しさん@そうだ選挙にいこう:2009/08/07(金) 23:31:37
VSSでできるんやろか
831829:2009/08/08(土) 00:16:53
>>829 です。

MVCというともしかして語弊があったかもしれません。
ビジネスロジックと画面周りが明確に分離されるスタイルという意味です。

また下記方針が決定しています。

・Oracleへのアクセス部分についてはDAOとして分離
・DAO呼び出しはビジネスロジックのみ、フォームからDAO呼び出し禁止
・標準モジュールの使用は極力ひかえ、クラスモジュールを中心に実装
・VSSアドインにより、共同作業の効率化および履歴管理実施

引き続きアドバイスよろしくです。
832名無しさん@そうだ選挙にいこう:2009/08/08(土) 00:27:13
>また下記方針が決定しています。

>・Oracleへのアクセス部分についてはDAO

ここで読むのをやめたわ
833名無しさん@そうだ選挙にいこう:2009/08/08(土) 00:49:16
>>829
この板でそんな質問するだけ無駄
つーかAccessごときでMVCとか(ry
834名無しさん@そうだ選挙にいこう:2009/08/08(土) 22:41:32
結合クエリなんだけど
  時刻   内容
A 10:35:52 あ
B 10:35:30 い
C 10:36:03 う

の3つのデータがあるとして、時刻を元に、
  時刻  内容1 内容2 内容3
A 10:35  あ    い   う
と統合したい。
AとBは秒以外同じ、BとCは分まで違うが、1分以内は同じとしたい。

どういう風に組めば良いですか?

時刻、日付の実態が、日付が整数部分、時刻が小数
として格納されており、ゆえに近いけれど異なる数字なのは理解してます。
835名無しさん@そうだ選挙にいこう:2009/08/08(土) 23:16:31
>>834
A 10:35:52 あ
B 10:35:30 い
C 10:36:03 う
D 10:36:29 え

この場合はどうなるの?(B〜Dは1分以内)
あと、内容1、内容2…内容99、内容100とかになったりしない?
836名無しさん@そうだ選挙にいこう:2009/08/08(土) 23:22:21
>>835
数値の取り込みタイミングが違う二つのデータベースを統合するのが目的。
機械の特性状、10分以内に同じデータが入ることは無いんです。
エラーが無ければ、統合するデータは一対一になります。

けど、取り込みタイミングが違うので、時刻が必ずずれて困ってます。
Aと程度の差が大半なのですが、AとCをくっつけたいとも思うわけです。
837名無しさん@そうだ選挙にいこう:2009/08/08(土) 23:26:24
テーブル1
  時刻   内容
A 10:35:52 あ
D 10:45:29 え
テーブル2
  時刻   内容
B 10:35:30 い
C 10:46:03 う

統合後
E 10:35 あ い
F 10:46 う え
こんな感じが目標。AとかBとのような固有名称は実際には存在しません。
838名無しさん@そうだ選挙にいこう:2009/08/08(土) 23:47:11
SELECT Format(T1.時刻,"hh:nn") AS 時刻, T1.内容 AS 内容1, T2.内容 AS 内容2
FROM テーブル1 AS T1, テーブル2 AS T2
WHERE T2.時刻 Between DateAdd("n",-5,T1.時刻) And DateAdd("n",5,T1.時刻);
839名無しさん@そうだ選挙にいこう:2009/08/09(日) 01:01:57
>>838
サンクス。出来たよ。
SQLでこういうことも出来るのね。凄い。
840名無しさん@そうだ選挙にいこう:2009/08/09(日) 01:10:54
>機械の特性状、10分以内に同じデータが入ることは無い

>テーブル1
>  時刻   内容
>A 10:35:52 あ
>D 10:45:29 え  ←これ、10分以内だけど合ってます?

もし、本当に10分以内にデータが取り込まれることがないのでしたら
>>838さんのSQL文でいい線までいけるのではないでしょうか?
(Between句の5分前〜5分後という時間指定の部分の調整は必要かも)
841834:2009/08/09(日) 02:14:35
>>840
レスサンクス。

確かに±5分の部分に関しては調整が必要かも。
実際のデータベースには、エラー(中身があるが、存在すべきでないデータ)
が沢山あって、除去の方法も考える必要があります。
10分は適当な数字で、実際は運搬リフトの周期が律速になります。

実際に運用してみてどうなるかですね。
数が多いので検証が極めて厳しいけど。
842名無しさん@そうだ選挙にいこう:2009/08/11(火) 09:09:20
あるテーブルAには主キーがあって
key
1
2
というデータが入っています。別のテーブルBには
key
1
2
3
というデータが入っています。
Docmd.Runsql "insert into A(key) select key from B"
とするとデータが重複している旨のメッセージが出ます。その際に続行すると、
1,2は重複しているのでinsertされませんが、3はinsertされます。

こういうやり方をすると差分データを取得出来ると思うのですが、これって問題になることありますか?
insert into A(Key) select B.Key from B Left join A on B.Key = A.Key where A.Key is null
って書けばいいのでしょうが、手軽なのでつい使ってしまいます。
843名無しさん@そうだ選挙にいこう:2009/08/11(火) 11:05:47
問題ないとおもう。

なお、Docmd.Runsql はいちいち警告がでるから

CURRENTDB.Execute を使うほうがいいだろう。
844名無しさん@そうだ選挙にいこう:2009/08/11(火) 12:06:17
警告を一時的に無効化したいのであれば、
 DoCmd.SetWarnings False
 DoCmd.RunSQL "INSERT INTO 〜"
 DoCmd.SetWarnings True
でもいいでしょう
845名無しさん@そうだ選挙にいこう:2009/08/11(火) 13:33:24
>>843
一時期そっちを使ってたこともありました。
が、>>844のやり方でやるとデバッグの時にDoCmd.SetWarnings Falseを
コメントアウトしてSQLの実行結果が見えるのが便利だなと思って使ってます。
前スレだったかもしれませんが、非同期だから結果がどうのって話もありましたが
便利なので使ってしまします。

>>842のようなやり方をする人もいるということで少し安心しました。
846名無しさん@そうだ選挙にいこう:2009/08/11(火) 21:12:28
デバッグモードでステップ実行すると全然問題ないのに
普通に実行するとおかしくなるんです!(><;)

とか、どうせまた忘れた頃に同じ質問繰り返すんだろうな・・・
847名無しさん@そうだ選挙にいこう:2009/08/12(水) 20:59:20
windows xp + access2000 です。

画面Aと画面Bがあります。
Aは一覧でBは一覧で選んだデータの更新用フォームです。
AもBもテーブルやクエリと直結してます。
Aの一覧のレコード(コントロール)をダブルクリックすると
Bを開きます。Bはダイアログにしていてモーダルで開きます。
Bで更新して終了するとBが閉じるんですが、そのタイミングでAの一覧の内容も
更新したいので、BのClose時にAのrequeryをやってます。
そうするとAの一覧は更新されるんですが、カーソル行が1行目に戻ってしまいます。
カーソル行をもとの維持で保持できないものでしょうか?

848名無しさん@そうだ選挙にいこう:2009/08/12(水) 21:53:12
>>847
Requeryするとcurrentrecordは先頭に移りますので、当然の動作ですね。
カーソルを維持する方法としてはいくつかあると思うんですが、
Bオープン時にbookmarkかkeyを取得しておいて、Bクローズ時に取得済bookmarkか
Keyを用いてレコードを移動する操作で実現かな。
もしくは、Resyncって使えなかったっけか?
849名無しさん@そうだ選挙にいこう:2009/08/12(水) 22:41:00
>>847
今試してみたけど、Requeryしなくても表示は更新されたよ?
必要ならRequeryじゃなくてRefreshしてみたら?
850847:2009/08/12(水) 22:51:57
>>849
ありがとうございます。
うーん、なんででしょうね。。。
requeryしないと更新されないんですよねえ。。
ちなみにrefreshしても駄目でした。

なので >>847 で教えていただいたとおり
bookmarkを使用する方法でなんとか思い通りに動きそうです。

あ、ちなみに僕が昔使ったアクセスのものも、requeryしてないのに
表示が更新されるやつもあります。何が違うんでしょうね。
851名無しさん@そうだ選挙にいこう:2009/08/12(水) 22:55:13
良く解ってないなら
requery
repaint
recalc
refresh
全部試せ
852848:2009/08/13(木) 01:11:34
>>847
Aが更新されないっつーから、Aに連結してるのは集計か複雑な結合してるクエリかと思ってたんだが、、、
853名無しさん@そうだ選挙にいこう:2009/08/13(木) 19:22:39
B自身をrefreshしないと更新されないんじゃないか?
854名無しさん@そうだ選挙にいこう:2009/08/13(木) 20:56:20
とあるレポートを作っています。

レポートのレコードソースは非常に単純なものです。問題なのは、そのレポートは
登録IDでフィルタするので、必ず1枚だけで2枚目のないことです。

さて、ボタンを押すと今見ているレコードの登録IDでフィルタしたレポートが出てくる
のですが、そこには、最大で2個の地図が表示されます。このプログラム自体が、
その登録IDに二つサブレコードを登録できるのです。

それぞれのレコードの住所をWebAPIを用いて緯度経度に変換、Google Maps API
を使ってレポートに貼り付けた画像コントロールがダウンロードした画像を読みに行く
ことで表示しています。

しかし、2つ目のレコードも同じ画像が表示されてしまいます。
登録ID+サブレコードID.jpgとかやればいいのかもしれないが、うまく表示されません。
どうしたら表示できますか
855名無しさん@そうだ選挙にいこう:2009/08/13(木) 22:40:09
Google Maps APIは、Premierの方?
それともフリーの方?
856名無しさん@そうだ選挙にいこう:2009/08/13(木) 22:56:50
>>855
フリーです。

画像ダウンロード、それをコントロールが読み込み は、1個目はちゃんと
大丈夫なんですが、1レポート二個ある場合、二個目が間に合わないのか
灰色に・・・・

二個ちゃんとその住所の画像をダウンロード完了したら、レポート起動とか
すればいいのかもしれませんが、このwaitを掛ける方法がよーわからんの
です。
857名無しさん@そうだ選挙にいこう:2009/08/13(木) 23:13:19
>>854
スレチ内容なんだけど、それってAPI利用規約はセーフなの?
858855:2009/08/14(金) 01:00:50
>>857
漏れもそこが気になって。
フリーなら、ライセンス上はイントラ利用不可、誰でも利用できるよう
公開する義務があるので、URLキボンヌ。

DLしたら、なんかアドバイスできるかもしれん。
859名無しさん@そうだ選挙にいこう:2009/08/14(金) 22:40:58
>>858
OK

じゃぁ、公開できる形でちょっとコード書き直す場所があるから待ってくれ。
860名無しさん@そうだ選挙にいこう:2009/08/15(土) 11:00:28
質問です。
テーブルAとBがあり、それぞれフィールド名が1、2、3とあります。
1と2が一致した場合にテーブルAの3をテーブルBの3に足したいのですがクエリでできますか?
SQLを覚えないとできないでしょうか?
861名無しさん@そうだ選挙にいこう:2009/08/15(土) 13:54:49
>>860
普通にクエリデザイナ上で簡単に作れますよ。
どの辺りが分からないのかな?

[B].[F3]を、[B].[F3]+[A].[F3]で更新すればOKです。
862名無しさん@そうだ選挙にいこう:2009/08/15(土) 15:07:01
コントロール レイアウト は一度スペースとか弄るとグチャグチャになって最初からやり直しか?
863名無しさん@そうだ選挙にいこう:2009/08/15(土) 17:16:37
>>861
> 1と2が一致した場合に
ということだから、iif文で書かないとね

それよりも、テーブルAとBの各行を何の項目で(等価)結合条件とするかが
式以前に肝心な部分なんじゃないの?
864名無しさん@そうだ選挙にいこう:2009/08/15(土) 17:51:59
>>863
結合条件が、[A].[F1]=[B].[F1] And [A].[F2]=[B].[F2] って事じゃないの?
まぁ、いいけどさ。
865名無しさん@そうだ選挙にいこう:2009/08/15(土) 19:16:45
age
866名無しさん@そうだ選挙にいこう:2009/08/15(土) 23:06:04
まあキーなしテーブルで更新不可クエリになってどうすればいいでしょう?に一票
867名無しさん@そうだ選挙にいこう:2009/08/16(日) 12:18:27
OS:XP access2002
こちらのttp://www.friendlysw.com/knowhow/SamplesDownloads110.asp#04222001
ドラッグ&ドロップで座席を予約するサンプルデータベース (その3)
を使い、病院のベット管理を行いたいんですが、
フォームを閉じると入力したデータが消えてしまいます。
どのように設定すればよろしいでしょうか?
868名無しさん@そうだ選挙にいこう:2009/08/16(日) 13:01:29
>>867
見てみたけど、データの入力が生じないフォームになってるけど

> 入力したデータが消えてしまいます。
なにか入力できたの?
869名無しさん@そうだ選挙にいこう:2009/08/16(日) 13:31:18
>>864
最初の質問内容からは、さすがにそこまでは読み取れませんね
質問者ももう少し具体的に書いてくれればいいのにさ
870名無しさん@そうだ選挙にいこう:2009/08/16(日) 13:54:19
>>868
表現が悪かったです。
前回ドロップした情報を次回開く時に引き継ぐにはどうしたら良いのでしょうか
でした
871名無しさん@そうだ選挙にいこう:2009/08/16(日) 14:05:01
>>870
フォーム閉じるときに、ラベル1A〜6Bのcaptopnを保存する
フォーム開くときに、読み込む
872名無しさん@そうだ選挙にいこう:2009/08/16(日) 16:12:31
フィールド名が1とか2とかの時点で放置を決め込んだ俺の勝ち
873名無しさん@そうだ選挙にいこう:2009/08/16(日) 16:21:38
>>871
勉強不足の為、”captopn 保存” とかでぐぐったりしたのですが良くわかりませんでした。
すいません。。。ありがとうございました。
874名無しさん@そうだ選挙にいこう:2009/08/16(日) 17:16:45
>>873
captionの打ちまちがいだと思うよ。
ラベル名でもいいと思うけど。
875名無しさん@そうだ選挙にいこう:2009/08/16(日) 18:10:01
ごめん、caption だ
876名無しさん@そうだ選挙にいこう:2009/08/16(日) 18:20:28
captionで検索してもいまいちわかりませんでした。すいません
フォームを閉じるときにラベルのcaptionを保存するとは、
どこら辺を触れば良いのでしょうか・・・。
VBAとか理解しないと分からないですかねこれ
877875:2009/08/16(日) 18:24:21
>>876
お詫びのしるしに、
http://www.accessclub.jp/bbs3/0248/superbeg78000.html

> VBAとか理解しないと分からないですかねこれ
たぶん、難しいんじゃないかなぁ

まず、対象のmdbをシフトキー押したまま起動して中身覗いて、どうなってるか理解できなければ…
878862:2009/08/17(月) 15:51:59
>861、863、864
遅くなってすいません!
ご教授ありがとうございます。
使用するのは更新クエリですよね?
IIF文はわかるので更新クエリを少しいじります。
当方土曜日仕事してましてやりたい事自体は追加クエリを使って形にはなりましたがスキルアップ考えると覚えないといけない事なのでまた迷いましたら質問させて下さい。
明日からまた仕事なので明日以降ですね。
ありがとうございました。
879名無しさん@そうだ選挙にいこう:2009/08/17(月) 17:19:47
WindowsXP Access2003

下宿物件の管理をしようと思っていて、
フォームに最寄り駅を入力したら自動でその最寄り駅のID入力がされるようにしたいのですが、
どのようにしたらいいでしょうか?(最寄り駅とIDはあらかじめテーブルに用意しています)
ヒントをください。よろしくおねがいします
880879:2009/08/17(月) 17:25:53
881名無しさん@そうだ選挙にいこう:2009/08/17(月) 17:28:08
>>879
dlookup。
882881:2009/08/17(月) 17:45:16
物件管理番号=路線駅名コードでいいのなら
最寄り駅の更新後処理で
Me!物件管理番号 = DLookup("路線駅名コード", "路線駅名コード", "最寄り駅 = '" & Me!最寄り駅 & "'")

Dlookupの最初の路線駅名コードはフィールド名、2つ目はテーブル名な。
883879:2009/08/17(月) 18:34:53
>>881
早いレスポンスどうもありがとうございます。

早速試してみます。
884AB♂天秤:2009/08/17(月) 21:09:48
>>879
俺の場合、クエリを使う。

クエリでひもつけにしておくやり方が多い
885879:2009/08/18(火) 00:06:04
>>884
レスありがとうございます。調べてみます。
886名無しさん@そうだ選挙にいこう:2009/08/18(火) 03:46:58
>>883=879
>フォームに最寄り駅を入力したら自動でその最寄り駅のID入力がされる

別解として、[コンボボックス]コントロールを使用する方法もありますね。
・駅名入力欄をコンボボックスにする。
・値集合ソースを[最寄り駅テーブル]に設定
・ComboBox.ItemData(ComboBox.ListIndex)でIDの取得が可能

コンボボックスの各種プロパティはヘルプで確認して下さい。
この方法の場合、最寄り駅テーブルに存在しない値を入力させない等の
設定も可能です。
887名無しさん@そうだ選挙にいこう:2009/08/18(火) 05:51:46
>>889
600件以上でコンボボックスやリストボックスは無理があるだろうと思って
それに言及していないのでは?
テーブル構造を見た限り、都道府県で絞り込みもできないし。
888名無しさん@そうだ選挙にいこう:2009/08/18(火) 05:52:36
>>886の間違い。
889AB♂天秤:2009/08/18(火) 07:22:25
>>887
入力補完があるから、そうでもないっしょ。

カナでソートしておけばなんとかなる。
890名無しさん@そうだ選挙にいこう:2009/08/19(水) 14:03:35
VISTA Access2007です。
コンボボックスのRecordsetプロパティにADOのレコードセットを設定しました。
フィールド数は4で全て表示して第1列を連結しています。
通常、コンボボックスの入力時に一番左の表示列を元にインクリメントサーチの
ような動作になると思うのですが候補が選択されません。
どの辺の設定を見直せばいいのでしょうか。
よろしくお願いします。
891名無しさん@そうだ選挙にいこう:2009/08/19(水) 14:39:34
自動拡張=はい になってるか?
892890:2009/08/19(水) 15:43:04
>>891
ありがとうございます。
確認したところ「はい」になっています。
893890:2009/08/19(水) 18:09:50
同じようにADOのレコードセットを使ったコンボボックスでも
インクリメントサーチができるものもあるので条件を変えて調べてみました。
結論としてはデータ型が長整数(数値型?)のものはできないようです。
テキスト型の場合はできました。
これはコネクションがローカルでも外部でも変わらないようです。

プロパティシートで値集合ソースを指定した場合は長整数でもできるのに…
何かいい方法はないですかね。
894名無しさん@そうだ選挙にいこう:2009/08/19(水) 22:06:17
ピボットグラフについて質問です。
入庫日と個数のフィールド構成のテーブルがあります。
入庫日を軸にして個数をグラフにしたいのですが、個数のフィールドをカウントしたグラフになってしまいます。
個数の部分のプロパティ見てもどこ触ればいいのかわかりませんでした…。
個数のレコードをカウントするのではなく、個数の値をそのままグラフにするにはどうすればいいでしょうか?
895名無しさん@そうだ選挙にいこう:2009/08/19(水) 22:45:30
Excelのスレで聞いてください(>_<)
896名無しさん@そうだ選挙にいこう:2009/08/19(水) 23:38:38
おおきに、おおきにやで?

End Sub
897名無しさん@そうだ選挙にいこう:2009/08/20(木) 11:25:43
Access 2010 developer kitchen
Want to ensure your application runs seamlessly in Access 2010 and hang out with the Access team? We have a 3 day developer kitchen on the Redmond Campus from September 14-16th.
898名無しさん@そうだ選挙にいこう:2009/08/20(木) 16:22:15
Windows2000+ACCESS2000です。
つまらん質問なんだが、関数にリストボックスのコントロールそのものを渡す場合
どうすればいい?

フォームに「lst_abc」というリストボックスを乗っけて
そのフォーム内で何かしらの処理を走らせてブレイク中にイミディエイトウィンドウで
?lst_abc
とすると、Nullが返される・・・。
たぶんデフォルトで Valueの値が戻ってきたからなんだろうが、
関数にリストボックスのコントロールそのものは渡せんのだろうか。。
関数側はもちろん ByRef付けて参照受け取りしてるんだが。
899898:2009/08/20(木) 16:41:59
自己レス。
諦めた・・・フォームと、リストボックス名を関数に渡すことにした。。
900名無しさん@そうだ選挙にいこう:2009/08/20(木) 18:08:14
>>898
引数をリストボックスで宣言すればいいだけじゃないのか。

>>899
諦めんの早杉だろw
20分ももたないのか。
小学校の通信簿に先生から毎回「根気が足りない」とか書かれなかった?
901名無しさん@そうだ選挙にいこう:2009/08/20(木) 18:57:24
>>900
小学校の通信簿に先生から毎回「一言多い」とか書かれなかった?
902名無しさん@そうだ選挙にいこう:2009/08/21(金) 07:48:08
>>901
小学校の先生から毎日「一人多い」とか言われなかった?
903名無しさん@そうだ選挙にいこう:2009/08/21(金) 10:03:12
フォームでコンボボックスやリストボックスを作成してそれのRowSourceのSQLを使用すると、
画面では見えませんがこっそりと「~sq_cフォーム名~sq_cコントロール名」というようなクエリが作られていると思います。
通常はフォームを削除したらそれらも削除されるのでしょうが、なんらかの原因で
残っているものがあります。
それらのような他から参照されていないクエリを削除する方法はありませんか?
904名無しさん@そうだ選挙にいこう:2009/08/21(金) 15:04:32
テーブルイベント装備したaccdbがWM7のPocketAccessで、そのまま動く
来年を楽しみにしててね
905名無しさん@そうだ選挙にいこう:2009/08/21(金) 15:59:58
WindowsMobileって名前からしてなくなる予定らしいけど
906名無しさん@そうだ選挙にいこう:2009/08/21(金) 17:02:58
PocketAccess復活するのか
907名無しさん@そうだ選挙にいこう:2009/08/23(日) 00:17:03
>>903
新規DBにオブジェクトをインポートすれば、そういうテンポラリオブジェクトは
付いてこないと思うけど。

もし特定のクエリを名指しで削除したいという話なら、ふつうにDocmd.DeleteObjectでおk。
データベースウィンドウに表示されないだけで、ただのクエリだから。
908名無しさん@そうだ選挙にいこう:2009/08/23(日) 19:23:56 BE:1459175279-2BP(85)
>>904
可能です。
以上。
↓次の方どうぞ
909名無しさん@そうだ選挙にいこう:2009/08/23(日) 21:20:21
Access2010TP

レコードの移動:次レコード や DoCmd.GoToRecord acActiveDataObject, , acNext
先頭コントロールにフォーカスが移ってから次レコードに移動するwww
表形式で真下に移動できない

仕様変更?
沢山作り変える必要出てくるorz、バグだと良いんだが

Microsoft Connect の会議室では報告されていない、英語だから報告できない…
910879:2009/08/23(日) 22:48:28
WindowsXP Access2003
で前に質問したんですが、
更新後処理でVBAをつくると、ページを変えるまで対応したIDが入力されないんですが...
更新後処理を変えたほうがいいでしょうか?
理想としては、駅名を入力→(enterで次のフィールドに移動)→自動で駅IDが入力
で今のところ、駅名を入力→(レコード(ページ)を変える)→自動で駅IDが入力されるところまでです。

なにかヒントをください。


911名無しさん@そうだ選挙にいこう:2009/08/23(日) 23:57:34
>>910
駅名コントロールのイベントを使えば実現すると考えられる。
フォームとコントロールの各イベントを整理して理解したほうがいい。
912名無しさん@そうだ選挙にいこう:2009/08/24(月) 10:24:28
>>907
Docmd.DeleteObjectで削除できました。
ありがとうございました。
913名無しさん@そうだ選挙にいこう:2009/08/24(月) 21:44:15
質問です。よろしくお願いします。
今、手元にAccess2000形式のファイルがあるのですが、内容を見ることができず
困っています。
データも入力された(デザインだけではない)テーブルがいくつかあるだけで、
フォームやレポートは含まれていないファイルです。.mdbファイルです。
シフトを押しながら開くと、ファイル自体は開くのですが、テーブルエリアに
何も表示されません。何年も前に自分で作ったファイルなのですが、簡単に中身を
見せないように何か細工をしたんだと思います。ただ何をしたのか忘れました。
何か考えられる可能性はあるでしょうか?また、テーブルを表示させる方法を
思い当たることがあれば教えてください。
914名無しさん@そうだ選挙にいこう:2009/08/24(月) 21:52:58
>>913
隠しオブジェクトにしているんじゃないの?
オプションの表示で「隠しオブジェクト」をチェックしてみたら?
915名無しさん@そうだ選挙にいこう:2009/08/24(月) 21:56:14
>>914

ありがとうございました!!!
916名無しさん@そうだ選挙にいこう:2009/08/25(火) 16:44:56
>>913
だ い じ ょ う ぶ か ?
917名無しさん@そうだ選挙にいこう:2009/08/25(火) 21:27:59


桐にしとけ
918名無しさん@そうだ選挙にいこう:2009/08/26(水) 09:42:42
すみません、質問です。
あるソフトでdbfを1000個ほど作成しました。
その1000個のdbfを一つのテーブルにまとめようと思い、ユニオンクエリを作成しましたが、数が数なだけにVBAで行った方がよいと分かりました。
そこで
Function インポートマクロ()
On Error GoTo インポートマクロ_Err

DoCmd.TransferDatabase acImport, "dBase IV", "D:\フォルダ名\フォルダ名\フォルダ名\フォルダ名", acTable, "011300231_011300100_0405_01.dbf", "H18ルートDB", True
  DoCmd.TransferDatabase acImport, "dBase IV", "D:\フォルダ名\フォルダ名\フォルダ名\フォルダ名", acTable, "011300231_011300100_0405_01.dbf", "H18ルートDB", True
  ファイル名のみ変更して続く
インポートマクロ_Exit:
Exit Function

インポートマクロ_Err:
MsgBox Error$
Resume インポートマクロ_Exit

End Function
と記述してみたのですが、H18ルートDB、H18ルートDB1・・・というようにdbfの数だけテーブルが出来てしまいます。
理想は、全てのdbfを一つのH18ルートDBテーブルに集約したいのです。
色々見ると使い方が間違っているような気がするのですが、根本的に考え方を間違えていますでしょうか?
エクセルのファイルからはTransferSpreadsheetを使用すると出来たのですがdbfでも同じような作業が出来ないかと思いました。
xpでaccess2003を使用しています。
どうぞよろしくお願いします。
919名無しさん@そうだ選挙にいこう:2009/08/26(水) 19:51:03
>>918
参考になる…か?

テーブルをインポートして追加
ttp://www.accessclub.jp/bbs2/0020/beginter06728.html


もしくはDAO(もしくはADO)で片っ端からmdbに突っ込んでいくとか
920名無しさん@そうだ選挙にいこう:2009/08/26(水) 20:36:00
Peter De Baets said:
So VBA support is not included because it would not support the goal of portability to other platforms, but data macros are not portable to SQL Server.

So what other platforms are you referring to here?

# August 14, 2009 2:56 PM
--------
Clint Covington said:
Peter - We will talk about other platforms later in the year.

Khawar - You would need to install the ACE redist if you want to use it on a machine that doesn't have Office installed.

Justin - your mileage may vary depending on your scenarios. There are some scenarios where the prompt is perfectly okay.

# August 20, 2009 12:01 PM
--------
Clint Covington said:
Sam - we aren't disclosing more info about web databases until mid October. Let's continue the conversation at that point.

# August 21, 2009 10:16 AM
921名無しさん@そうだ選挙にいこう:2009/08/26(水) 21:59:44
↑まあ、そういうことだ。
922名無しさん@そうだ選挙にいこう:2009/08/27(木) 00:18:53
次スレ用意しておきました。

Access総合相談所 其の22
http://pc11.2ch.net/test/read.cgi/bsoft/1251297578/
923名無しさん@そうだ選挙にいこう:2009/08/27(木) 00:33:56
早いな
924名無しさん@そうだ選挙にいこう:2009/08/28(金) 13:29:47
>>922
良くやった。タイトルが良い。
925名無しさん@そうだ選挙にいこう:2009/08/28(金) 16:43:57
桐を外したのか・・・_| ̄|○
926名無しさん@そうだ選挙にいこう:2009/08/28(金) 18:06:17
桐について語るスレ 2 【サーバー未満 Excedl以上】

スレタイワロス
927名無しさん@そうだ選挙にいこう:2009/08/28(金) 19:57:19
Accessだって同じじゃん
928名無しさん@そうだ選挙にいこう:2009/08/28(金) 23:30:26
サーバー未満は認めるが、Excel以上は認められないね。
だって、別ソフトだもの。
929名無しさん@そうだ選挙にいこう:2009/08/29(土) 21:57:30
Excedlの読み方は?エクセドゥル?
930名無しさん@そうだ選挙にいこう:2009/08/31(月) 08:12:33
イェース!
エクセドゥル!
931名無しさん@そうだ選挙にいこう:2009/08/31(月) 13:16:55
>>919
>>918です。ありがとうございました。
参考にして勉強してみます。
932名無しさん@そうだ選挙にいこう:2009/08/31(月) 15:40:13
Vista+Access2007
レポートで1ページごとに印刷前にメッセージボックスを出したいのですが何かいい方法はないでしょうか。
レポートのページフォーマット時、ページヘッダー、フッターの印刷時、フォーマット時に
メッセージボックスを入れてみたのですが最終ページのメッセージが終わるまで印刷が始らず
うまくいきませんでした。
何も方法がなければフィルタをかけてページごとに出力しかないと思いますが、
簡単な方がいいのでお知恵をお貸しください。
933名無しさん@そうだ選挙にいこう:2009/08/31(月) 17:34:21
>>932
>簡単な方がいいので
というなら
>フィルタをかけてページごとに出力
でいいじゃん
934932:2009/08/31(月) 20:34:13
>>933
レポートのイベントでできれば印刷するだけでいいので楽ちんじゃないですか。
フィルタかけるとなると一ページずつ条件を作らないといけないし

ちなみに例えば連番とか振られていないレコードを
1ページに5件ずつ印刷するとしたらどうするのがスマートですか。
総ページ数取得してページ指定印刷?
935名無しさん@そうだ選挙にいこう:2009/08/31(月) 21:22:31
おまえは>>933の方法でいい。

スマートな方法にこだわっていいのは頭の構造がスマートな奴だけだ
936名無しさん@そうだ選挙にいこう:2009/08/31(月) 21:35:09
>>934
なにかキーになるフィールドがないとダメダメだろうよ。
どういう出方するか保証されないぞ。
数回5ページを指定して、つど違う内容でいいのか?
937933:2009/08/31(月) 22:54:15
>>932の要求内容をおそらく満たさないが、印刷プレビューの状態から
表示されているページのみの印刷ならできそうだな。

俺的には、見込みと限界が掴めたからもういいや。
938932:2009/09/01(火) 08:49:24
みなさん、ありがとうございます。

>>936
連番がふられていないというのはユニークなIDはあるけど1,2,3,4...のように連続していないという意味でした。
わからない書き方をしてごめんなさい。

>>937
プレビューからDoCmd.PrintOutでページ指定ができると思います。

  Dim pgMax As Integer
  Dim pgPrt As Integer
  Dim rpt As Report
  Set rpt = Reports!TestRpt

  pgMax = rpt.Pages
  pgPrt = 1
  Do Until pgPrt > pgMax
    MsgBox pgPrt & "目を印刷します"
    DoCmd.PrintOut acPages, pgPrt, pgPrt
    pgPrt = pgPrt + 1
  Loop

今Accessが手元にないので試せないのですが
こんな感じでやってみようと思います。
939名無しさん@そうだ選挙にいこう:2009/09/03(木) 23:16:10
会社内で受注管理システムを構築しています。
社内LAN内にデータファイルを置こうと思うのですが
LAN接続の外付けHDDとサーバーPCのどちらに置いた方が
アクセス速度は上がりますか?
操作用のファイルはLAN内の個々のPCにあります。
データのアクセス頻度は五分に一度くらいですが同時に3人が
アクセスしたりします。

940名無しさん@そうだ選挙にいこう:2009/09/04(金) 04:43:37
>>939
>LAN接続の外付けHDD
NASとは違うの? 回線速度が速くて、アクセスする人が少ないほうが早いだろう。
941名無しさん@そうだ選挙にいこう:2009/09/05(土) 18:54:04
XP access2002で
サブフォームを61個作ったら
そのフォームを開くときに
「これ以上テーブルまたはクエリーを開くことはできません」
ってポップアップが5回出て来ました。
OKを5回押すと消えて正常にフォームが表示されるのですが、
警告が出ない様にする方法はないでしょうか?
942名無しさん@そうだ選挙にいこう:2009/09/05(土) 19:17:15
あるよ
943名無しさん@そうだ選挙にいこう:2009/09/05(土) 19:56:37
>>941
On Error GoTo
944名無しさん@そうだ選挙にいこう:2009/09/06(日) 11:36:07
VBA上のエラーではなく、フォーム上のエラーメッセージなので
On Error Go To では意味内はず

Docmd.Setwarning False
で警告を無効化できるはず

ただし、その後Access起動中のその後の全ての警告が無効化されてしまうので
フォームクローズイベントかなんかで
Docmd.Setwarning True
を設定してやらないとね
945名無しさん@そうだ選挙にいこう:2009/09/06(日) 12:57:40
ただ警告メッセージは抑えられたとしても、はたしてそれで正しい動作が保障されるか
どうかは、はなはだ疑問ですね
946名無しさん@そうだ選挙にいこう:2009/09/06(日) 13:07:02
>>944
SetWarningで切り替えれるのは
システムメッセージ(アクションクエリ・オブジェクト削除・レコード変更)じゃなかったっけ?
947名無しさん@そうだ選挙にいこう:2009/09/06(日) 14:31:40
そうだっけか?
少なくともデータベースウィンドウで手動で削除しようとした時にメッセージ無効扱いだと
確認なしに無条件で削除されてしまってたけどな
948名無しさん@そうだ選挙にいこう:2009/09/06(日) 14:55:42
サブフォーム61個設置して確かめようとする気にもならんのである
949名無しさん@そうだ選挙にいこう:2009/09/06(日) 16:23:49
>945 に禿同
火災報知機がうるさいから切ればおk
みたいな流れに聞こえるが、それでいいのか?

サブフォーム61個は設計ミスの腐臭がする
950名無しさん@そうだ選挙にいこう:2009/09/06(日) 21:58:36
サブフォームが61個か。想像すらできん。
タブ使っているのかなぁ。レコードソース入れ替えるだけで実現できたりして。
951名無しさん@そうだ選挙にいこう:2009/09/06(日) 23:08:44
一体どういった用途に使ってるんだかそっちの方が気になる
そもそもそんなにあったら、よっぽどの大画面モニターでないと1画面に入りきらないだろうに
グルーピングするなりしないで、返って見づらくないか?
952名無しさん@そうだ選挙にいこう:2009/09/07(月) 00:11:49
1画面の総コントロール数が50個ぐらいになると
情報量として「多すぎるかな」と思っていた俺の存在は……
953名無しさん@そうだ選挙にいこう:2009/09/07(月) 08:50:41
具体的に聞きたいな。
954名無しさん@そうだ選挙にいこう:2009/09/07(月) 13:52:26
【 システム環境  . 】 Windows XP SP3 → Windows Vista SP, Access 2007
【 VBAが使えるか .】 はい
【 VBAでの回答  】 可
【 検索キーワード 】 3265
             要求された名前、または序数に対応する項目がコレクションで見つかりません。

質問です。
最近、XPからVistaに乗り換えたのですが、その際、XPで何ら問題なく動いていた
AccessのVBAが、Vistaでは頻繁に止まり、デバッグモードになってしまう
問題が起きて困っています。

出てくるエラーメッセージは上記にあるとおりです。
また、このメッセージを無視してそのまま再開すると何ら問題なく動き、
また、数分後から数十分後に同じエラーメッセージで止まります。

VBAで行っている処理はだいたい以下のとおりです。

・ADODBでConnectionとRecordsetを定義しテーブル・クエリを開く
・開いたテーブル・クエリの値を元に計算 ← ここでエラーメッセージになる
・別のテーブルに計算結果を格納
・その計算結果を含むクエリをExcelファイルとして出力
・ConnectionとRecordsetを閉じる

どのように対処すれば、エラーを起こさずVBAを回せますでしょうか。
どうかよろしくお願いします。
955名無しさん@そうだ選挙にいこう:2009/09/07(月) 14:09:57
ありそうなパターンは、タブコントロールで取引先ごとにページを作り、
ページごとに抽出条件が異なるサブフォームを配置──かな?
それだったら、>>960のとおり、サブフォームは1つで
あとはインデックスでレコードソースを変えれば済む話なのだが。

>>954
ttp://www.kitagawa-hanga.com/se/s_vberr.html#E3265

書かれている項目で思い当たる節はないか?
意外と型宣言を省略したり、予約語・好ましからざる文字を使っていたりすると
環境が変わるといままで動いていたものが動かなくなったりする。

956名無しさん@そうだ選挙にいこう:2009/09/07(月) 14:15:36
>>954

あ、ADOか。接続ははCurrentProjectでやっているの?
それとも接続文字列を打ち込んでいるの?
後者だったら、サービスプロバイダー名が変わったんじゃなかったっけ?
957名無しさん@そうだ選挙にいこう:2009/09/07(月) 14:28:58
>>954
まず先に、ファイル破損の可能性について対応してみれ
次に、Option Explicitでコンパイルしなおしてみれ
958名無しさん@そうだ選挙にいこう:2009/09/07(月) 18:28:20
>>955-957
回答ありがとうございます。
残念ながら、現状、エラーは出続けているままです。

>954のサイトで思いあたる節はありません。演算に使っている変数の名前を
換えてみたりもしましたが結果は変わりませんでした。

ADOの接続はCurrentProjectでやっています。
参照設定をチェックしてバージョンの新しいものに置き換えたりしてみたのですが
うまくいっていません。

ファイル破損については考えにくいです。数〜数十回以内では連続Loop処理はできています。
また、念のため、適時最適化はかけています。

最後に、Option Explicitでコンパイルしなおしてみましたがやはりダメでした。


気付いたのは、Vistaで何かしら新たにやり始めると止まることが多いことです。
Excelファイルを開いたり、
放置してスクリーンセイバーが起動したり、
ブラウザを開き直したり
などするとエラーが出てVBAが止まります。


引き続きよろしくお願いいたします。
959名無しさん@そうだ選挙にいこう:2009/09/07(月) 18:33:05
該当コードも書かずに…
960名無しさん@そうだ選挙にいこう:2009/09/07(月) 18:47:10
>>958
このエラーってSQLが正しくないと出てきた気がする。
だからコンパイルは通っちゃうんだよね。
別PCにmdbを移動させると、クエリの計算フィールドの名前が変わったりすることがあるけど、
その確認もした?
961名無しさん@そうだ選挙にいこう:2009/09/07(月) 18:48:36
>>959
すみません。
200行を超えるので貼るのは適当ではないかなと判断したのと、
先述のとおり、XPでは問題なく動いていたコードなので、
何らかの設定の違いが問題なのではと考えています。
962名無しさん@そうだ選挙にいこう:2009/09/07(月) 18:58:52
>>960
XPのときから、accdbで使っています。
コードで使用しているフィールド名についても変更がないことは確認しました。
963名無しさん@そうだ選挙にいこう:2009/09/07(月) 19:21:40
原因が不明で解決できそうもないときは
新規accdbにインポートして再構築を実施するようにしてる。
それとoffice修復くらいかの
964名無しさん@そうだ選挙にいこう:2009/09/07(月) 19:32:26
>>962
VBAで呼び出しているクエリを作り直したほうが早そうだな。
あとはcurrentprojectが正しい接続文字列を生成しているか(Debug.Printあたりを使えばいい)、
テーブル名やクエリ名の先頭に半角英字をつけてみるとかぐらいかなぁ。
あとはエラーでとまったところのコードを数行前から提示してみるとか。

965名無しさん@そうだ選挙にいこう:2009/09/07(月) 20:43:39
@ ADODBでConnectionとRecordsetを定義しテーブル・クエリを開く
A 開いたテーブル・クエリの値を元に計算 ← ここでエラーメッセージになる
B 別のテーブルに計算結果を格納
C その計算結果を含むクエリをExcelファイルとして出力
D ConnectionとRecordsetを閉じる

これ@〜Dをかなりの回数ループさせてるってこと?

XP→VISTAで高速PCに乗り換えて、DoCmd.TransferSpreadsheet使ってるなら
むしろ俺はCから疑ってみる。
966名無しさん@そうだ選挙にいこう:2009/09/07(月) 21:31:29
俺、VISTAにしたらExcelの同名上書きを、OSが勝手に既存Excelファイルに行追加にしたりで困った経験あるよ
967名無しさん@そうだ選挙にいこう:2009/09/07(月) 22:17:23
>>963-965
回答ありがとうございます。
しかし、残念ながら、まだ解決しません。

>>963
新規accdbにインポートして再構築をしてみました。office診断もかけてみました。
結果は変わらずでした。

>>965
>954の記載が誤っていました。正しくは、

@ ADODBでConnectionとRecordsetを定義しテーブル・クエリを開く
A 開いたテーブル・クエリの値を元に計算 ← ここでエラーメッセージになる
B 別のテーブルに計算結果を格納
C ConnectionとRecordsetを閉じる
D その計算結果を含むクエリをExcelファイルとして出力

これのA〜Bを40000〜60000ループくらい、
そのA〜Bを含め@〜Dを1700ループくらいです。
Excelファイル出力には、DoCmd.OutputTo acQueryを使い、
新規ファイルを作成しています。
968名無しさん@そうだ選挙にいこう:2009/09/07(月) 22:18:19
>>964
止まる部分ではクエリはいじっていません。
また、CurrentProjectが文字列を引き渡せているかについて、
止まるごとにウォッチ式で確認を取っているのですが、
計算式に使用されているトラックはどうも正常に値を渡しているようです。
テーブル名・クエリ名は頭文字をTやQにしています。
969名無しさん@そうだ選挙にいこう:2009/09/07(月) 22:20:26
> あとはエラーでとまったところのコードを数行前から提示してみるとか。
以下に示しました。よろしくお願いいたします。

rs_mahalanobis_distance_output.Open "T_mahalanobis_distance_output", cn_mahalanobis_distance_output, adOpenKeyset, adLockOptimistic
rs_x_y_aa.Open "Q_m_d_1", cn_x_y_aa, adOpenStatic, adLockReadOnly
rs_sigma_inverse.Open "T_sigma_inverse", cn_sigma_inverse, adOpenStatic, adLockReadOnly

Do Until rs_x_y_aa.EOF
rs_mahalanobis_distance_output.AddNew
rs_mahalanobis_distance_output![ID] = rs_x_y_aa![ID]
rs_sigma_inverse.MoveFirst
For i1 = 1 To 18
temp(i1) = _
rs_sigma_inverse![列1] * rs_x_y_aa![式1] _
           …
+ rs_sigma_inverse![列18] * rs_x_y_aa![式18] ←ここで止まります
rs_sigma_inverse.MoveNext
Next i1
rs_mahalanobis_distance_output![mahalanobis_distance] = _
Sqr(temp(1) * rs_x_y_aa![式1] + _
           …
temp(18) * rs_x_y_aa![式18])
rs_mahalanobis_distance_output.Update
For i1 = 1 To 18
temp(i1) = 0
Next i1
rs_x_y_aa.MoveNext
rs_mahalanobis_distance_output.Update
Loop
970名無しさん@そうだ選挙にいこう:2009/09/07(月) 22:29:55
OS:WindowsXP
Access:2003

テーブルに登録してるフィールドを以下の条件でレポートに
文字変換表示させるようにしています。レコードがNULLの場合は
何も表示させたくないのですが、どのように条件を変更したら
よろしいでしょうか?

=IIf([決定 必修 評価]="欠席","欠席",IIf([決定 必修 評価]="","","認定"))
971名無しさん@そうだ選挙にいこう:2009/09/07(月) 22:57:35
>>969
ちなみにi1がいくつのときにエラーが出るの?
なんかコードを見た感じ、配列が原因っぽいけど。

972名無しさん@そうだ選挙にいこう:2009/09/07(月) 23:04:02
>>971
ばらばらです。直近では、1、11、8。
973名無しさん@そうだ選挙にいこう:2009/09/07(月) 23:30:51
>>970
Nz関数使うか、Switch関数に変更
974名無しさん@そうだ選挙にいこう:2009/09/07(月) 23:52:02
>>954
レコードセット[rs_sigma_inverse] の [列18] を参照できていない旨のエラーだから、
rs_sigma_inverse![列1] → rs_sigma_inverse.Fields(0)
rs_sigma_inverse![列18] → rs_sigma_inverse.Fields(17)
のように参照方法を書き直したら動くかもしれない。

それでも駄目なら、rs_sigma_inverse を ループ前に adOpenStatic で1回だけ開いて
MoveFirst で 使い回すのを止めて、MoveFirst の所で adOpenForwardOnly で都度開く
ようにしたらどうかな?

>>970
NULLを扱うときはNz関数が便利。
975名無しさん@そうだ選挙にいこう:2009/09/07(月) 23:58:59
>>969の件
エラーメッセージからするとフィールド名を見失ってるって感じよねぇ
私も>>974と同じ感想を持った

rs_mahalanobis_distance_output.Updateが2行あるけど、見ないふりした
976名無しさん@そうだ選挙にいこう:2009/09/08(火) 00:20:42
Q_m_d_1の取得をクエリ名ではなくてSQL文字列で書いてみるとか

しかし、何が原因やろね
XP→Vista→7と環境変えてるけど遭遇したことない内容だな
977名無しさん@そうだ選挙にいこう:2009/09/08(火) 00:46:50
rs_sigma_inverse![列1]とかの[ ](中括弧だっけ?)はフィールド名を強調しているだけかと思った。
仮に括弧なしにはコンパイルが通らないなら、そもそもフィールド名に問題があることになるな。
問題があるような名前は、いっそのことエラーではじいてくれたほうが便利なのだが。
978名無しさん@そうだ選挙にいこう:2009/09/08(火) 13:53:02
>>974-977
回答ありがとうございます。
結果は、変わらずです。

>974の2つの方法、>976のSQLでの書法など試してみましたが駄目でした。
Access自体のアンインストール→インストールも行ってみましたが効果なしです。

BTO-PCで相性の悪いババを引いてしまったものとして諦めました。
動かないわけではないので、お守をしながら回していこうと思います。
相談に乗っていただきましてありがとうございました。
979名無しさん@そうだ選挙にいこう:2009/09/08(火) 14:28:28
>>978
メモリにエラーがあるのかもね。お疲れ様です。
チェックして交換してもおうぜ。
980名無しさん@そうだ選挙にいこう:2009/09/09(水) 09:15:26
一気じゃなくて少しづつ計算したらどう?
VB6で1行の長さで引っかかったことがある>外してそうだけど
981名無しさん@そうだ選挙にいこう:2009/09/10(木) 02:23:23
>>939
俺も営業所内で使うシステム自作して、
フォームやVBAなどのMDBファイルは各PCに置いて、
テーブルのMDBファイルはLANタイプHDDに置いて、
同時に数台からのアクセスがある環境で使ってるけど、
全く問題無い。

HDDなら1万円くらいで買えるし、まずはHDDでやってみては?
982981:2009/09/10(木) 02:34:20
補足だけど、連結フォームで作ると、複数PCでの使用はダメでした。
また、フォーム自体は非連結フォームでも、
テーブルをデータソースにしてるコンボボックスが1つでもあるとダメだった。

面倒だけどフォームは全部非連結フォームで、
処理は全部VBAでADO使って書きまくるのが、一番サクサク動く感じがする。
俺が下手なだけかもしれないけど・・・。
983名無しさん@そうだ選挙にいこう:2009/09/10(木) 10:33:57
>>982
access だと、データ処理はローカルで実行するって理解してて
組んだのかなと思う
#データは全部LAN経由で読み込んでから、クエリ処理を行う

>処理は全部VBAでADO使って書きまくるのが、一番サクサク動く感じがする。
これは、普通に正しいと思うが
#もしくは パス・スルー・クエリ使うとか

メンテの時検索できないといやだから、極力VBA+ADOだね
#クエリよりSQLの方が見通しがいいし
#BackはSQLServerEX、Accessはフロントだけが多いw
984名無しさん@そうだ選挙にいこう:2009/09/10(木) 18:36:51
#クエリよりSQLの方が見通しがいいし
#クエリよりSQLの方が見通しがいいし
#クエリよりSQLの方が見通しがいいし
985名無しさん@そうだ選挙にいこう
>>984
UNION はかけないしな
100個近いクエリで、クエリ内クエリが3重、4重の
他人の作ったmdbをメンテすることになったときに、実感すると思うよ
#テーブル変更なんざ、出来ねーよ 簡単に
#大体、^Fで検索対象外だしな