【まだまだ】Microsoft Access クエリ3【使える】

このエントリーをはてなブックマークに追加
1NAME IS NULL
前スレDAT落ちしたようなので新スレです。
2NAME IS NULL:2005/07/08(金) 08:31:31 ID:???
■前々スレ
Microsoft Access
http://pc5.2ch.net/test/read.cgi/db/1056952414/
http://pc5.2ch.net/db/kako/1056/10569/1056952414.html

■前スレ
【まだまだ】Microsoft Access クエリ2【使える】
http://pc8.2ch.net/test/read.cgi/db/1089161114/


前スレは>>984でご臨終かな?
3NAME IS NULL:2005/07/08(金) 10:29:25 ID:???
即死しそう
4NAME IS NULL:2005/07/08(金) 16:40:51 ID:exfG4oee
保守
5NAME IS NULL:2005/07/08(金) 19:47:45 ID:xeo2tRn4
【まだまだ】【使える】

という事は、

【そろそろ】【使えない】

という理解でよいか?
6NAME IS NULL:2005/07/08(金) 19:55:35 ID:???
前スレの>>1に聞いてくれ
7NAME IS NULL:2005/07/08(金) 20:44:18 ID:xeo2tRn4
それでは、このスレがまたDAT落ちしたら

次のスレタイは、

【そろそろ】M$ Access クエリ 死【使えない】に決定

つーか、このスレ自体、イタ違いなんじゃないか?

ビジネスSoft板
ACCESS総合相談所 その12
http://pc8.2ch.net/test/read.cgi/bsoft/1106963038/
8NAME IS NULL:2005/07/08(金) 21:21:11 ID:???
>つーか、このスレ自体、イタ違いなんじゃないか?

ここを純情ハードゲイ板と勘違いしているようだな
9NAME IS NULL:2005/07/09(土) 02:04:09 ID:???
>ここを純情ハードゲイ板と勘違いしているようだな

そんな板があったなんて、大笑い
>8の常駐先かな。
10前スレの>>1:2005/07/09(土) 15:07:26 ID:???
スレ立て乙でした。
うっかりしてる間に落ちてました。

>>5
スレタイの由来は、

 多くの人がもう終わってると思ってるが、使いどころによっては実は
 「まだまだ」「使える」

です。

うちは今でもOracleやSQL ServerとAccessを組み合わせて使うとき
あります。
11NAME IS NULL:2005/07/10(日) 15:03:26 ID:TPUvY9yH
クエリでbegin transaction と書いたら
SQL ステートメントが正しくありません。 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、または 'UPDATE' を使用してください。

とかかれました。
どうすれば使えるのですか?
12NAME IS NULL:2005/07/10(日) 18:48:23 ID:???
>>11
begin transactionの続きは書いたのか?
13NAME IS NULL:2005/07/11(月) 14:21:01 ID:???
●関連スレ
ACCESS総合相談所 その13 【桐にしとけ】
http://pc8.2ch.net/test/read.cgi/bsoft/1121055646/
14NAME IS NULL:2005/07/12(火) 17:11:52 ID:???
test
15NAME IS NULL:2005/07/12(火) 19:02:52 ID:???
>>11

【桐にしとけ】だそうだ。
16NAME IS NULL:2005/07/12(火) 20:46:00 ID:???
>>15
こっちのスレにまで持ち込むなって
17NAME IS NULL:2005/07/12(火) 21:48:21 ID:yL99MjTH
別スレから誘導されて来ました


【.  目 的  】 (手形支払い先の管理と銀行当座の管理を作りたい)
【.  条 件  】 (WinXP、ACCESS-2002)
【. 概  要  】 (銀行名・支店名・口座名・残高・満期日・金額・手形番号・支払先名)

「概要」に書いたようなテーブルを作ってデータベースを作りたいのですが
肝心なテーブルの中身がさっぱり分かりません('A`)
どなたかテーブルに書くような項目教えてもらえないでしょうか?

よろしくお願いします。
18NAME IS NULL:2005/07/12(火) 22:11:06 ID:bmQRX1mO
会社のネットワークで、
SQL2000サーバーに各端末から.MDBでデータ処理しています。

テーブルのレコードを変更したとき、他ユーザーが開いていますなどと称して、
競合で変更が更新されないことがあります。もちろん競合はない筈でも、この
メッセージがでて変更ができないことがあります。

この不具合の原因について、分る方いっらしゃいますでしょうか。
19NAME IS NULL:2005/07/12(火) 22:12:59 ID:???
>>17
支払手形扱ったことないから良く分かんないけど

■銀行口座テーブル
銀行コード
銀行名
支店名
口座名義
口座番号

■手形テーブル
手形No
振出日
決済日
金額
支払先コード
銀行コード
手形区分
手形番号
支払日
摘要

■支払先テーブル
支払先コード
支払先名
etc

■手形区分テーブル
区分名

こんな感じ?
銀行残高に関しては手形の支払いだけで金額が変わるわけじゃないだろうから
別のアプローチが必要だと思う。
それにしても、テーブルデザインができないってのは致命的だから入門書買うなり
なんなりしてちゃんと勉強した方が良いんじゃないだろうか。
"肝心のテーブルの中身がさっぱり"じゃ、この先の作業が続かないだろうし。
2017:2005/07/12(火) 22:34:16 ID:???
>>19
ありがとうございます。実は本は用意してあるのですがデータベースの内容については自分で
考えてという内容だったのでこちらで聞かせてもらいました。

また何か分からないことがありましたらよろしくお願いします。
21NAME IS NULL:2005/07/12(火) 22:51:47 ID:???
>>20
>データベースの内容については自分で考えてという内容だったので

著者は今頃泣いてるな……。
22NAME IS NULL:2005/07/13(水) 12:10:18 ID:???
848 名前:NAME IS NULL[] 投稿日:2005/07/13(水) 10:31:59 ID:cwIOx3kC
会社のネットワークで、
SQL2000サーバーに各端末から.MDBでデータ処理しています。

テーブルのレコードを変更したとき、他ユーザーが開いていますなどと称して、
競合で変更が更新されないことがあります。もちろん競合はない筈でも、この
メッセージがでて変更ができないことがあります。

この不具合の原因について、教えていただけないでしょうか。

937 名前:NAME IS NULL[sage] 投稿日:2005/07/13(水) 10:33:46 ID:???
会社のネットワークで、
SQL2000サーバーに各端末から.MDBでデータ処理しています。

テーブルのレコードを変更したとき、他ユーザーが開いていますなどと称して、
競合で変更が更新されないことがあります。もちろん競合はない筈でも、この
メッセージがでて変更ができないことがあります。

この不具合の原因について、教えていただけないでしょうか。
23NAME IS NULL:2005/07/13(水) 15:20:56 ID:???
  ∧ ∧     ┌─────────
  ( ´ー`)   < シラネーヨ
   \ <     └───/|────
    \.\______//
      \       /
       ∪∪ ̄∪∪
24NAME IS NULL:2005/07/22(金) 21:45:36 ID:f4befPrB
教えてください。
クエリーでシフト管理しようとしています。
フィールドには氏名/予定出勤時間/退勤時間/実働出勤時間/実働退勤時間を作りました。
@9時前にタイムカード押した場合,9時からの時間計算となる。
A15分単位で時間計算。(例)9:37→9:45からの計算となる。
B22時以降は時給にならない。
というのはクエリーで可能ですか?
25NAME IS NULL:2005/07/22(金) 22:42:40 ID:???
>>24
クエリだけでなんとかしたいならIIF関数やらswitch関数やら使って
丸め込めば良いんでね?

例:
丸め込みした出勤時間:
Switch([実働出勤時間]<#9:00:00#,#9:00:00#,
Minute([実働出勤時間]) Between 1 And 15,TimeSerial(Hour([実働出勤時間]),15,0),
Minute([実働出勤時間]) Between 16 And 30,TimeSerial(Hour([実働出勤時間]),30,0),
Minute([実働出勤時間]) Between 31 And 45,TimeSerial(Hour([実働出勤時間]),45,0),
Minute([実働出勤時間]) Between 46 And 0,TimeSerial(Hour([実働出勤時間])+1,0,0))

長すぎたんで複数行に分けた。
厳密なルールは分からないからけっこう適当。
あとはこれの退勤時間verも作ればいけるんじゃないかな。
2625:2005/07/22(金) 22:44:39 ID:???
0分ちょうどの時だとこれじゃおかしくなるな。
他にも変なところありそうだけど微調整して使ってください。
27NAME IS NULL:2005/07/23(土) 00:26:31 ID:???
つ〜か、VBA使えよって思わないですか?みなさん。
28NAME IS NULL:2005/07/23(土) 01:06:27 ID:???
外注する予算も削られるご時世だし
ユーザーサイドの担当者が頑張ってVBAを使っても、
その人が異動になるとメンテできないからねえ。
VBAはできる限り使わず、関数とクエリと手操作、
あとExcelをからめてなんとかやっていくしかないっしょ。
29NAME IS NULL:2005/07/23(土) 02:00:15 ID:wufMo1Pt
(´-`).。oO(会社のパソが新しくなるんです…
       で、Accessを新しい方に移したいんですよ。でもねアホゥなことにCDが無いのです…
        データベースを作るというわけではないのでランタイムがあればいいのですが
         いかんせんAccess97…どなたかご存知ないでしょうか…orz
30NAME IS NULL:2005/07/23(土) 07:05:45 ID:???
>>27
クエリだけでやりたい→×
クエリしか使えない→○

以前質問の回答にVBAのコード書かれて困った初心者さんでは?
31NAME IS NULL:2005/07/23(土) 07:43:51 ID:???
>>27
その前に日付フィールドいらないのかと突っ込んであげてください。
それとも時間に年月日も含まれているんだろうか。
3227:2005/07/23(土) 07:44:23 ID:???
>>30
そう思うけど、やりたいことをクエリで実現するのにIIfとか関数使うなら
VBAでも変わりないのにと思ったので。
複雑怪奇なロジック作成する訳じゃないので、仮に引き継ぐ際でも支
障はないでしょうに。
3327:2005/07/23(土) 07:46:08 ID:???
>>31
すまんすまん。そこまで詳しく読んでなかった。
34NAME IS NULL:2005/07/23(土) 07:56:30 ID:???
>>32
その意見には激しく同意なんだけど、初心者にはVBAが異世界の物に見えるんだよ。
実際はちょっと勉強すりゃすぐ使えるようになるのにね。
もしかしたら>>24はフォーム作成する気すらないのかもしれない。
35NAME IS NULL:2005/07/23(土) 12:02:30 ID:t3PLbHk8
>>25 27 28 30 31 34 さん

ご意見ありがとうございます。
30さんのとおり今はクエリしか使えませんが,VBAについても勉強しようと考えてます。
遅くなりましてすいませんでした。
36NAME IS NULL:2005/07/23(土) 12:36:05 ID:???
DB初心者にはVBAよりSQLのほうが異世界のものに見えないかい?
37NAME IS NULL:2005/07/23(土) 13:31:52 ID:???
>>36
Access初心者はAccessをExcelと同じようなものと考えているよ
38NAME IS NULL:2005/07/23(土) 23:28:34 ID:???
どなたか、
functionプロシージャとsubプロシージャとPropertyプロシージャのちがいをわかりやすく、かつそこそこ踏み込んで教えてください。
ヘルプを呼んでもあまり違いがわかりません。

ので、ほとんどをfunctionで書いています。
39NAME IS NULL:2005/07/23(土) 23:45:47 ID:???
じゃあそれでいいじゃん
40NAME IS NULL:2005/07/25(月) 00:06:18 ID:6tmogycy
(´-`).。oO(落としたランタイムをまったく関係ないデータベースを開くのにつかうのは駄目なんですよね…そうですよね?
41NAME IS NULL:2005/07/25(月) 02:06:12 ID:???
(´-`).。oO(過疎ってるなぁ、誰もいないのだろうか…
42NAME IS NULL:2005/07/25(月) 07:39:09 ID:???
>>40
ランタイムは機能限定のMSACCESS.EXEですから、これを利用して開くデータベースは
何でもOKだけど。
43NAME IS NULL:2005/07/25(月) 16:53:17 ID:???
アクセスのSQL画面で、
行を残したまま無効にするREMARK # や /* */など
使えないの?
44NAME IS NULL:2005/07/25(月) 17:17:24 ID:???
>>43
使えません。
45NAME IS NULL:2005/07/25(月) 22:09:24 ID:???
すみません。少しスレ違いかもしれませんが
複数のエクセルファイルをドラッグアンドドロップして
いずれのファイルからも特定のセル
(例えば5枚目のシートのE12みたいに)
からデータを拾ってきて、1つのエクセルファイルに
出力するようなツールを作りたいのですが
そういうのってAccessで実現できるのでしょうか?
また、出来るとしたらどうすればいいのでしょうか?
よろしくおながいします。
46NAME IS NULL:2005/07/25(月) 22:14:35 ID:???
>>45
マルチ乙
342 名前:NAME IS NULL[] 投稿日:2005/07/25(月) 21:08:33 ID:7/LueBL9
すみません。少しスレ違いかもしれませんが
複数のエクセルファイルをドラッグアンドドロップして
いずれのファイルからも特定のセル
(例えば5枚目のシートのE12みたいに)
からデータを拾ってきて、1つのエクセルファイルに
出力するようなツールを作りたいのですが
そういうのってAccessで実現できるのでしょうか?
また、出来るとしたらどうすればいいのでしょうか?
よろしくおながいします。
47NAME IS NULL:2005/07/25(月) 22:14:58 ID:???
>>45
Excelで作りなさい。
48NAME IS NULL:2005/07/25(月) 22:20:20 ID:???
489 名前:NAME IS NULL[] 投稿日:2005/07/25(月) 21:52:52 ID:s+YT1a81
すみません。他スレでスレ違いと言われたので
こちらに書き込みします。
複数のエクセルファイルをドラッグアンドドロップして
いずれのファイルからも特定のセル
(例えば5枚目のシートのE12みたいに)
からデータを拾ってきて、1つのエクセルファイルに
出力するようなツールを作りたいのですが
そういうのってAccessで実現できるのでしょうか?
また、出来るとしたらどうすればいいのでしょうか?
よろしくおながいします。
49NAME IS NULL:2005/07/31(日) 15:50:07 ID:MX1zwxcZ
誘導されて来ました。
つまらない質問で申し訳ありません。
アクセスの宛名ラベルで、一件の住所を複数印刷したいのですが、どういう方法があるのでしょうか?
出来ればストックとして、専用のラベルシート一枚に丸ごと同じ一件のラベルを印刷したいのですが。
どうか教えてください。
50NAME IS NULL:2005/07/31(日) 15:53:19 ID:???
>>49
言いたいことは分かるけど情報不足で正確な回答はできない。

仮に一つのレコードを10回繰り返して印刷したいなら、

Dim i As Integer
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
i = i + 1
If i Mod 10 = 0 Then
Me.NextRecord = True
Else
Me.NextRecord = False
End If
End Sub

でいけるはず。
詳細フォーマット時、行数が10で割り切れる時のみ、次のレコードに移動させる。
51NAME IS NULL:2005/07/31(日) 16:00:05 ID:???
>>49
そーいうラベル印刷については一太郎の方が上手じゃ。
VBAからオートメーションで一太郎操作しようぜ。
52NAME IS NULL:2005/07/31(日) 16:38:02 ID:???
自分のやりたいことも相手にわかるように説明できない香具師には、
VBAなんて高度なことを説明しちゃいけないよ。w
Wordの差込機能を説明すべし。
53NAME IS NULL:2005/07/31(日) 16:51:53 ID:???
>>50が理解できないとなると、印刷テーブル作ってそれでレポート作成するしかないな。
[ID](主キー・オートナンバー),[宛名テーブルの主キー]
でテーブル作って
1  1
2  1
3  1
4  1
5  1
6  1
7  1
と、印刷したい数だけ入れて宛名テーブルと連結させればいいじゃん。
54NAME IS NULL:2005/07/31(日) 17:03:34 ID:???
>>50が理解できないとなると、この板にはこない方がよいと思う。
Wordだよ。Word。w
ツール/はがきと差し込み印刷/差し込み印刷ウィザード
55NAME IS NULL:2005/07/31(日) 17:07:29 ID:???
せっかく誘導されて来たってのにこの酷い仕打ちは流石ですね
56NAME IS NULL:2005/07/31(日) 17:16:08 ID:???
誘導したのは向こうの勝手だからなあ
こっちはこっちの基準で捌くだけのこと
57NAME IS NULL:2005/07/31(日) 17:21:38 ID:???
1.何をどうしたいのか具体的で分かりやすい説明がない。
2.回答があったのに理解できないと述べ、何が分からないのか書かない。
3.別スレで再度質問するときに、情報不足とすでに指摘されているにもかかわらず質問がコピペ。



ここの住民は妥当な対応をしていると思います。
58NAME IS NULL:2005/07/31(日) 19:57:21 ID:???
十分親切な回答をあげてると思うが・・
>>49にはそれもわからんのか

ところで誘導元のスレってどこ?
59NAME IS NULL:2005/07/31(日) 21:12:32 ID:???
スレ立てるまでもない質問・雑談@DB板
http://pc8.2ch.net/test/read.cgi/db/1057985632/515
60まだまだ使える ◆WyUjsIG7BU :2005/08/01(月) 13:50:05 ID:???
>>49
先に確認したいんだけど、

・1ラベルに1つの住所を印刷するのはできている。
・1ページ(上の複数ラベル全て)に1つの住所を印刷したいけどできない。

ということでいい?
61NAME IS NULL:2005/08/01(月) 14:06:17 ID:zZlhZlUl
アクセスをつかってデータベースを作る、練習本のようなものはありませんか?
一応操作方法や、仕組みは分かったつもりなのですが、実際にやってみたいのです。
本屋さんではテクニックや機能の解説本ばかり目立つのですが。
62NAME IS NULL:2005/08/01(月) 14:12:08 ID:???
ttp://www.7andy.jp/books/detail?accd=31070219

俺これ持ってる。でも買ったはいいけど結局読まなかったなぁ。
6361:2005/08/01(月) 14:14:10 ID:zZlhZlUl
>>62

おおっ、これはよさそうですね。早速のアドバイスありがとうございます。
2003を使ってますけど、似たようなもんですよね。
64NAME IS NULL:2005/08/01(月) 14:37:44 ID:???
>>63
2003のもあるぞ。
でも無駄に分厚いだけって印象だったな(読んでないので分からない)。
正直、自分がほしいもの作った方が身に付くと思うんだけどなぁ。
65NAME IS NULL:2005/08/01(月) 15:22:31 ID:PZzSeLmD
>>60
その通りです。
>>53の方法は思いつきましたが、それではない方法が知りたいのです。
>>50の式は、どこで使えばいいのかが解りません。

初心者が詰まらない質問をして申し訳ありません。
66NAME IS NULL:2005/08/01(月) 15:43:19 ID:???
これはもう、どんな回答をしたところで
「その方法は思いつきましたが、それではない方法が知りたいのです。」
で返されそうなヨカソ・・・
67まだまだ使える ◆WyUjsIG7BU :2005/08/01(月) 15:45:56 ID:???
>>65
> >>50の式は、どこで使えばいいのかが解りません。
今後質問するときは「VBAはさっぱりわかりません」と書こう。

> 初心者が詰まらない質問をして申し訳ありません。
どんな質問をするのも自由だけど、
> >>53の方法は思いつきましたが、それではない方法が知りたいのです。
みたいなのを先に書かないと嫌われる。

別の方法としては、レポート全体を1ページ1レコードで
デザインし直す方法があるけど。
何故>>53の方法が採用できないのかその辺の動機が
わからないと、それがベストまたはベターな方法なのかは
さっぱりわからないけどな。
68NAME IS NULL:2005/08/01(月) 15:59:53 ID:???
>>50の書き方は非常に親切でVBA何も分からない人でもレポートデザイン画面から
VBエディタ開いて行末にコピペするだけで動く素敵コード
69NAME IS NULL:2005/08/01(月) 20:39:06 ID:???
書籍のほうも、「買ってみたけどこんなものではない書籍が
欲しいのです。もっと独学向けみたいな。」という書き込みが
くるんだろうな・・・
勉強しようという意思が足りなさ杉。
70NAME IS NULL:2005/08/01(月) 22:50:26 ID:bL6QjO98
だから、何でWordやExcelでは駄目なんだよ?w
71NAME IS NULL:2005/08/01(月) 22:53:03 ID:???
一太郎だってば!ヽ(`Д´)ノ
72NAME IS NULL:2005/08/01(月) 22:54:19 ID:DvU03ZQZ
DBサーバにMDBを置いて共有するのと、クライアントにMDB置くのと
ではレスポンスって違うのですか?
サーバに置いて共有にした場合はテーブル作成クエリとかでワーク
テーブル作成する場合に、ユーザ毎に名前をユニークにする必要が
あるので面倒なんですが。
73NAME IS NULL:2005/08/01(月) 23:06:28 ID:???
どこかで>>72の質問読んだことあるなぁ。
特に下の3行はコピペの予感。
74NAME IS NULL:2005/08/01(月) 23:07:49 ID:???
>>72
クライアントに置けば万事解決。
75NAME IS NULL:2005/08/01(月) 23:11:13 ID:???
>>72
サーバーに置いたら遅い。Accessは、エンジンがクライアント
で動作するのが原因。詳細は、MSの技術情報なりググるなりし
て下さい。厳密に正確な説明ができないので。
テーブル作成クエリというのを考えているなら、システムMDBと
データMDBをわけてシステムMDBをクライアントに配布すればい
い。ついでにいえば、テーブル作成クエリよりは前もってダミー
テーブルを用意しておいて追加クエリ・削除クエリを使った方
が良いような・・・更についでにダミーのMDBを用意したりして。
76NAME IS NULL:2005/08/01(月) 23:27:39 ID:???
本社のDBサーバに、FLET'S光のVPNで繋がっている支店の
クライアントPCのMDBからODBCで繋ぐのって危険ですか?
サーバはWin2000&MySQLを使ってるのですが、DBはMS-SQLにした
方が良いですか?
77NAME IS NULL:2005/08/01(月) 23:30:38 ID:???
複数ユーザーが更新するクラサバでDBをACCESSにするのは危険っすか?
MS-SQLは高すぎるし・・・MySQLやポスグレってのも考えてます。
78NAME IS NULL:2005/08/01(月) 23:38:01 ID:???
危険です
79NAME IS NULL:2005/08/01(月) 23:42:22 ID:???
>>76もどっかのスレで読んだことあるぞ。
80NAME IS NULL:2005/08/01(月) 23:49:47 ID:???
>>77
開発元がぼろくそに批判しています。危険です。
ttp://www.microsoft.com/japan/business/offerings/lob/scenario/default.mspx
8177:2005/08/02(火) 00:01:16 ID:???
やはりMS-SQLを購入してADPにしろってことですねw
8277:2005/08/02(火) 00:04:43 ID:???
SQL Server 2005 Express Edition + MS-ACCESSにしますw
83NAME IS NULL:2005/08/08(月) 16:08:06 ID:???
「H15.11.11(ge.mm.dd)」や、「平成15.11.11(ggge.mm.dd)」といったテキストにIsDateを使うとFalseが返ってくるんですが
これを日付型に変換できるようにする方法はないでしょうか?

今は、↑の文字列日付の文字数と、二つの[.]の位置を調べて日付パターンを判断して、
それぞれに適した値でmidやrightを使って数字取り出した後
再結合して平成15年11月11日とIsDateでTrueになる書式に変換しているんですが、
もっと確実で簡単な方法があったら教えてください。
84NAME IS NULL:2005/08/08(月) 20:25:04 ID:???
>>83
Replaceを利用して、 . を / に変更すれば。
85NAME IS NULL:2005/08/08(月) 20:49:45 ID:???
>>84
[.]を[/]にするだけで日付として認識してくれるんですね。
今日作業していたかなりの時間は無駄だったようです(ノA`)アリガトウ
86NAME IS NULL:2005/08/08(月) 21:53:14 ID:???
勤務日報を作成しているんですが、縦に対象月の日と曜日を日曜・祭日も
含めて出力したいのですが、カレンダーテーブルを作成しないで表示させる
方法があったら教えて下さい。<(_ _)>
87NAME IS NULL:2005/08/09(火) 07:31:08 ID:???
>>86
祝祭日は日が毎年変わるものがあるので(春分の日とかね)、
マスター化しないと厳しい。
88NAME IS NULL:2005/08/10(水) 15:33:54 ID:0GFXLu5y
>>87
つ計算式
int ( 20.8431 + 0.242194 * ( $year - 1980 ) - int ( ( $year - 1980 ) / 4 ) )
int ( 23.2488 + 0.242194 * ( $year - 1980 ) - int ( ( $year - 1980 ) / 4 ) )

計算で出せる
成人の日
海の日
,敬老の日
体育の日

後は確定日

ますたはいらん。
89NAME IS NULL:2005/08/10(水) 18:17:28 ID:???
>>88
春分・秋分の日に、こんな計算式があったとは・・・

国民の祝日に関する法律(祝日法)は過去に何度も改正されてるから
自動計算なんて意味がないものと最初から決めつけて
調べてもいなかった。

勉強になったよ、ありがd。
90NAME IS NULL:2005/08/10(水) 22:30:18 ID:???
あーダメダメ。
春分・秋分の日は、国立天文台の
天体観測によって翌年分が決まるから
計算とは微妙にずれる可能性がある。
マスター化して毎年チェックするのが一番。
91NAME IS NULL:2005/08/10(水) 22:42:31 ID:???
そのズレは過去どれくらい起きたんだ?
9286:2005/08/11(木) 08:31:05 ID:???
みなさん有り難うございます。
やはり>>88さんの計算式を下にテーブル(マスタ)を作成するのが
無難なんですかね。
93NAME IS NULL:2005/08/11(木) 09:27:44 ID:???
つーか、年末年始や夏期休暇、場合によっては創立記念日などのローカルな休業日もあるだろう。
定型的なシステムとして使うならマスタ化必須。一時的なデータ分析ならどっちでも良い。
要は、どのように使うかだ。
94NAME IS NULL:2005/08/11(木) 14:50:41 ID:lL0oEPW+
教えてください。
印刷クエリーをマクロ登録して、メニュー画面にも登録しました。
メニューから印刷プログラム選択すると、メニュー画面も印刷されてしまうのは何故なんでしょうか?
95NAME IS NULL:2005/08/11(木) 15:38:42 ID:???
印刷クエリって初めて聞いた。最近はクエリで印刷もできるんだな。PRINT SELECT〜って感じか。すごいなぁ。
96NAME IS NULL:2005/08/11(木) 15:54:07 ID:lL0oEPW+
>>95さんすいません。
クエリで作ったものを印刷する様にするです。
97NAME IS NULL:2005/08/11(木) 15:58:58 ID:???
>>96
それでもさっぱり意味が分からない。ちゃんとレポート呼び出してる?
98NAME IS NULL:2005/08/11(木) 16:25:20 ID:???
test
99NAME IS NULL:2005/08/11(木) 16:27:35 ID:???
よし、規制解除。頼むからオレと同じISP経由の奴、規制される
書き込みはやめてくれ。

>>96
オレも <<97 同様、その説明ではさっぱりわからん。どういう設
定をしてるのか中身がまるでつかめんし、マクロ使ってる時点
でちょっとな。
100NAME IS NULL:2005/08/11(木) 16:32:53 ID:???
>>99
お前のISPがどこだか分からないのに気をつけようがないよw
101NAME IS NULL:2005/08/11(木) 21:06:57 ID:???
いやぁ、晒してもそういう輩には意味がないでしょうが、ぷららっすよ。
102NAME IS NULL:2005/08/11(木) 21:49:12 ID:???
ぷららじゃ仕方ないよ……
103NAME IS NULL:2005/08/12(金) 08:33:08 ID:???
test
104NAME IS NULL:2005/08/15(月) 17:38:59 ID:???
>>90
>>91
ttp://www.nao.ac.jp/J/QA/faq/a0301.html
ttp://www.nao.ac.jp/reki/youko/youko06/rekiyou061.html

平成18年(2006)暦要項までは発表されているので、
2006年まではマスター
2007年以降は計算値(ただし暦要項発表まで)かな。
105NAME IS NULL:2005/08/16(火) 11:27:02 ID:???
>>104
処理を分けるくらいなら、素直にマスターがいいと思います。
106NAME IS NULL:2005/08/16(火) 13:23:00 ID:gXAPHmHc
>>105
漏れの場合、日付マスタは作るが、
自作関数に期間やパラメータ渡して追加SQLを
発行し自動生成している。

結局のところ、チェックは必須だから、全自動はできんが、
大幅な省力化は可能だ。

分ける云々の話じゃないんだよ。
107NAME IS NULL:2005/08/16(火) 23:46:15 ID:???
>>106
最初からそう説明しろやぁ〜ボケェ!!
108NAME IS NULL:2005/08/17(水) 02:34:48 ID:apoSnIV+
教えてください

テーブルで
ID 数値型
氏名 テキスト型
チェック1 数値型
チェック2 数値型
チェック3 数値型
チェック4 数値型
チェック5 数値型
を作って、チェックの件数を知りたいんですが
クエリ上でcount([チェック1]&[チェック2]&[チェック3]&[チェック4]&[チェック5])とするとエラーになってしまいます
なにか集計を取る方法は無いでしょか?
109NAME IS NULL:2005/08/17(水) 07:24:59 ID:???
その説明じゃチェック状態と未チェック状態で収められているデータの違いが
サッパリ分からないので的確な答えを出しようがないんだけど

チェック状態→Null値以外の色んな数値
未チェック状態→Null値
だとするなら、

5+IsNull([チェック1])+IsNull([チェック2])+IsNull([チェック3])+IsNull([チェック4])+IsNull([チェック5])

もしくは一個ずつIIF使ってチェック状態→1、未チェック→0に変えて全部足しちゃえば?
110108:2005/08/17(水) 21:03:59 ID:apoSnIV+
>>109
すいません説明不足で
チェック状態の数値は1〜20になります
未チェックは0です

とりあえず
5+IsNull([チェック1])+IsNull([チェック2])+IsNull([チェック3])+IsNull([チェック4])+IsNull([チェック5])
でやってみます
111NAME IS NULL:2005/08/17(水) 21:09:05 ID:???
おおおおおおおおおおおおおおおおおおおおおいいいいいいいいいいいいいいいいいい
未チェックがNull値じゃなきゃ意味ないだROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
何考えているんだあああああああああああああああああああああああああああ
112NAME IS NULL:2005/08/17(水) 21:22:36 ID:???
ということは未チェックはゼロで、チェック状態は正なんだな。

SELECT ID, 氏名,
    (Sgn(チェック1)+Sgn(チェック2)+Sgn(チェック3)+Sgn(チェック4)+Sgn(チェック5)) AS チェック件数
FROM テーブル
113108:2005/08/17(水) 21:27:14 ID:apoSnIV+
ごめんなさい
未チェックはnullでした
んでうまくいきました
すんませんありがとうございます!
114NAME IS NULL:2005/08/17(水) 21:27:31 ID:???
むしろ

チェック件数:Sgn(チェック1)+Sgn(チェック2)+Sgn(チェック3)+Sgn(チェック4)+Sgn(チェック5)

と書いてあげないと理解できないと思う
115NAME IS NULL:2005/08/17(水) 21:28:01 ID:???
っておい!wwwwwwwwwww
116溺れかけ:2005/08/19(金) 01:33:25 ID:9+QGIz/A
スレ違いだったらごめんなさい。お力を。

個人情報のDBをつくってまして、ベータ版に入力した情報を新しいリリース版に移項したいと思っています。

テーブルの項目が若干違うのでそのままではインポートできません。
それともうまいインポートの仕方があるのでしょうか?

・エクセルでの書き出し・インポート
・ベータ版のファイルのフォームを現在のものと一致させる
・エクセルに書き出した情報をメールに切り分ける
 (タブ区切りのメール読み込み機能があります)

この辺でしょうか?
117NAME IS NULL:2005/08/19(金) 01:56:28 ID:???
>>116
俺ならインポートできる形式のビューを強引に作る、と一瞬思ったけど…

> (タブ区切りのメール読み込み機能があります)
テストしよーぜ。
ttp://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_080.html
118?M?e^?(C)? ̄:2005/08/19(金) 02:29:05 ID:9+QGIz/A
貴重なご意見ありがとうございます。サイトを拝見してみますね。
119NAME IS NULL:2005/08/19(金) 04:50:01 ID:8shkx4iU
>>117
よく、こんな意味不明なもんにレスできたな。。。
エスパーか(w
120NAME IS NULL:2005/08/19(金) 08:43:51 ID:???
テーブルの項目が若干違うだけで他人に質問かよ。しかも、MDB→MDB
だろ。どちらかのテーブルをリンクするとかIN "別のMDBのフルパス"を
使うとか・・・。これらを利用した上で、ちょっこちょこっとVBA組むとかでき
そうなもんでしょうに。
121NAME IS NULL:2005/08/19(金) 12:22:00 ID:???
>>116
120氏が書いているように、若干違う程度だったら
単純に追加クエリで十分と思うが…
フィールド型が違ったり置換等が必要でクエリ内で関数が使えないなら
VBAでやる。
122ゆか:2005/08/22(月) 21:30:17 ID:???
超絶初心者ですいません。
質問ですが、フォームのなかにサブフォームをつくった場合、
サブフォームのコンボボックスは連動できないのですか?
123NAME IS NULL:2005/08/22(月) 21:44:39 ID:???
何の値とどう連動させたいのかが分からないので答えません
124NAME IS NULL:2005/08/22(月) 22:04:16 ID:???
123さん。
人がいたんですね。。。
えっと、納品書をフォームでつくって、そのなかにサブフォームで
商品明細を入れたいんです。
で、その商品のコンボボックスを商品一覧のテーブルと連動させたいんですが・・・
明細のフォーム単独だと出来るんですが、納品書のフォームに埋め込むと
出来なくなります。
なんか、
125ゆか:2005/08/22(月) 22:11:07 ID:???
>>123さん
名前を入れようとして送信してしまいました。。。

なんか"式が複雑すぎます”みたいなのが出るんですが…
もし良かったら教えてください。
126NAME IS NULL:2005/08/22(月) 22:15:52 ID:???
単票形式の納品書フォームの中に
帳票形式の明細がサブフォームとしてあって
その中のコンボボックスが明細の商品名だか商品IDと連結してあって
それの値集合ソースが商品一覧(商品マスタ?)のテーブルってこと?
いやでもこれじゃ何とも連動してないよな。
良く分からないけど、その問題の値集合ソースコピペしてみて。
127ゆか:2005/08/22(月) 22:31:29 ID:???
コンボボックスが複数あって、
”商品分類”コンボがいかの通りです。
SELECT 商品台帳.商品分類 FROM 商品台帳 GROUP BY 商品台帳.商品分類;
で、”商品分類”で抽出されて連動する”商品名”コンボが以下の通りです。
SELECT 商品台帳.商品名 FROM 商品台帳 GROUP BY 商品台帳.商品名, 商品台帳.商品分類 HAVING (((商品台帳.商品分類)=Forms!インボイス![売り上げ明細 サブフォーム]!商品分類));

コピペしたら、なんか複雑ですね。
128NAME IS NULL:2005/08/22(月) 22:41:52 ID:???
ようやく理解した。
最初に分類を選択させて次のコンボボックスで出てくる候補を絞らせたいのか。
サブフォームで読み込まれると、クエリで参照する位置が変わるのが原因でね?

Forms![メインフォーム名]![サブフォーム名].Form![絞り込み用コンボボックス名]

とすれば解決するはずだけど「式が複雑」のエラーが解消されるかどうかは不明。
129ゆか:2005/08/22(月) 23:05:25 ID:???
>>128
[Forms]![インボイス]![売り上げ明細 サブフォーム]![商品分類]
になってるんですが”式が複雑”が出てきます。
ちなみに[インボイス]![売り上げ明細 サブフォーム]!のところをいろいろいじってみましたが、
この形式意外だとコンボボックスが空白になってしまいます。
ところで、値集合ソースコピペしただけで、なんかズバリしようとしていることがわかって
びっくりしてます。
びkkるい。
130NAME IS NULL:2005/08/23(火) 07:24:17 ID:???
絞り込み用
SELECT DISTINCT 商品台帳.商品分類 FROM 商品台帳

商品選択用
SELECT 商品台帳.商品名
FROM 商品台帳
WHERE (((商品台帳.商品分類)=Forms!インボイス![売り上げ明細 サブフォーム]!商品分類))
GROUP BY 商品台帳.商品名

にしてみたら?
というか、商品選択用で商品名グループ化する必要性あるの?
商品マスタの中で重複の可能性があるものを明細に入れるのは設計上問題あると思うんだけど。
131NAME IS NULL:2005/08/23(火) 09:01:49 ID:???
なぜ、分類コード・商品コードがないんだろうって素朴な疑問と、
そのような使い方を考慮したDB設計をするなら、分類マスタも
作成して絞り込みようのグループ化もしくはDISTINCTも使わな
くていいようにって考えるが。
商品なんて複雑なテーブルになる訳ないんだから、できる限り
単純なSELECTにしたいよな。
132NAME IS NULL:2005/08/23(火) 09:05:41 ID:???
自分で全部やってるなら問題有りだが、テーブル設計は別の人がやってるのかもしれないしなぁ。
市販のソフトのデータに無理矢理接続とか。んなわけないか。
133NAME IS NULL:2005/08/23(火) 17:11:15 ID:EVxI1KRA
>>130
テーブル設計のしょぼさはおいといて・・・

SQL文がわかりにくい。
後でパニックにならないようにこうゆう風に書いとくもんだ

dim sSQL as string
dim lngCategory as long ’商品カテゴリ番号

lngCategory=Forms!インボイス![売り上げ明細 サブフォーム]!商品分類))

sSQL="SELECT 商品分類 FROM 商品台帳"

sSQL="SELECT 商品台帳.商品名"
sSQL=sSQL &" FROM 商品台帳 "
sSQL=sSQL &" WHERE 商品分類=" & lngCategory
sSQL=sSQL &" GROUP BY 商品台帳.商品名 "

このままコントロールソース等に放り込めばいい。


134NAME IS NULL:2005/08/23(火) 17:51:11 ID:???
>>133
VBAでRowSource書き替えるとは書いてないぞ。
コンボボックスのプロパティで値集合ソースに入れてるんだろ。
135NAME IS NULL:2005/08/23(火) 18:53:15 ID:???
>>133
いつの間に商品分類がLongになったのだぁ。それは揚げ足取りなのでおいといて
ですね、見易いっていってもそこまで細かく分ける必要ないんじゃないの。
この程度の長さのSQLでパニックになるなら、手を引いた方が良いと思われるし。
136NAME IS NULL:2005/08/23(火) 18:56:43 ID:???
というかちょっと待て。
値集合ソースに変数って使えるのか? 今まで知らなかった('A`;)
137135:2005/08/23(火) 21:24:18 ID:???
>>133
> このままコントロールソース等に放り込めばいい。
というのは、良い方向に解釈してあげて、
Me![コンボ].RowSource = sSQL
ってしろって意味ではないかと。プロパティですから、直接変数とか
VBAのロジックは使えないよ。=関数名がいいところだよね。
138NAME IS NULL:2005/08/23(火) 21:33:42 ID:???
だよな。焦った。
どうせVBA使うんだったら分類の更新後処理で直接WHERE条件指定しちゃえばいいのに。
139135:2005/08/24(水) 06:22:03 ID:???
>>138
オレの場合で申し訳ないが、この程度ならなるべくVBAは使わな
い。更新後処理で、分類を抽出条件にしてるコンボのRequeryは
するけど。
抽出条件に関しては、Forms〜とフルで指定しないよな。しかもだ、
メイン/サブなんてまるで関係ないだろうに。商品分類も商品名も
サブフォームにあるコントロールだろ。
クエリの抽出条件で、Form![商品分類]とすればいいだけじゃねぇ
のか。
140NAME IS NULL:2005/08/24(水) 07:07:51 ID:???
>>139
適当なこと書くなって。forms!いらん。
141139:2005/08/24(水) 10:40:53 ID:???
>>140
だから、Forms!〜っては書かないっていってるだろう。
Form![商品分類]だってば。んで、これはVBAで組むんじゃなくて
クエリの抽出条件に設定。
VBAでやるなら、Forms!〜なんて文字列を抽出条件に設定せず
に、Me!〜で値をWHEREに設定するよ。
142NAME IS NULL:2005/08/24(水) 10:59:55 ID:???
>>141
だから、コンボボックスの時はforms!あると動作しないんだよ。
forms![商品分類]で動くのはレコードソース。
[商品分類]だけで動くのはコンボボックスの値集合ソース。
143142:2005/08/24(水) 11:01:18 ID:???
ああ、ごめん。思い切り勘違い。
144NAME IS NULL:2005/08/24(水) 14:01:20 ID:???
VBAでテキストボックスのDefaultValueを変更しようとしているんですが、
その中の候補の一つに「規定値を設定しない」設定を組み込みたいと思っています。
しかし、Me.txtBox.DefaltValue = Nullではエラーが発生してしまってうまくいきません。
= ""だと、Null値ではなく、""が規定値となってしまうため、望み通りの形になりません。
この場合はどう設定するのが正しいのでしょうか?
145144:2005/08/24(水) 14:08:10 ID:???
DefaltValue = "Null"でいけたっぽいです('A`)
146NAME IS NULL:2005/08/24(水) 19:13:18 ID:???
・・・・

それはそれですごい。
147NAME IS NULL:2005/08/24(水) 20:02:17 ID:???
DefaltValueの値になるのは"Null"ではなくて""の中身のNullだから別に凄いことじゃない。
文字列を設定したい場合は
"""設定したい規定値"""
もしくは
"'設定したい規定値'"
でやらないとダメ。
148ゆか:2005/08/24(水) 23:16:28 ID:???
昨日の夜は居酒屋さんで女子バナに興じてしまい、
気持ちよくアクセスのことを忘れていました・・・

ちょっと皆さんのレスの内容についてけません・・・
とりあえず、ひとつひとつ実際にやってみます。

サブフォームつきの納品書作るのは百年早いのかなあって気がしてきました・・・
インヴォイスのフォームから、明細のフォームに移動するトグル?をつくって
それぞれ入力するようにしようかと考え中です。
それでクエリで何とかするような・・・

アクセスってむずい。
149NAME IS NULL:2005/08/24(水) 23:58:20 ID:???
>>148
アクセスは簡単です。アナタの脳みその方がむずいです。
何か見当違いなことをしてるように思える。
150NAME IS NULL:2005/08/27(土) 17:06:42 ID:sRWjFOQG
まいったよ
前任者は技術者の派遣だったらしいんだがテーブルに全然主キーが付いてねぇー
製品の管理履歴を取りたいんだが、会社も会社で統一的な商品コードがそもそも無く・・・
おまけに取引先からの商品データで商品型番とかがコロコロ変わる
こんなんでどうやって差分取れって言うんだよw


151NAME IS NULL:2005/08/27(土) 17:56:16 ID:???
>>150
よくある話だな。
152NAME IS NULL:2005/08/27(土) 18:29:04 ID:b5dDYpGB
教えて下さい。
登録されているお客様の住所を一気に変更(更新)すること出来ますか?
例えば、引越し等で住所が変わったお客様の住所を自動的に変更したいです。
主キーは電話番号にしています。
データには電話番号/住所/名前などが送信されてきます。
153NAME IS NULL:2005/08/27(土) 18:51:31 ID:???
>>152
ちょっとエスパー。
送られてくるデータがCSV形式等、読み込みやすい形ならVBAでも使ってできるよ。
Excelで開いて、パーソナルなマクロからADO使ってAccess叩くあたりがありがちな実装かと。
ただ、旧電話番号と新電話番号が載ってないとキー引けないから辛いね。
154NAME IS NULL:2005/08/28(日) 00:16:45 ID:???
>>153
MDBが対象なのに、何故わざわざ処理が遅いADOにするのさ。
DAOで充分でしょ。将来的にMDBではなくなるかもってのなら
別だが。
155NAME IS NULL:2005/08/28(日) 00:24:45 ID:???
DAOはのうち無くなりそうな予感がなぁ……。
速さはピカイチだから俺はDAO使い続けてるけど。
156NAME IS NULL:2005/08/28(日) 11:38:59 ID:???
アクセスって単独でファイルメーカーみたく社内LANで共有とかって出来ます?
157NAME IS NULL:2005/08/28(日) 12:29:53 ID:???
できるよ。壊れやすいけど。Accessはスタンドアロン以外オススメできない。
158NAME IS NULL:2005/09/01(木) 19:28:38 ID:LqWzcuP0
エクセルファイルからAccessテーブルにインポートしようとしたんですが、
セル中の文言の「改行」がレコードに全く反映されません。
改行をレコードの中に反映させるにはどのようにすればいいのでしょうか?

もしかして、Accessのデータベースって文章をデータとして入れることを
前提としていない(改行自体が無理ということ?)のでしょうか?
よろしくおねがいしますです。
159まだまだ使える ◆WyUjsIG7BU :2005/09/01(木) 22:02:47 ID:???
>>158
改行自体が無理いうことはないよ。
160NAME IS NULL:2005/09/02(金) 00:47:00 ID:???
Excelのセル内改行はLFで、CR+LFじゃないんだよね
Accessのフィールド内での改行はCR+LF
161NAME IS NULL:2005/09/02(金) 00:52:22 ID:???
>>158
エクセルのセル内改行はコードが違うよ。確かLF。
REPLACEか何かでLF→CRLFな変換をせにゃならん。

ただ、Accessでは改行を含むレコードがあってもテーブル等の表示高さは一行分が基本だから、
変なところでドツボに嵌るよ。
162161:2005/09/02(金) 00:54:09 ID:???
この過疎板で被るかっ?! スマソ
163158:2005/09/02(金) 09:26:31 ID:EYKu1/Ic
エクセルの情報の中に文章(改行)となっているものがあって、
その情報をDBに入れた後、元のエクセルファイルの情報のまま、
別のエクセルファイルにエクスポートしたい、という目的で
質問しました。

>Excelのセル内改行はLFで、CR+LFじゃないんだよね
>Accessのフィールド内での改行はCR+LF

これは上記のエクセルファイルの情報(改行のある文章)を
改行したままDBに取り込む処理のことでしょうか?
ちなみに私はAccess初心者なので
「CR+LF」というのが何のことだがよく分からないです。
AccessVBAかマクロかなんかの処理でしょうか?
164NAME IS NULL:2005/09/02(金) 09:34:54 ID:???
165まだまだ使える ◆WyUjsIG7BU :2005/09/02(金) 09:40:07 ID:???
>>163
一旦Accessにインポートしたものをそのままエクスポートしたものを
Excelで見ると改行が落ちてるのか?
今やってるインポート/エクスポートの具体的な手順は?
166NAME IS NULL:2005/09/02(金) 09:45:58 ID:???
それ以前に、Access経由する必要あるのか?
167158:2005/09/02(金) 10:56:25 ID:Jv/kFWlg
>>165
申し訳ないです。エクスポートしたらちゃんと反映されていました。
ご迷惑おかけしました。

>>164
昨晩から一昼夜本を見ていろいろ考えてたんですが
万策尽きてあきらめモードに入ってしまってました。
根性が足りないですね、出直してきます。



そんなとこで恐縮なのですが、
リンク機能について質問です。

あるエクセルシートの内容をAccessテーブルにリンクさせたいです。で、
そのエクセルシートの「一部」の内容をテーブルの「一部」に
反映させたいのですがうまくいきません。
あくまでエクセルシートの構成のまましか反映させられないのでしょうか。
しかもデータ型が変に設定されてしまい、変更することもできないです。
どうすればいいのでしょうか。
168NAME IS NULL:2005/09/02(金) 11:28:54 ID:???
>>167
「A1のセルの内容をB1のセルに反映させたいのです。」

こう聞かれても、A1の値をB1にコピぺしたいのか
B1の計算式に「=A1なんたら〜」と入れたいのか
どっちなのか判別つかない。

もうちょっと具体的に。
169NAME IS NULL:2005/09/02(金) 11:40:50 ID:???
>>167
お前はどうしてそんなに説明下手なんだ? 病気?
170158:2005/09/02(金) 13:16:32 ID:LeLo58NJ
>>169
すいません。
リンク使うのはあきらめます。

今仕事中でまわりに聞く人(Accessに精通してる人)がいないので
誠に恐縮ながら質問してます。
ここに書き込んでるの周囲にばれると気まずいので
急いで打っているのでどうしても説明が足りなくなりがちで
申し訳ないです。
171NAME IS NULL:2005/09/02(金) 13:34:11 ID:???
>>168-169 は、ちょっと厳しい意見かなと思ったが、
>>170
で納得したよ。
Editorで疑問点をまとめる作業をすればよい。
2chには、それをコピペすればいいだけで、少し頭使え。
172NAME IS NULL:2005/09/03(土) 10:05:29 ID:???
>>167
え、Excelにエクスポートしてセル内改行されてたらオッケーなの?
いやオッケーならいいけど。

(CR+LFになってるとエクスポートしたときにゴミが入ることになっちゃうしね)


あとリンクはシートそのまましかダメだったと思う。
173NAME IS NULL:2005/09/04(日) 23:48:02 ID:r/HUsqS0
単純なクエリの抽出なのですが・・・。
区フィールド、町フィールドをクエリで作成して
そのクエリを元に抽出フォームを作成しました。


そして、クエリの抽出条件に以下の式を入力しました。

Like "*" & [Forms]![F_抽出]![区] & "*"
Like "*" & [Forms]![F_抽出]![町] & "*"

しかし、大本のデータに

[区]フィールド→品川区
[町]フィールド→空白

・・・と、どちらかが空白の場合、そのレコード
を抽出してくれません。
このように、空白フィールドを持つレコードをも
抽出するにはどのようにしたらようですか?
初歩的な質問で申し訳ありませんがよろしくお願いいたします。
174NAME IS NULL:2005/09/05(月) 01:01:17 ID:???
>>173
オマエ、マルチしたな!!
175NAME IS NULL:2005/09/05(月) 01:01:37 ID:???
697 名前:名無しさん@そうだ選挙にいこう[] 投稿日:2005/09/04(日) 23:48:37
単純なクエリの抽出なのですが・・・。
区フィールド、町フィールドをクエリで作成して
そのクエリを元に抽出フォームを作成しました。


そして、クエリの抽出条件に以下の式を入力しました。

Like "*" & [Forms]![F_抽出]![区] & "*"
Like "*" & [Forms]![F_抽出]![町] & "*"

しかし、大本のデータに

[区]フィールド→品川区
[町]フィールド→空白

・・・と、どちらかが空白の場合、そのレコード
を抽出してくれません。
このように、空白フィールドを持つレコードをも
抽出するにはどのようにしたらようですか?
初歩的な質問で申し訳ありませんがよろしくお願いいたします。
176NAME IS NULL:2005/09/09(金) 13:04:36 ID:???
基本的な質問ですんません

Accessで作ったファイルを、Accessの入ってないPCで使うには、
元のファイルを、開発者用の高価なAccessで作る必要がある
みたいな事を昔聞いたのですが、調べても情報出てきません

私の勘違いなのか、それとも他に方法はあるのか教えて下さい
177まだまだ使える ◆WyUjsIG7BU :2005/09/09(金) 13:34:02 ID:???
178NAME IS NULL:2005/09/09(金) 13:34:47 ID:???
179NAME IS NULL:2005/09/09(金) 13:37:15 ID:???
>>177
お前さんも昼休み明けか。
180NAME IS NULL:2005/09/10(土) 01:40:16 ID:33HAPUa/
質問です。
アクセスで、「次の誕生日までの日数」を計算したいんですが、
どなたかその方法をご存じの方、教えてください。お願いします。
エクセルでは =DATEDIF(TODAY(),DATE(YEAR(TODAY())+400,MONTH(G2),DAY(G2)),"YD")
で出来たんですけど。
181NAME IS NULL:2005/09/10(土) 07:20:44 ID:???
クエリでやるなら

IIf(dateserial(year(date()),month([誕生日]),day([誕生日]))>date(),
dateserial(year(date()),month([誕生日]),day([誕生日]))-date(),
dateserial(year(date())+1,month([誕生日]),day([誕生日]))-date())

長いな
182まだまだ使える ◆WyUjsIG7BU :2005/09/10(土) 08:27:28 ID:???
あ、先越された。

VBA版。

Sub Test()
  MsgBox GetDaysUntilNextBirthday("1969/9/8")
End Sub

Function GetDaysUntilNextBirthday(a_dBirthday As Date) As Long
  Dim l_dToday As Date
  Dim l_dNextBirthday As Date

  l_dToday = Date
  l_dNextBirthday = DateSerial(Year(l_dToday), Month(a_dBirthday), Day(a_dBirthday))
  If l_dToday > l_dNextBirthday Then
    l_dNextBirthday = DateAdd("yyyy", 1, l_dNextBirthday)
  End If

  GetDaysUntilNextBirthday = DateDiff("d", l_dToday, l_dNextBirthday)
End Function
18333HAPUa/:2005/09/10(土) 08:40:05 ID:33HAPUa/
181さん、182さん、早速ありがとうございました。
まだ初心者でVBAは敷居が高いため、クエリを使ってみました。
成功しました。ありがとうございます。
これからも頑張ってみます。
184NAME IS NULL:2005/09/10(土) 08:49:50 ID:???
>>183
クエリでっていってるけど、それもVBAだぜ。
185NAME IS NULL:2005/09/10(土) 10:09:14 ID:h/H18cOA
■■■■■■■■■■■■■■■■
■                     ■  違う板にコピペすると、四角の枠の中に
■                     ■  メッセージとURLが現れる不思議な絵。
■                     ■
■                     ■  (その仕組みがリンク先に書いてある)
■                     ■
■                     ■  この原理を応用すると、まったく新しい
■                     ■  コピペが作れる予感。
■■■■■■■■■■■■■■■■
186NAME IS NULL:2005/09/10(土) 10:13:41 ID:???
18733HAPUa/:2005/09/10(土) 19:30:52 ID:33HAPUa/
>>184 え゛ッ!? そうなんですか?

>>181さん、もう一つだけ助けていただけますか?
誕生日が空欄の場合、次の誕生日までの日数が「♯Error」となりますが、
これを回避して例えば空欄を返させることは出来るんでしょうか?
初心者なりに、冒頭に IIf([誕生日]="","", なんて入れてみましたが、
そしたら計算結果が全て「♯Error」になってしまいましたA^^;
188182:2005/09/10(土) 19:45:32 ID:???
まだまだ使えるにも聞いてやれよ……。
空欄ってのが普通にNull値なのか""をわざわざ入れているのか分からないけど、
Null値だったら↓でいけるんでね? 更に長くなるけど。

IIf(IsNull[誕生日],null,
IIf(dateserial(year(date()),month([誕生日]),day([誕生日]))>date(),
dateserial(year(date()),month([誕生日]),day([誕生日]))-date(),
dateserial(year(date())+1,month([誕生日]),day([誕生日]))-date())
)


それはともかく A^^; が (^A^;) に見えた
18933HAPUa/:2005/09/10(土) 20:48:58 ID:33HAPUa/
ありがとうございます! 大成功しました。
一つだけ、頑張って問題解決しました。
最初の行の[誕生日]の前後を括弧で囲わなきゃいけないんですね。
いやいや勉強になります。
ありがとうございました!
190名無しさん@そうだ選挙に行こう:2005/09/11(日) 09:04:43 ID:???
>>189
もうVBAを使ってるんだってわかったでしょ???
IIfとかDateSerialとか、いろいろと用意されてる関数を組み合わせて使って
るだけだよ。・・・日付型のフィールドなんだから、"" はないっしょ。
せっかく教えてもらったんだから、関数の仕様ぐらいヘルプで見て覚えれば。
191NAME IS NULL:2005/09/12(月) 16:55:03 ID:???
初めまして。
Paradox使用でのSQLについての初歩的な質問です。

他サイトでの説明が理解できないぐらいのレベルなのですが
どうか御教授よろしくお願いいたします。

select A.管理番号,A.設置年度,B.布設年度
from A,B,C
where (B.作業番号 = C.作業番号 and B.手順番号 = C.起点番号)
and (A.作業番号 = C.作業番号 and A.起点番号 = C管路.起点番号)
and (B.布設年度 like '%S%')


B.布設年度は「S58、H08」などで書かれています。
A.設置年度は「1999」などの西暦で入力されています。

B.布設年度を西暦に変換し、尚且つA.設置年度と合っているかどうかを調べたいのです。

以下の文はAccessでのSQLの文です。

and (substring (B.布設年度,2,1) <> '0')
and ((A.設置年度)<>(substring(B.布設年度,2)+1925))

上記2行のAccessの文はそのままParadoxに持っていく事が出来ません。

どのように変更したらよいでしょうか?

皆様よろしくお願いいたします!
192NAME IS NULL:2005/09/12(月) 23:42:00 ID:???
>>191
ここはAccessのスレであってParadoxのことを教えるところではない。

> 以下の文はAccessでのSQLの文です。
WHEREを抜粋したんだろうが、1925を加算してるということは昭和しか
考慮してないぞ。平成はどうした?
substringがAccessで使用できるSQLの関数(VBAではなかったはず)
であって、これに変わるParadox用の関数を探せばいいだけだろ。
でもよ、文字列と数値とごちゃ混ぜにするなよ。

Accessでは(回答は一つではない)オレの場合、文字列でNullはない
としたら、A.設置年度 <> Format(CDate(B.布設年度 & '/01/01'), 'yyyy')
数値で比較する場合なら、Yearとか使えるな。
193NAME IS NULL:2005/09/12(月) 23:44:19 ID:???
>>192
マルチに回答乙
194192:2005/09/13(火) 00:36:26 ID:???
>>193
たまたま、暇だったので。やぁ、マルチとは気が付かなかった。
195ビギナ:2005/09/14(水) 00:44:35 ID:LEHKDPdA
フォームの [レコードセット] プロパティを [ダイナセット (矛盾を許す)] に
設定する方法を教えてください。
簡単すぎる質問でスミマセン。アクセスを使える友達が皆無なので。
196NAME IS NULL:2005/09/14(水) 06:21:05 ID:???
>>195
フォームのプロパティで設定
197NAME IS NULL:2005/09/14(水) 13:19:30 ID:rn335wAJ
select (case 年 when 1999 then 売上 end),
(case 年 when 2000 then 売上 end),
(case 年 when 2001 then 売上 end)
from 年間売上

というように、
行方向のデータを列方向に入れ替えたいのですが、
"1999" "2000" "2001" の値を動的に変えたい場合は
どのように書いたら?
198NAME IS NULL:2005/09/14(水) 13:39:40 ID:???
クロス集計
199NAME IS NULL:2005/09/14(水) 13:40:15 ID:???
ってマルチかよ。答えて損した。

【帰ってきた】SQL質疑応答スレ
http://pc8.2ch.net/test/read.cgi/db/1124178925/18

18 名前:NAME IS NULL[] 投稿日:2005/09/14(水) 13:22:31 ID:rn335wAJ
select
(case 年 when 1999 then 売上 end),
(case 年 when 2000 then 売上 end),
(case 年 when 2001 then 売上 end)
from 年間売上

というように、
行方向のデータを列方向に入れ替えたいのですが、
"1999" "2000" "2001" の値を動的に変えたい場合は
どのように書いたら?
200NAME IS NULL:2005/09/14(水) 15:23:58 ID:???
>>199
m9(^Д^)プギャー
201NAME IS NULL:2005/09/14(水) 16:27:11 ID:???
おそらく次は
「2000年の売上がないと2000年の列が抜けてしまうのでどのように書いたら?」
とかいう質問で攻めてくるはずなんで、華麗にスルーよろ。
202ビギナ:2005/09/14(水) 22:18:36 ID:LEHKDPdA
>>196 ありがとうです。フォームのデザインでプロパティを開くんですね。
やっと分かり、データ更新が出来るようになりました。感謝です。
203NAME IS NULL:2005/09/16(金) 16:32:16 ID:???
Form で、

Me.Filter = "なんとか"
Me.FilterOn = True

した直後に、Me.Recordset.RecordCount (見つかったレコード数)を見たら、
1件だった。でも何秒かたつと、11件とかになってる。
恐らく、探してる最中だからだと思うので、Filterし終わったかどうか解るプロパテ
ィを探したんだけど無さそうだ。

見つかったレコード数をうまく取得出来る方法わかりますか?
204まだまだ使える ◆WyUjsIG7BU :2005/09/16(金) 16:56:00 ID:???
Recordset.MoveLast
した後
Recordset.RecordCount
を取得。
205203:2005/09/16(金) 17:04:13 ID:???
おお!出来た。

さんきゅー!
206NAME IS NULL:2005/09/17(土) 01:23:11 ID:???
>>205
いいのか???カレントレコードが最終レコードになってしまわんか?
MoveFirstして戻せばいいのだが、それでは美しくない。
Recordset ではなく RecordsetClone を使えばいいぞ。

まだまだ使える は、まだまだダメだな。
207203:2005/09/20(火) 11:48:47 ID:???
ほうクローンはその為にあったのか。
さんきゅー
208ビギナ:2005/09/20(火) 23:39:24 ID:lMXR0Sjb
リレーションシップを組んだ二つ以上のテーブルで、リレーションシップを
維持したままサブテーブルの主キーを書き換える方法はありますか?
エクセルから読み込んだサブテーブルなのですが、このテーブルの主キーを
オートナンバー型にしたいので。
209ビギナ:2005/09/21(水) 00:49:43 ID:uBWJug7c
手作業で何とかなりました。お騒がせしてスミマセン。
210NAME IS NULL:2005/09/22(木) 09:00:25 ID:???
Accessのどのバージョンでも良いんだけど、cmからtwip計算する関数って標準で提供されてない?
自分で作れば良いんだろうけどすでにあるならそっち使おうと思ったもんで。適当にぐぐった限りじゃなさそうだな。
211NAME IS NULL:2005/09/22(木) 12:12:46 ID:???
VBAでも構造体使えたんだな。知らなかったorz
212NAME IS NULL:2005/09/22(木) 15:11:57 ID:iJwi4c/i
超初心者です。
在庫管理のためのデータベースを作ってます。
レポートを印刷させられるところまで辿り着きました。
在庫がゼロの場合だけ、印刷させないようにするには、
クエリをいじればよいのですか?それともレポートをいじれば
よいのでしょうか?
また、何か式を入れなければならない場合の対処方法も教えて
いただければ幸いです。
よろしくお願いします。
213NAME IS NULL:2005/09/22(木) 15:18:42 ID:???
>>212
オープン時に
if 在庫がゼロ then
cancel = true
214NAME IS NULL:2005/09/22(木) 15:44:51 ID:???
上司がわからないのにAccess使いはじめて
むちゃくちゃな記述するんだが
215NAME IS NULL:2005/09/22(木) 15:45:31 ID:???
>>214
勝手に修正してコメントいっぱい入れてやれ
216NAME IS NULL:2005/09/22(木) 16:35:36 ID:???
>>214
むちゃくちゃな記述ってどんなの?
217NAME IS NULL:2005/09/22(木) 16:48:12 ID:???
例えばこんな感じです。

もしこの記述が正しいのなら・・・教えてくださいΣ

DoCmd.RunCommand acCmdSelectRecord = Me.NewRecord
218NAME IS NULL:2005/09/22(木) 18:18:02 ID:???



(゚∀゚≡゚∀゚) ネ申キター !
219超初心者:2005/09/22(木) 19:05:22 ID:F5FWZ4Zn
教えてください。フォームのプロパテイのコントロールソースで造った値ってテーブル等に反映されないんでしょうか?
220NAME IS NULL:2005/09/22(木) 19:33:58 ID:???
>>219
なにその最高に何も理解してない質問。ふざけてるの?
221NAME IS NULL:2005/09/22(木) 19:59:06 ID:vrbfqQj3
>フォームのプロパテイのコントロールソースで造った値
SQLの事かい?

>造った値
ってところでもうワカンネ

222NAME IS NULL:2005/09/23(金) 09:07:48 ID:???
>>212
>>213
データが無い時のイベントがあるだろう。
そこで、メッセージでも出して終われや。
223超初心者:2005/09/23(金) 09:10:03 ID:R/KvhLLe
213さん、ありがとうございました。

実はもうひとつ壁があります。期間をフォームに入力して
期間内の入荷出荷のレポートを作成したいのです。

フォーム内に期間を入力するテキストボックスを作り
ボタンを押すと印刷プレビューが出るところまではできました。
が、印刷内容の中に入力した期間が入ってませんでした。

レポートデザインでフォーム内のテキストボックスと同じ
名前をつけたら、印刷できるようなのですが、
フォーム内のテキストボックスが使用できなくなってしまいました。

このふたつを両立させるためにはどうしたら良いのでしょうか?
ご存知のかたいらっしゃいましたら、ご教授願います。
224NAME IS NULL:2005/09/23(金) 12:52:19 ID:???
>>222
在庫がない状態=レコードなしであるとは書いてないからそんな早漏判断できません
225NAME IS NULL:2005/09/23(金) 12:53:47 ID:???
226NAME IS NULL:2005/09/23(金) 13:26:38 ID:???
>レポートデザインでフォーム内のテキストボックスと同じ
>名前をつけたら、印刷できるようなのですが、
>フォーム内のテキストボックスが使用できなくなってしまいました。

そんな機能があるなんて全く知らないのでこれの対処方法については答えられないけど
フォーム上のテキストボックスと「同じ名前」とか関係なく、
抽出期間表示させたいレポート上のテキストボックスのコントロールソースに、
=[Forms].[フォーム名].[フォームのテキストボックス名]
と入れて参照させれば良いだけなんじゃないの?
227NAME IS NULL:2005/09/23(金) 14:17:43 ID:OrHaLcln
質問です宜しくお願い致します。
9月から1日の売り上げをつけているのですが、親フォーム[会社登録]・サブフォーム[売上げ管理]で入力時に、カーソルを当日に
あわせること出来ますか?毎日9月1日にカーソルがいってしまうのでよい方法ありましたら教えてください。
228NAME IS NULL:2005/09/23(金) 14:33:09 ID:???
日付をどんな形で収めているか不明
当日のレコードがいつ発生しているか不明


入力する時に当日で新規レコード作られるってんなら、
とりあえずlラストレコードに移動しとけば良いじゃん。
もしくはフォームをデータ入力用にするとか。
229NAME IS NULL:2005/09/23(金) 17:09:56 ID:OrHaLcln
>228さんありがとうございます。
先に一ヶ月分の日付をインポートしておいて金額と件数を入力しています。
訳あって先に日付だけ登録しておかないとダメなんです。
230NAME IS NULL:2005/09/23(金) 17:45:43 ID:???
>>229
その日付が普通に2005/09/01と入っているならば

Private Sub Form_Open(Cancel As Integer)
Me.Recordset.FindFirst "日付 =#" & Date & "#"
End Sub

でいけるんでね?
231NAME IS NULL:2005/09/24(土) 01:16:07 ID:???
型を意識しないVBAな人たち。
232NAME IS NULL:2005/09/24(土) 07:12:53 ID:???
>>231
なにが?
233NAME IS NULL:2005/09/24(土) 09:56:38 ID:4Mmv3jCs
質問しっぱなしで消えるの多すぎだな。解決したのかしないのか。
234NAME IS NULL:2005/09/24(土) 10:03:38 ID:???
  ∧ ∧     ┌─────────
  ( ´ー`)   < シラネーヨ
   \ <     └───/|────
    \.\______//
      \       /
       ∪∪ ̄∪∪
235NAME IS NULL:2005/09/24(土) 10:26:33 ID:???
>>233
俺は「解決しました」とか「ありがとう」とかの
レスは書かないことにしてる。スレの無駄遣い。
あと解決しなくて追加質問をくり返すと
ウザいといわれるからそれもしない。
一問一答形式の掲示板というのは有用そうで
あまり有用ではない。
236NAME IS NULL:2005/09/24(土) 10:45:28 ID:???
>>235
お礼レスはいらんが、回答が正しかったのか欲しいな。
過去ログ検索した時に投げっぱなしジャーマンだと本当に有用だったのか分からんし。
237NAME IS NULL:2005/09/24(土) 13:22:17 ID:???
>>235
人に質問する駆け出し小僧が何偉そうなゴタクを並べてる。
>>236 のような考え方を持て。
238NAME IS NULL:2005/09/24(土) 13:46:37 ID:???
>>237
報告しないというのも人の勝手だし
報告が欲しいというのも人の勝手。
勝手がぶつかれば自分を優先するのは当たり前。
ちなみに俺は報告しないというだけであり、
君のように人に考えを押しつけたりはしないからな。
239NAME IS NULL:2005/09/24(土) 13:53:14 ID:???
>>238
まぁ、答えてやるのもそいつの勝手だしな。
回答が役立ったのか分からないのが連続して回答者がやる気失うのもそいつの勝手でどうしようもない。
240NAME IS NULL:2005/09/24(土) 14:35:24 ID:???
答えたがりのバカは無限に沸いてくるから大丈夫
241NAME IS NULL:2005/09/24(土) 23:44:31 ID:???
>>238-240
素晴らしい論理ですね。マジでそう思ってます
か?クズ野郎共!!

242NAME IS NULL:2005/09/25(日) 00:42:35 ID:???
どんな状況になってもまだまだ使えるだけは答えにやってくるさ
243NAME IS NULL:2005/09/25(日) 01:39:21 ID:???
>>236 >>237 >>241
同意!
>>235 >>238 >>240
(゚ε゚) ハイハイ(゚ε゚)アホアホ
DELETE >>235, >>238, >>240, FROM アホ
244NAME IS NULL:2005/09/25(日) 11:57:39 ID:???
>>238
考えを押しつけてるんじゃなくて、当然の事じゃないの?
ありがとうのお礼とは違うが、礼儀だろ。
245NAME IS NULL:2005/09/25(日) 13:32:17 ID:???
バカにバカで無い様に振舞えというのは無茶というもの。
246NAME IS NULL:2005/09/25(日) 20:30:22 ID:???
>>245
そうか、納得した。
247NAME IS NULL:2005/09/25(日) 23:31:40 ID:???
>>244
それを礼儀と考えるのは君の勝手だ。
自分はそれは礼儀でも何でもなく、スレの無駄遣いと考える。

スレは質問・回答の当事者間だけのものではなく、
たくさんの第三者が利用する共同の場である。
必要最小限の発言のみで効率的に使うことが重要だ。
当事者間の儀礼的な発言などは、他者にとってスレを見にくくし
スレ消費を早めるだけだ。
248NAME IS NULL:2005/09/26(月) 00:14:44 ID:???
>>247のレス→無駄
回答が有効だったかのレス→必要
249ビギナ:2005/09/26(月) 00:15:52 ID:bj/4xseD
>>247
おまえが存在してること自体、スレの無駄使いだ。
この板で助けてもらったことのある人間の一人として、
真摯に答えてくれる方々に対して申し訳が立たない。
二度と書き込むな、このアホ!
250NAME IS NULL:2005/09/26(月) 02:27:42 ID:KK8fXz6Q
|・ω・`)あの・・・初心者で恥ずかしいんですけど、
クエリをHTMLにエクスポートしたときに、列幅がコントロールできなくて、
URLの入った列だけ、URLの長さの最長のセル幅になってしまうでつ(つДT)
どなたか方法教えてください_ト ̄|○
251NAME IS NULL:2005/09/26(月) 07:19:54 ID:???
>>250
スレの無駄遣いは止めてください
252NAME IS NULL:2005/10/03(月) 20:41:50 ID:11vY/JMK
質問です。

ACCESSの機能に「フォームフィルタ」なるものが
ありますが、これを使うとフォーム上に作った
コマンドボタンが使えなくなります。

フォームフィルタボタンを押し、現在フォーム上でアクティブになっているフィールド(テキストボックス)の
内容一覧を一覧フォーム(別途作成済みで、GROUP BY でまとめるつもり)に一覧として出し、
その別途作成したフォームのListBoxを選択すると、
その内容が元のフォームのアクティブだったテキストボックスに反映される。
これをいくつかのテキストボックスで繰り返して、最後にフィルタの実行をしたいのです。

ご指導お願いします。
253NAME IS NULL:2005/10/03(月) 20:49:47 ID:???
トリプルマルチ乙

757 名前:NAME IS NULL[] 投稿日:2005/10/03(月) 20:30:39 ID:11vY/JMK
作って欲しいというか、質問です。

ACCESSの機能に「フォームフィルタ」なるものが
ありますが、これを使うとフォーム上に作った
コマンドボタンが使えなくなります。

フォームフィルタボタンを押し、現在フォーム上でアクティブになっているフィールド(テキストボックス)の
内容一覧を一覧フォーム(別途作成済みで、GROUP BY でまとめるつもり)に一覧として出し、
その別途作成したフォームのListBoxを選択すると、
その内容が元のフォームのアクティブだったテキストボックスに反映される。
これをいくつかのテキストボックスで繰り返して、最後にフィルタの実行をしたいのです。

ご指導お願いします。

757 名前:NAME IS NULL[] 投稿日:2005/10/03(月) 20:30:39 ID:11vY/JMK
作って欲しいというか、質問です。

ACCESSの機能に「フォームフィルタ」なるものが
ありますが、これを使うとフォーム上に作った
コマンドボタンが使えなくなります。

フォームフィルタボタンを押し、現在フォーム上でアクティブになっているフィールド(テキストボックス)の
内容一覧を一覧フォーム(別途作成済みで、GROUP BY でまとめるつもり)に一覧として出し、
その別途作成したフォームのListBoxを選択すると、
その内容が元のフォームのアクティブだったテキストボックスに反映される。
これをいくつかのテキストボックスで繰り返して、最後にフィルタの実行をしたいのです。

ご指導お願いします。
254NAME IS NULL:2005/10/05(水) 13:53:19 ID:au6xLt0Y
相談が・・・・。

ユニオンクエリを使うと処理重くなる?
使わないほうがいいでしょうか・・・_no
255NAME IS NULL:2005/10/05(水) 14:02:04 ID:???
使うな
256NAME IS NULL:2005/10/05(水) 14:11:55 ID:au6xLt0Y
ユニオンクエリを使うことは危険ですか?
257NAME IS NULL:2005/10/05(水) 14:21:57 ID:???
別に使っても怪我したりしないよ
258NAME IS NULL:2005/10/06(木) 00:53:20 ID:???
データ量やインデックス、マシンスペックにもよるから一概に
ユニオンがどうこうは言えないけど、そこまで気にするなら
Accessは使うなと言いたい。
259NAME IS NULL:2005/10/11(火) 13:25:26 ID:eY3QPgeO
  ∧ ∧     ┌─────────
  ( ´ー`)   < 質問ばっか支店じゃねーよ
   \ <     └───/|────
    \.\______//
      \       /
       ∪∪ ̄∪∪


260NAME IS NULL:2005/10/14(金) 10:14:32 ID:7b+y5+h/
ACCESS + SQLサーバー ODBC接続でテーブルをリンクしています

クエリはMDB側に置いて、パススルークエリを作ると参照専用になるのですが、
新規登録やデータ追加用のフォームのレコードソースにしたい場合どうしたらいいのでしょうか?
261NAME IS NULL:2005/10/14(金) 12:17:07 ID:???
>>260
ADPで開発し直せ。
262260:2005/10/17(月) 08:24:49 ID:StB3CPrN
>>261

ADPで作ってみた。

今度はテーブル自体が書き込みできない・・・ なぜ
エンタープライズマネージャーで直接テーブルを開くと新規入力できるのに。
263NAME IS NULL:2005/10/17(月) 09:22:19 ID:Ao7nfUPa
>>262
  ∧ ∧     ┌────────────────────────
  ( ´ー`)   < 主キーのねーテーブルなんか作ってんじゃねーよ
   \ <     └───/|───────────────────
    \.\______//
      \       /
       ∪∪ ̄∪∪
264NAME IS NULL:2005/10/17(月) 15:06:51 ID:RkdijXIe
すいません質問です。


工事ごとに、必要な商品を登録していくフォームを作成してます。
商品マスタから、価格等のデータを引っ張ってくるクエリを作成して、それを元に入力フォームを作成
したのですが、そこで引っ張ってきた、価格等のデータを、データを収めたいテーブルに保存するのには
どうしたらいいのでしょうか?

もちろん、データを収めらいテーブルにも、価格フィールドが存在します。

すいません、ご指導のほどを
265NAME IS NULL:2005/10/17(月) 15:48:50 ID:???
マスタの金額と保存先テーブルの金額が違わないんだったら保存する意味すらないと思うが、そこはさておき


そのコピーをいつしたいのかが問題。
ついでにフォームが単票なのか帳票なのかでベストなやり方も違ってくるんじゃなかろうか。
266260:2005/10/18(火) 02:45:31 ID:???
>>263

ADPでもう一回主キー新ためて設定しなおしたら、入力可能になった
感謝!

シラネーヨに感謝するのは俺ぐらいか?
267260:2005/10/18(火) 03:29:41 ID:???
>>263
ネーヨもう一つ教えてくれ

ADPのストアドフプロシージャで、MDBでいう削除・追加クエリを実行した時に、
「ストアドプロシージャは実行されましたが、レコードは返されませんでした」
のメッセージが出ないようにするにはどうすればいいの?
268NAME IS NULL:2005/10/18(火) 08:54:21 ID:GuM56ZBK
  ∧ ∧     ┌────────────────────────
  ( ´ー`)   < CurrentProject.Connection.Executeも調べねーで聞いてんじゃねーよ
   \ <     └───/|───────────────────
    \.\______//
      \       /
       ∪∪ ̄∪∪
269260:2005/10/18(火) 13:05:27 ID:???
>>268

できた またまた ネーヨ サンクス

DoCmd.OpenStoredProcedure
     ↓
db.Open Source:=

でいけたよ
270NAME IS NULL:2005/10/20(木) 10:09:46 ID:uWpKh7qa
Access 2002 更新プログラム (KB904018)を充てると
Excel ブックへリンクされるテーブルのデータの編集追加、または削除できなくなるよ。
271NAME IS NULL:2005/10/20(木) 22:39:45 ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
272NAME IS NULL:2005/10/21(金) 23:49:58 ID:???
代替できる DoCmd は使わない
273NAME IS NULL:2005/10/25(火) 21:27:32 ID:ZyNwGVC1
 A | B | C | D |最大 |最小
 10 | 15 | 13 | 18 | 18 | 10
 30 | 45 | 28 | 40 | 45 | 28

Access2002のクエリで同一レコードの最大・最小を出したいのですが、
どのような式を書けばいいのですか?
274NAME IS NULL:2005/10/25(火) 22:05:04 ID:???
IIFでチマチマ判定してけば?
275NAME IS NULL:2005/10/25(火) 22:17:18 ID:???
A,B,C,Dで最大最小の値が必要になるようなデータ構造だったら

primarykey class value
---------------------
1        A    10
1        B    15
1        C    13
1        D    18
2        A    30
2        B    45
2        
276NAME IS NULL:2005/10/25(火) 22:18:11 ID:???
途中で送信しちゃった。

……と、一概には言えないけど↑のような設計にした方が良い
277んんんん:2005/10/28(金) 09:53:18 ID:8DhZasaS
すいませんが生年月日から年齢をだす式教えてください
278NAME IS NULL:2005/10/28(金) 10:43:01 ID:???
>>277

DateDiff("yyyy",#生まれた日付#,#今日の日付#)
279んんんん:2005/10/28(金) 11:32:37 ID:wdx+uFOp
ありがとうございます。もうひとつよいですか?
3.5>で0.8
2.8〜3.4で0.9
2.7<で1.2
と出したいのですが?
280NAME IS NULL:2005/10/28(金) 12:46:55 ID:???
IIF
281NAME IS NULL:2005/10/29(土) 00:13:29 ID:PK+fR/O+
すんませんが、
ACCESSってーのはネットワーク共有はできるんですかね?
282NAME IS NULL:2005/10/29(土) 01:10:13 ID:???
181 名前:デフォルトの名無しさん[] 投稿日:2005/10/28(金) 01:40:44
accessってネットワーク共有できますか?
283NAME IS NULL:2005/10/29(土) 02:45:26 ID:PK+fR/O+
??
>>282
あーそれもオレオレだw
聞いてみたが
この板に行ったほうがいいじゃねと書かれてたんで来たんだが・・・
ここでも無理か・・・
284NAME IS NULL:2005/10/29(土) 02:56:52 ID:???
できるよ
285NAME IS NULL:2005/10/29(土) 08:00:06 ID:???
Accessといっても所詮はファイルだ。共有設定さえすれば
いいわけだが、データのWriteに関する処理は要注意ぐら
いだろう。
286NAME IS NULL:2005/10/29(土) 12:37:58 ID:???
MSDE+ADP使え
287NAME IS NULL:2005/11/04(金) 11:13:05 ID:cqr8DVee
仕様書でAccessで数値型(整数型)で長さが6と2に設定しないといけない
場所がありますが、数値型だと設定ができませんよね。
なにか方法あります。
288NAME IS NULL:2005/11/04(金) 11:24:19 ID:???
求めていることが理解できない

000001と01と"表示"したいのか?
それともテーブルに000001と"格納"したいのか?
289NAME IS NULL:2005/11/04(金) 11:34:15 ID:cqr8DVee
>>288
テーブルに000001と"格納"したいのです
説明下手ですみません。
290NAME IS NULL:2005/11/04(金) 11:45:13 ID:???
何のためにそんなことする必要があるのか分からないので

テキスト型にしる

としか言えない。
291NAME IS NULL:2005/11/04(金) 14:06:17 ID:???
289は
数値型で1としてテーブルに格納し、
テーブル・クエリ・フォーム・レポート等で「000001」と表示させる術を知らないらしい。
292NAME IS NULL:2005/11/04(金) 14:09:34 ID:???
>>291
いやいや、そんな単純な理由であるはずがない!
俺らには想像も出来ないくらい高度なことをやろうとしているんだよ多分。
293NAME IS NULL:2005/11/04(金) 18:05:45 ID:???
「お題」

1
01
001
0001
00001
000001

以上をすべて異なる値として区別する必要があり
なおかつ数値型でなくてはならない。
294NAME IS NULL:2005/11/04(金) 19:00:38 ID:iezdmujP
俺の回答

数値型の意味がわかってないボケナスをクビにする
295NAME IS NULL:2005/11/05(土) 06:48:53 ID:???
>>279
引っ掛かんなよ。
12/31 に生まれて翌日の 1/1 に 1 歳になるのがお前の求めている年齢か?
296NAME IS NULL:2005/11/05(土) 08:36:16 ID:???
297NAME IS NULL:2005/11/05(土) 09:52:09 ID:???
>>293
> 以上をすべて異なる値として区別する必要があり
既に答えは出ている。区別するためのフィールドを作れよ。
298NAME IS NULL:2005/11/05(土) 10:26:59 ID:???
馬鹿にかまうな
299NAME IS NULL:2005/11/05(土) 10:52:14 ID:eo1C/tlq
287の仕様書にはカラムの属性に 

     PIC 9(6). 

と書いてあると勝手に推測してみる




300NAME IS NULL:2005/11/10(木) 09:50:51 ID:???
Access2003で、二つのコンボボックスを連動させたいと思っています。

コンボボックス1において、あるテーブルの値A、B、Cを選択できるようにし、
例えばそこからAを選択するとコンボボックス2で、あるテーブルの値D、E、Fを、
Bを選択すると別のテーブルの値G、H、Iを選択できるようになる。
このように連動させるやり方があれば、教えていただけたら幸いです。
色々本を漁って組んではみたものの、バグが発生して…orz
301NAME IS NULL:2005/11/10(木) 10:00:19 ID:???
>>300
えーと、バグが発生しちゃうやり方書いてみて
302NAME IS NULL:2005/11/10(木) 11:57:57 ID:???
>>300
興味深い!
303NAME IS NULL:2005/11/10(木) 12:33:22 ID:???

1.コンボ2のデータソースは空白

2.コンボ1の更新後afterupdateのイベントに
1)データソースの書き換え
2)コンボ2のデータソースの再クエリを記述

マクロでは無理っぽいかな? っていうか
無用にテーブルを分けるよりも、テーブルを同じにして
区分フィールド持たせるなら、マクロでいける
304NAME IS NULL:2005/11/10(木) 12:54:55 ID:???
マクロで、とは書いてないし問題なかろう
305300:2005/11/10(木) 12:57:59 ID:???
>>301
すみません、バグは何とか自己解決しました。
クエリビルダを使って、抽出条件として
[forms]![フォーム名]![テーブル名]
を入力し、試験してみたら、パラメータ云々と出てうまく動かなかったので…
恐らく、テーブル名を間違ってたんだと思います。

んで、コンボ1にAに対してコンボ2にD、E、Fを表示する所まではできたんですが、
Aに対してD〜F、Bに対してG〜Iと、多対多の連動はまだうまくいってない現状でして…

>>303
多対多の連動は無理なんでしょうか…?クエリを使えばいけそうな気がするんですが、
いかんせん方法が良く分からない無知な者でして…もし無理でしたら、

>無用にテーブルを分けるよりも、テーブルを同じにして
>区分フィールド持たせるなら、マクロでいける

これについて詳しく教えていただけると幸いです
306NAME IS NULL:2005/11/10(木) 21:46:01 ID:???
>>305
[forms]![フォーム名]![テーブル名]って何だよ!!テーブルじゃなくて、コント
ロール(フィールド)だろ。で、オマエが言ってるのが本当に多対多なのかわか
らん。言葉を理解してないようだし。横着しないで、基礎をちゃんと勉強しろよ。
307NAME IS NULL:2005/11/10(木) 22:01:20 ID:???
Forms.Form.Controlって参照の仕組みを理解するのはけっこうハードル高いけどな
308NAME IS NULL:2005/11/11(金) 06:45:16 ID:???
>Forms.Form.Controlって参照の仕組みを理解するのはけっこうハードル高いけどな

北風商事のアレが判り易かった気ガス・・・
って優香、今のAccEssって紙のマニアル付いて無いの?




309NAME IS NULL:2005/11/11(金) 12:24:05 ID:???
インストール方法ぐらいじゃね?
「画面の指示に従ってください。」って書いてあるやつ。
310NAME IS NULL:2005/11/11(金) 13:04:14 ID:???
Office 2003 Pro を買ったんだけど、「スタートガイド」という名の
薄いマニュアルが1冊のみ。

内容はセットアップ手順とかセキュリティの設定だけ。

アプリの使い方ならオンラインヘルプで十分だろ、ということか。

昔みたいなリファレンスが付いてたとしても今さら見ないけど、本当に
初心者だと紙媒体で欲しくはなるかもね。
311NAME IS NULL:2005/11/11(金) 13:42:30 ID:???
プログラムのインストールにガイドブックが必要な香具師に
Access売りつけるところが、マイ糞ソフトのニクイとこだね


Accessの最近のVerってサンプルプログラム無いの?
312NAME IS NULL:2005/11/11(金) 14:06:08 ID:???
>>305
>無用にテーブルを分けるよりも、テーブルを同じにして
>区分フィールド持たせるなら、マクロでいける

同じ構造のテーブルを分けて作っている場合は1つにしましょうってこと。
e.g.
(社員テーブル)社員コード、名称
(役員テーブル)役員コード、名称

とかいうテーブルが2つあったとすると、
(社員テーブル)社員コード、名称、役職
と1つにして、役職をコンボ2の抽出条件に役職を入れてあげれば、
参照時にテーブルを切り替えるのと同じ結果にできるってことです。

っていうか、具体的なテーブル構造とかが分からないと答えようも
ないような・・・




313NAME IS NULL:2005/11/11(金) 14:53:36 ID:???
>>311
> Accessの最近のVerってサンプルプログラム無いの?

北風は付いてるよ。
ただ、97 に付いてた Solution.mdb みたいなのは無くなってる。

その代わりなのかどうなのか知らないけど、サンプル MDB が幾つか
ダウンロードできるようになってる。

ttp://office.microsoft.com/ja-jp/assistance/HA011201381041.aspx

この中のサンプル フォームに収録されている「フォーム上の 2 つの
コンボ ボックスを同期させる」っちゅうデモが、ひょっとしたら
まんまかもね(実物は見てないので知らん)。

まあ違ったとしても、↓で十分じゃないかとも思うわけだが。

ttp://support.microsoft.com/kb/289670/JA/
314NAME IS NULL:2005/11/12(土) 06:25:22 ID:???
遅レスですが
以前どこかのサイトで拾って、シンプルでいいなと思った年齢計算関数

Public Function Nenrei(ItsuUmare As Variant) As Variant
On Error GoTo KeisanDekine
Dim Tanjoubi As Date
If IsNull(ItsuUmare) = True Then
Nenrei = "" 'Nullでもいいかも
Exit Function
End If
Tanjoubi = DateSerial(Year(Date), Month(ItsuUmare), Day(ItsuUmare))
If Tanjoubi <= Date Then
Nenrei = Year(Date) - Year(ItsuUmare)
Else
Nenrei = Year(Date) - Year(ItsuUmare) - 1
End If
Exit Function
KeisanDekine:
Nenrei = "" 'Nullでもいいかも
End Function
315NAME IS NULL:2005/11/12(土) 08:07:55 ID:???
正直どこがいいのか分からない。
識別子の名前も適当だし、Variant を多用する必要性もよく分からない。
特に閏年の補正をしていないのは、年齢計算としては致命傷だと思う。

あ、別にケチを付けているわけではないです。
これがいいと思う、という掛け方は建設的で嬉しいんですが、どこが
いいのか具体的に説明してもらわないと、良さが伝わってこないという
ことで。
316NAME IS NULL:2005/11/12(土) 09:04:05 ID:???
>シンプルでいいなと思った
317NAME IS NULL:2005/11/12(土) 11:29:41 ID:???
年齢が 1 歳くらいズレても構わん、コードさえ短けりゃいい、という
意味か?

なら >>278 で十分だと思うが。

その手の何ちゃって年齢関数でよいのなら、もっと短いのがある。
有名なのが「Int((Date() - BirthDate) / 365.25)」。

でも漏れの感覚だと、「シンプルでいい」というのは、仕様を十分に
満たした上での話で、年齢を求める仕様でズレが発生するなら、
ロジックがいい悪い以前に、そもそも論外という気がするが。
318NAME IS NULL:2005/11/12(土) 16:03:23 ID:???
>>317
名探偵の俺が推理するに、>>314の自作関数だよ。
319317:2005/11/12(土) 17:15:45 ID:???
>>318
スマン。
空気が読めずにマジツッコミした漏れが間違ってた。

逝ってくる。
320NAME IS NULL:2005/11/13(日) 10:44:32 ID:7Ouhsiyq
教えて下さい。
商品お届け日付より3週間〜5週間後のデータを抜き出す事は可能ですか?
宜しくお願いします。
321NAME IS NULL:2005/11/13(日) 10:57:44 ID:???
>>320
お届け日時に+3週間+5週間した日付でbetween
322NAME IS NULL:2005/11/13(日) 14:33:21 ID:???
AccessVBAはバグが多いって聞きますがどうなのでしょうか?

実際にVBAでプログラムを作っているのですが、予期せぬエラーが多発しています。
ステップ実行だとうまくいき、そのまま実行させるとうまくいかないなどの現象があります。

VBAは使わず、VBでやったほうがいいとも聞きましたがいかがでしょうか?
323NAME IS NULL:2005/11/13(日) 15:28:55 ID:7Ouhsiyq
>>321さん ありがとうございます。
説明不足ですいません。お届け日時がバラバラにたくさんあり、
その中から(本日(任意)時点で)商品お届け後3週間以上〜たっているデータを
抽出したいのですが、出来ますか?
324NAME IS NULL:2005/11/13(日) 15:38:11 ID:???

フィールド | Int([お届け日時])
表示    |     □
抽出条件 | >=Date()-21
325324:2005/11/13(日) 15:40:23 ID:???
○ <=Date()-21
× >=Date()-21
326NAME IS NULL:2005/11/13(日) 16:50:09 ID:???
>>322
結局 何が言いたいん?
327NAME IS NULL:2005/11/13(日) 16:56:06 ID:???
>>326
VBAにはバグが多いのか、ある程度回避できるものばかりかを
聞いてるだけのようにみえますが。横レス
328NAME IS NULL:2005/11/13(日) 17:26:17 ID:???
>>322
じゃあ、VBでやるということで。
329NAME IS NULL:2005/11/13(日) 19:09:26 ID:???
VB でやる

同期実行を理解していないので、同じところで引っかかる

言語のせいと脳内結論を出す

「VBは使わず、Java でやったほうがいいとも聞きましたがいかがでしょうか?」
という質問を VB 板でして、「じゃ Java でやれば?」と言われる

以下、言語を取っ替え引っ替えしつつ永久ループ
330NAME IS NULL:2005/11/13(日) 19:22:02 ID:???
予期せぬエラーねぇ……w
331NAME IS NULL:2005/11/13(日) 20:01:10 ID:???
バグは通常、ソースコードに含まれている

カニチャーハン・リッチー
332NAME IS NULL:2005/11/13(日) 20:26:34 ID:???
でも、エラー番号2401(?)だっけかな、訳わからんエラーが発生する事が
あるぞ。MSでは、サポートしないとか公言してるエラー番号です。
333NAME IS NULL:2005/11/13(日) 20:43:32 ID:???
どんなとき発生するんだ?
334NAME IS NULL:2005/11/13(日) 23:24:13 ID:???
たまにはいいじゃん
データぶっ壊すようなエラーじゃなければさ
335NAME IS NULL:2005/11/14(月) 09:59:59 ID:???
自分の書いたコードが原因で出たエラーをバグのせいにして
製品を乗り換えるスレはここですか?
336NAME IS NULL:2005/11/14(月) 15:39:41 ID:???
トヨタ カローラは事故が多いって聞きますがどうなのでしょうか?

実際にカローラで通勤をしているのですが、予期せぬ事故が多発しています。
赤信号で停止するとうまくいき、そのまま突っ込むとうまくいかないなどの現象があります。

カローラに乗らず、ホンダ アコードに乗ったほうがいいとも聞きましたがいかがでしょうか?
337NAME IS NULL:2005/11/14(月) 17:03:37 ID:???
コンパイラーの返すErrorNumberなんて
所詮、おみくじみたいなモンでしょ
338NAME IS NULL:2005/11/14(月) 19:19:22 ID:???
ランタイムエラージャネ?
339NAME IS NULL:2005/11/14(月) 21:20:14 ID:???
>>336
本人はうまい例え話だと思ってるのかもしれないが、
何誤爆してるんだろ、こいつって思った・・・
もうちっと練り直して来い
340NAME IS NULL:2005/11/16(水) 12:27:36 ID:ymkmr5gQ
ACCESS2003からOracleにODBC接続でリンクテーブル貼ってるんですけど
なんか上手い行ロック方法ってあるんでしょうか??

自前で作らなきゃ駄目?
341NAME IS NULL:2005/11/27(日) 10:07:43 ID:OFfwtD3X
Outlook の予定表などのアイテムを C# や VB で
いじっているんですが、Outlook の pdb ファイルって
mdb ファイルと何か関係があるモノなんでしょうか?

Access でのプログラミングと同じような感覚で
扱えるので、実は中身はほとんど同じ?などと
ちょっと疑問に思ってました。
342NAME IS NULL:2005/11/28(月) 11:38:45 ID:6oTI9b/Z
EMPLOYEEというテーブルの
FirstNameが'Franklin'でLastNameが'Wong'という奴が
管理している社員の名前を全員出す、というのをやりたいんです。

EMPLOYEEには
   FirstName
   LastName
   SSN(社会保障番号)
   SUPERSSN(管理「している」奴(つまりボスの)の社会保障番号)
という属性があります。

Relational Algebraでは
R1 = π SSN (σ FName='Franklin' LName='Wong'(EMPLOYEE))
と一旦結果を抽出してから
π FName, LName(σ SUPERSSN=SSN(EMPLOYEE * R1))
とやるんでしょうが、最初の抽出結果のSUPERSSNと元のEMPLOYEEのSSNとを
アクセスで比較する方法が分かりません。
R1のクエリーを作ってからそのクエリーをまるでテーブルのように
追加するまではやったんですが、「=R1.SSN」なんて打っても
「=[R1][SSN]」と勝手に修正されてパラメーターを打てと言われますし、
どうすればいいのか分かりません。
もう後一歩ですよね?ね?どうか教えて下さい。m(__)m
343NAME IS NULL:2005/11/28(月) 11:47:05 ID:6oTI9b/Z
訂正:
最初の抽出結果のSUPERSSNと元のEMPLOYEEのSSNとを比較

最初の抽出結果のSSNと元のEMPLOYEEのSUPERSSNとを比較
344NAME IS NULL:2005/11/28(月) 11:47:19 ID:???
878 名前:873[] 投稿日:2005/11/22(火) 07:18:59 ID:/nExEZZR
じゃ、頼まねぇよ、ばーーか。( ´,_ゝ`)プッ
345NAME IS NULL:2005/11/28(月) 23:06:06 ID:???
ここって質問OKですか?

Access2000を使ってプロジェクト管理システムを作ってます。
レポートに各社員の工数集計を出したいのです。
一応出すことは出来るのですが、一列にしか出てきません。

今はこんな感じで出力されてます。
aaa 2.35
bbb 13.6
ccc 0.47

これを次の様に表示するにはどうすればいいのですか?
aaa 2.35 bbb 13.6
ccc 0.47
346NAME IS NULL:2005/11/28(月) 23:19:53 ID:???
>>345
ページ設定で列数2
347345:2005/11/28(月) 23:45:36 ID:???
即レスありがとうございます。
書きそびれてしまってたのですが、その社員表を出力するセクションは詳細のところなんです。
ページ設定で変更した場合、ヘッダーまで2列になったりしないのでしょうか
348NAME IS NULL:2005/11/28(月) 23:53:26 ID:???
試してから書き込めよカス
349NAME IS NULL:2005/11/29(火) 00:51:19 ID:???
>>342-343

SELECT *
FROM EMPLOYEE
WHERE SUPERSSN=
(SELECT SSN FROM EMPLOYEE WHERE FirstName="Franklin" And LastName="Wong");

とか

SELECT *
FROM EMPLOYEE
WHERE SUPERSSN=
DLookup("SSN", "EMPLOYEE", "FirstName='Franklin' And LastName='Wong'");

とか

SELECT *
FROM EMPLOYEE
INNER JOIN
(SELECT SSN FROM EMPLOYEE WHERE FirstName='Franklin' AND LastName='Wong')
AS T
ON EMPLOYEE.SUPERSSN = T.SSN;

とか、好きに組み合わせればよいのでは。
350NAME IS NULL:2005/11/29(火) 07:14:49 ID:???
>>349
>>342はSQL全く理解してないから無理だろ
351NAME IS NULL:2005/11/29(火) 08:36:22 ID:???
講義で概念は取ったけど、触ったことはあまりないのかもね。
最初のうちは、クエリのデザインビューと SQL ビューを切り替えながら
見比べると、それなりに理解の助けになると思うよ。
352NAME IS NULL:2005/11/29(火) 12:22:35 ID:???
帳票形式でフォームを表示し、テーブルの一覧を出しています。
新規レコードを追加するフィールドがありますが、一覧の一番下に表示されますよね。
あれを一覧の一番上に表示させるにはどうしたらいいんでしょう
353NAME IS NULL:2005/11/29(火) 12:52:53 ID:???
354NAME IS NULL:2005/11/29(火) 19:23:21 ID:IUhAO6Ov
ACCESS2000 で、ACCESS の currentproject.connection に対して
BEGINtrans してもトランザクションを開始できません。

例えば、以下のように
currentproject.connection.Begintrans
currentproject.connection.Rollbacktrans
とすると、1行目でトランザクションを開始しているにも関わらず2行目の実行時に
Committrans または Rollbacktrans するには Begintrans が必要です。
というエラーが発生してしまいます。


Begintrans または別の方法でトランザクションを行う方法を、どなたか
ご存じありませんでしょうか。
355NAME IS NULL:2005/11/29(火) 22:07:20 ID:???
トランザクションを開始したコネクションを、どこにも保持してないやん。
変数に保持しとき。

Dim cnn As ADODB.Connection
Set cnn = CurrentProject.Connection
cnn.BeginTrans
cnn.RollbackTrans
356354:2005/11/30(水) 15:06:24 ID:???
>355
ありがとうございました。その通りの方法で解決出来ました。

ヘルプをよく読みなおしたら、currentproject.connection で指定したconnectionは
常に本来のcurrentproject.connection のコピーなのですね…てっきり代入しなければ
参照になるものだと勘違いしていました。
357NAME IS NULL:2005/12/01(木) 12:31:44 ID:???
レコードを削除したために、オートナンバーが飛んでしまうことがあります。
参考書を頼りに、元テーブルのコピーを作って作成し直しました。

確かにオートナンバーは調ったのですが、ひとつ困ったことがおきました。
元テーブルにYes/No型のフィールドがあり、テーブルのデザインビューで見るとチェックボックスコントロールになっています。
ところがオートナンバーを振り直したテーブルはテキストボックスコントロールになってしまいます。

データ自体にはなんら影響がないので、このままでもいいといえばいいのですが、
見栄え的にもチェックボックスのほうがいいのです。
これをVBAから自動で変更するにはどうすればいいのですか?
358NAME IS NULL:2005/12/01(木) 12:41:11 ID:???
>>357
フォーム使えよ。
359NAME IS NULL:2005/12/01(木) 13:29:53 ID:???
番号振り直しても問題ないオートナンバーフィールドって存在意義薄いな
360NAME IS NULL:2005/12/01(木) 14:12:38 ID:???
>>357
そのテーブルをデザインビューで開いて、Yes/No型の列のルックアップの
表示コントロールをチェックボックスに直せばおけ。
VBAでの変更は、テーブルの公開されているプロパティにそれらしいのが
ないのでわからん。

削除して欠番がでるのがまずいのならば、その列にオートナンバーを
使わないほうがいいと思う。
追加入力を途中でキャンセルしても欠番になるから。
オートナンバーは『値はなんでもいいから一意な値がほしい』列に使う
のがいちばん。

361NAME IS NULL:2005/12/01(木) 23:38:56 ID:hJnU0wPw

レポート内にグラフ表示をさせています。
例えば、円グラフの場合、それぞれの項目に対して、色が自動で配されますが、
指定することは、出来ますか?また、どのようにすればよいのでしょうか?

362361:2005/12/01(木) 23:50:32 ID:hJnU0wPw

補足です。
手動で色を変更するのではなく、
テーブル内に、色データが入ったフィールドがありますので、
その色を動的に割り当てたいということです。

1,aaa,#cccccc
2,bbb,#33ddff
3,ccc,#aa3322

  ・
  ・
  ・

とこのような感じのテーブルがあり、自動で、色を割り当てたいのですが・・・。
363NAME IS NULL:2005/12/02(金) 23:54:28 ID:???
質問の意図を勘違いしているかもしれないが、「自動で、色を割り当て」
たいなら、自力でそういうコードを書くしかないと思う。
MS Graph の話になるので、Access はほとんど関係ない。
364NAME IS NULL:2005/12/03(土) 00:21:23 ID:???
>>363
レスありがとうございます。
自力でコード書きたいのですが、どのようにすればヒント
頂ければ、うれしいのですが。
365NAME IS NULL:2005/12/03(土) 00:36:32 ID:???
Excel で似たようなグラフを作って、手動で色を設定する作業を
マクロの自動記録で録れば、コードの雛形が手に入ります。

MS Graph と Excel.Chart は似て非なるものなので、そのままでは
動きませんが、共通点も多いので、ゼロから組むよりは何がしかの
叩き台にはなるでしょう。

あとはそれを MS Graph 用に改変して移植すると、多少は効率が
上がるかもしれません。

ただ、オートメーションと Excel VBA に慣れていれば楽勝ですが、
VBA 初心者とかだと、ちょっと厳しそうですが。
366NAME IS NULL:2005/12/03(土) 00:38:49 ID:???
あ、一応追記しておきますが、私はやったことありません。

なので、本質的に VBA で操作可能なのかどうか自体も、
分からないです。
上は、色関連のプロパティが VBA から操作可能であれば、
という前提になります。
367NAME IS NULL:2005/12/03(土) 01:14:54 ID:???
>>365
> Excel で似たようなグラフを作って、手動で色を設定する作業を
> マクロの自動記録で録れば、コードの雛形が手に入ります。

なるほど!

> MS Graph と Excel.Chart は似て非なるものなので、そのままでは
> 動きませんが、共通点も多いので、ゼロから組むよりは何がしかの
> 叩き台にはなるでしょう。
> あとはそれを MS Graph 用に改変して移植すると、多少は効率が
> 上がるかもしれません。
> ただ、オートメーションと Excel VBA に慣れていれば楽勝ですが、
> VBA 初心者とかだと、ちょっと厳しそうですが。

VBA 初心者ですがorz、やってみます。

ありがとうございました。
368363:2005/12/03(土) 03:37:00 ID:???
元々出来ない話だったりすると甲斐がないので、ちょっと試してみた。

フォームに円グラフを挿入して、コマンドボタンに以下のコードを貼ります。

' 円グラフの要素色を動的に入れ替えるデモ
Private Sub コマンドボタン_Click()
  Dim ps As Object ' Graph.Points コレクション
  Dim i As Long ' カウンタ
  Dim j As Long ' 要素数
  Dim c As Long ' 色

  Set ps = Me!グラフ1.Object.SeriesCollection(1).Points
  j = ps.Count
  c = ps(1).Interior.Color
  For i = 1 To j
    If i = j Then
      ps(i).Interior.Color = c
    Else
      ps(i).Interior.Color = ps(i + 1).Interior.Color
    End If
  Next
End Sub

コマンドボタンをクリックするたびに、円グラフの要素色がズレていくのが
確認できるので、出来そう。

ただ、描画の更新に若干タイムラグがあるのが気になる。
レポートだと、切り替え処理がレポートのフォーマットに間に合わないかも。

駄目な場合の代案を用意しておいたほうがベター。
369361:2005/12/03(土) 08:22:25 ID:???
>>368
> 元々出来ない話だったりすると甲斐がないので、ちょっと試してみた。
うぉ。ヒント頂いただけでもかなり感謝しているのに・・・。


> コマンドボタンをクリックするたびに、円グラフの要素色がズレていくのが
> 確認できるので、出来そう。
> ただ、描画の更新に若干タイムラグがあるのが気になる。
> レポートだと、切り替え処理がレポートのフォーマットに間に合わないかも。
> 駄目な場合の代案を用意しておいたほうがベター。

コード頂きました。
動作の方も、確認しました。本当に感謝感激です。
タイムラグに関しては、私の環境では、気になりませんでした。
(レポートでは試していませんが)また、実装段階でも、待ち時間に関しては、
問題にならないと思います。



P.S.
最初、レスも入らなかったし、
google等検索かけても、手動設定の手順は引っかかるものの、
ヒントに繋がるような情報も引けず、
紀伊国屋で、専門書をあさるも時間だけがすきていきました。
(前レスでご指摘頂きましたとうりaccess関連側から調べていたので余計に見つからなかったのかも)
なかば、あきらめぎみでした。

本当にありがとうございます。

370361:2005/12/03(土) 17:50:42 ID:???
>>369
自己レス

> タイムラグに関しては、私の環境では、気になりませんでした。
> (レポートでは試していませんが)また、実装段階でも、待ち時間に関しては、
> 問題にならないと思います。
まったく・・・。とんちんかんなこと書いてますな。
落ち着いてみると意味がわかりました。
レポートで表示のタイミングで、グラフがあがってこないと、
その辺りのタイミングで問題でるかもということなんですね。ふー。

しかし、やはり、VBA初心者はつらい。もすこし時間かけることになりそ。
16進から10進への変換にもなやんでるし・・・。
コード内から、レコードの呼び出しもわからんし。

371NAME IS NULL:2005/12/03(土) 18:53:52 ID:???
向上心持つことは良いことなんだろうけど初心者がこだわりすぎてもきついだけだぜ
372363:2005/12/03(土) 21:15:42 ID:???
>>371
同意。
ただし本人にそれが出来るかどうかと、それをネタに周りが遊ぶか
どうかは関係ないので、ネタがそこそこ面白そうで周りがヒマなら、
本人を置き去りにして勝手に遊ぶのもアリか。

>>370
> 16進から10進への変換にもなやんでるし・・・。

変換というほど大げさなものではない。
文字列なら、頭に "&H" を付ければ終わり。
代入先が数値型なら、勝手に型変換してくれる。

もっとも >>362 を見ると「#33ddff」のようになっているので、
16 進は 16 進でも、HTML カラー形式か?
だとすると、VB/VBA のカラー形式とはバイトオーダーが逆転する。
HTML カラー形式と VB/VBA のカラー形式の仕様について知らないと
違う色になるよ。

> コード内から、レコードの呼び出しもわからんし。

こちらは Access VBA 入門書に必ず載っている基本中の基本なので、
資料に困ることはないと思う。


前にも書いたけど、VBA 初心者にはかなり厳しい内容であることは
間違いないし、処理自体は実装できても、レポートのフォーマット
とのタイムラグが懸念されるので、色変更が画面描画に間に合うか
どうかの保障もない。

VBA に慣れている人間が小一時間でテストするんだったら、処理を
実装してもダメだったわ残念、で済むけど、VBA 初心者が一週間も
かけたら、ダメだったときのダメージが大きすぎてトライアルコスト
に見合わないのではないかという気もする。

繰り返しになるけど、ダメだったときの代案は用意しておいたほうが
いいと思うよ。
373nz(NAME, NULL):2005/12/15(木) 10:32:11 ID:wGga6Jr3
Accessでスーパーテーブルとサブテーブルを実装するのに、うまい方法はないでしょうか。
たとえば、
顧客テーブル(顧客ID, 登録年月日 PK(顧客ID))
個人顧客テーブル(顧客ID, 氏名, 生年月日, 性別, PK(顧客ID),
      FK(顧客ID) REF 顧客テーブル(顧客ID))
法人顧客テーブル(顧客ID, 法人名, 代表者氏名, PK(顧客ID),
      FK(顧客ID) REF 顧客テーブル(顧客ID))
※PK:主キー制約 FK 〜 REF 〜: 外部キー制約

といったテーブルで、単純にデータを追加すると個人と法人両方に値を持つ
矛盾した顧客が出来上がる可能性がありますが、これを回避することは
できないでしょうか。

 または、顧客テーブルを
顧客テーブル(人格, 顧客ID, 登録年月日 PK(人格, 顧客ID))
という風にして、顧客IDは個人法人それぞれで重複することを前提にして
親テーブルの「人格」列でそれぞれを見分ける方法も思いつきましたが、
外部キー制約をつけるために子テーブルにも常に同じ値が入る「人格」列を
つけないといけなくなるなど、どうもスマートでない気がします…。
374NAME IS NULL:2005/12/15(木) 11:22:22 ID:???
>といったテーブルで、単純にデータを追加すると個人と法人両方に値を持つ
>矛盾した顧客が出来上がる可能性があります

できないようにコード書けば良いだけじゃないの?
375373:2005/12/15(木) 12:31:33 ID:???
>374
確かにそうすればよいのですが…。今後に渡って誤って矛盾のあるレコードが
登録されていないかを定期的にチェックして、見つかった場合はどちらに
該当するかを調査する、という手間が発生しないようできるだけDBの制約を
使って予防しておきたいのです。
376NAME IS NULL:2005/12/15(木) 14:39:21 ID:???
>>373
継承を実現するためのメジャーな方法はこのあたりかな。

1. 親テーブルの列を子テーブルに含めてしまい、独立した2テーブルにする。
 T_個人顧客(顧客固有の列、個人顧客固有の列)
 T_法人顧客(顧客固有の列、法人顧客固有の列)

2. 全てを含むような1テーブルにする。
 T_顧客(顧客固有の列、個人顧客固有の列、法人顧客固有の列、弁別子)

3. 固有の情報のみもち、外部キーでつなぐ(>>373の方式)
 T_顧客(顧客固有の列)
 T_個人顧客(個人顧客固有の列、外部キー)
 T_法人顧客(法人顧客固有の列、外部キー)

子テーブル固有列数が少なければ2が重複を気にしないでもよいかも。
もちろんあまりスマートな方法とは言えませんが。
377NAME IS NULL:2005/12/16(金) 11:03:45 ID:9U+gidyi
宜しくお願いします
テーブルの中で隣のフィールド同士を比較したいのですが可能ですか?
(例)フィールド1とフィールド2・・この二つが同じならOK、違うならNGを
フィールド3へ表示。ExcelだとEXACTがありますがクエリで同様の事が出来ますか?
378NAME IS NULL:2005/12/16(金) 11:50:01 ID:???
>>377
IIF関数

判定結果をわざわざフィールドに収納したいなら更新クエリ
379373:2005/12/16(金) 22:22:43 ID:???
>376
ありがとうございました。とりあえず、1,2の折衷のような形にしました。

顧客テーブル(弁別子, 顧客ID, 登録年月日 PK(弁別子, 顧客ID) CHECK(弁別子 IN ('個人', '法人')))
個人顧客テーブル(弁別子, 顧客ID, 氏名, 生年月日, 性別, PK(弁別子, 顧客ID),
      FK(弁別子, 顧客ID) REF 顧客テーブル(弁別子, 顧客ID) CHECK(弁別子='個人'))
法人顧客テーブル(弁別子, 顧客ID, 法人名, 代表者氏名, PK(弁別子, 顧客ID),
      FK(弁別子, 顧客ID) REF 顧客テーブル(弁別子, 顧客ID) CHECK(弁別子='法人'))

SQL99 ではオブジェクト指向なテーブルが規定されているようなので、
きちんとした継承をサポートしたDBが作れる94年後を楽しみに待つこととします。
380NAME IS NULL:2005/12/21(水) 14:00:31 ID:???
質問失礼致します。
エラー処理のことで入金額という欄に入力規則を設けてそこで規則違反が起きると
エラーメッセージを表示して再入力させるようにしています。

それで、そのフォームを閉じるときにもそのエラーが起きるとエラーメッセージが出てから閉じる状態になってしまいます
フォームを閉じるときはそのエラーを無視してもらいたいんですが(エラーメッセージが出なくていい)どうしたらいいでしょうか?
381NAME IS NULL:2005/12/21(水) 16:40:15 ID:???
>>380
Unloadの前に入力チェック発生するみたいだし、閉じるボタン作ってundoさせれば?
ただ、正常に入力している場合でもカレントレコード移動させて更新確定しないと消えるが。
382NAME IS NULL:2005/12/22(木) 13:36:06 ID:???
>>379
そこで2000年問題かよ
383NAME IS NULL:2006/01/09(月) 10:53:54 ID:???
age
384NAME IS NULL:2006/01/12(木) 18:12:44 ID:???
ユニオンクエリを使うと時々データが欠損することがあるんですが
これは仕様?
385NAME IS NULL:2006/01/12(木) 18:19:31 ID:???
なったことない。
386NAME IS NULL:2006/01/12(木) 18:59:41 ID:fRE+Pk92
97で WHERE ### = null でnull項目を抽出出来たのが
2003では WHERE ### is null じゃないと駄目になったんですかね?
387NAME IS NULL:2006/01/13(金) 01:06:15 ID:???
>386
x=NULL が通るほうが例外的な気がするが…97はできるのか。初めて知った。
388NAME IS NULL:2006/01/13(金) 11:13:49 ID:???
>>384
ちなみにUNIONとUNION ALLの違いは分かってるか?
389384:2006/01/17(火) 01:07:35 ID:???
>>388
分かってたら質問するわけねえだろ、このハゲ。
390NAME IS NULL:2006/01/17(火) 01:09:13 ID:???
マジかよw
391NAME IS NULL:2006/01/17(火) 13:08:47 ID:W1SvMsnS
現在仕事でXP上でAccess2kを使用しております。
で、このmdbを英語( XP & Access)で使用することになったのですが、
英語版を購入する前に質問をと書き込みました。

1.英語版と日本語版のAccessに差異or相違はあるのでしょうか?
2.日本語版を英語版に移植するにあたって、気をつけなければならないことは?
3.英語版での制約事項。

移植されたことのある方、教えてください〜

開発環境はボーランド C++ビルダー6.0です。
392NAME IS NULL:2006/01/17(火) 13:15:02 ID:???
いるといいね……
393NAME IS NULL:2006/01/18(水) 20:45:55 ID:???
クエリのネタじゃないんだけど、他にAccessのスレ見つからなくて・・・
誰かお知恵を。

Access2000でフォームを帳票形式で表示している時、
カーソルのある行か否かを識別する方法ってない?

カーソルのある行だけ色を変えたりしたいんだけど、
例えば単純に
lblName.BackColor = RGB(255,0,0)
みたくすると、全行に反映されてしまうので。

行インデックスとか指定してやる方法とかないのかな?
394NAME IS NULL:2006/01/18(水) 20:58:52 ID:???
良くあるネタだが、帳票形式で特定レコードのみ色を変えるのは無理。
擬似的にそれっぽく見せる方法は無くはないが。

ちなみにこのスレはクエリの質問専用じゃない。
クエリ3ってのは3スレ目ってだけの意味なんだけど誤解を生みやすいよなぁ。
395NAME IS NULL:2006/01/18(水) 22:58:12 ID:WK8T+z2K
win98にaccess2000をインストールしています。そのwin98と同一ネットワーク内にあるwinXPに
TOMCATをインストールしてそこからJDBCを使ってwin98のaccess2000のデータベースに
接続するにはどうしたらいいのでしょうか?
396393:2006/01/19(木) 08:56:24 ID:???
>394
レスdクス

擬似的にって、例えばどんな方法・・・?
普通に [コントロール名].プロパティ を設定すれば全行に反映されるしw



あ、“クエリ3”ってそゆ意味だったんねw
397NAME IS NULL:2006/01/19(木) 18:54:53 ID:OK8xAwYb
アクセスのことあまりわかんないのですが今日バイトで販売履歴のところを右クリックで削除しちゃいました。
そしたら金額がでなくなっちゃったんです。。。
顧客台帳を消さずに元にもどす方法おしえてください。
398NAME IS NULL:2006/01/19(木) 19:02:26 ID:???
土下座だな
システム担当者に土下座すれば、あるいは元に戻るやも知れん
399NAME IS NULL:2006/01/19(木) 19:55:05 ID:???
削除したものが戻るなんて本気で思っているのか?
400NAME IS NULL:2006/01/19(木) 20:18:39 ID:???
adpファイルの接続情報(データリンクプロパティ)を外部(VBとか)から
取得や変更するにはどのような方法がありますでしょうか?
401400:2006/01/19(木) 20:37:31 ID:???
ここ見たら自分でできました。
ttp://dobon.net/vb/bbs/log3-14/8057.html
402400:2006/01/20(金) 10:14:36 ID:???
で、できない。。。
接続情報を取得はできても更新ができない。

“特定できないエラーです。”と出ます。

更新時に他のアプリで開いているわけでもありません。
タスクマネージャでプロセスの確認もしています。

原因には何が考えられるでしょうか?
403NAME IS NULL:2006/01/20(金) 11:27:11 ID:xMHEu8kM
ACCESSの上級者用のオススメ本を教えてください。
404400:2006/01/20(金) 12:18:06 ID:???
自己解決。
サーバとDB名をテレコにしてたw
405NAME IS NULL:2006/01/20(金) 12:38:24 ID:???
>>403の上級者のイメージってどんなのかまず書かないと
406NAME IS NULL:2006/01/24(火) 21:49:47 ID:???
>>391
BuilderってことはAccessはあくまでデータの保存としてのDBと
して使うんでしょ?
英語版に移植する必要性がわからないんだけど。
407 :2006/01/27(金) 15:20:29 ID:PEWtajmR
よくオートナンバー型が嫌いで、DMax+1 で連番振るサンプルを見るんですが、
これだと消去したレコードの番号は使われない可能性がありますよね?
そこで、「空き番号の中で最小の整数を振る、空き番号がなければDMax+1」
という関数を組もうとしたら、どういうふうにすればよいでしょうか?
408NAME IS NULL:2006/01/27(金) 15:28:38 ID:wLYQfH91
クエリではないんですが・・・。  2000を使っています
フォームで商品CDを打つと商品名、単価が出て数量を入力できるようにしています
そのつど単価が変更になるときもあるため商品CDを打つと単価の所に変更可能な形で
取得することができるようにするにはどうしたらいいのでしょうか?
よろしくお願いします
409NAME IS NULL:2006/01/27(金) 16:20:16 ID:???
>>407
IDで並べ替えたレコードを一つずつ見ていってi=i+1と違う数字になったらiの値を返すコード書けばいいじゃない。
410NAME IS NULL:2006/01/27(金) 16:25:54 ID:???
>>408
商品マスタと入出庫テーブルみたいなものがあるんだろうけど、
入出記録する方に単価フィールド追加して、商品CD更新後イベントで
マスタ側の単価を入出庫側の単価フィールドと連結したテキストボックスにコピー。
411408:2006/01/27(金) 16:52:20 ID:wLYQfH91
>>410
ありがとうございます
やってみます
412408:2006/01/27(金) 17:36:23 ID:wLYQfH91
>>410
すいません。
入力テーブル、請求先別単価テーブル、商品テーブルの三種類のテーブルがあります
入力Tと商品Tをクエリで商品名など参照して商品CDと数量のみを今まで入力してました
これを入力Tへ商品CDを入力すると単価Tから入力Tへ単価をコピーする方法も
上のやり方でよろしいのでしょうか?
コピーをする式?も教えていただけませんか
お願いいたします
413NAME IS NULL:2006/01/27(金) 17:39:51 ID:???
日本語が理解できない
414NAME IS NULL:2006/01/28(土) 02:44:46 ID:???
>>408

その説明じゃよく解らないけど、フォームは非連結なの。
それとも連結?
言いたいことは、商品CDと請求先によって商品単価を
変えるってことでいいの?
そうじゃなきゃ、請求先別単価テーブルなんて必要ないはずだよね。
415408:2006/01/28(土) 17:18:49 ID:GEN2EUR3
>>414
フォームは連結でやっています
一応請求先で単価が違います
通常時は登録してある単価でいいんですが
今回だけこの単価とかいうのがあってそのつど単価マスタのほうを
変えて入力後再び戻すっていう作業が発生してしまうので
売上入力時にマスタの単価が出てそのつど変更は出来るけど
マスタには通常の単価のままでみたいなのが理想です
どうしたら出来ますでしょうか?
宜しくお願いいたします

416NAME IS NULL:2006/01/28(土) 21:08:05 ID:???
>>408

ほぼ410氏の言っている通り。
請求先別単価テーブルから単価を引っ張ってくる。
商品CDの更新後処理で単価のテキストボックスの
値を変えてやればいい。

Me!txt単価 = DLookup("単価フィールド", "請求先別単価テーブル", "抽出条件")

抽出条件には「請求先」と「商品CD」を使用することになるのかな。


417NAME IS NULL:2006/01/28(土) 21:10:19 ID:???
そんなに難しい事じゃないと思うんだが、基本すら理解できていないようだから
解説しても無駄のように思えるが

入力テーブルに、商品CDと請求先CDがあると仮定して、
更に請求先別単価テーブルに商品CDと請求先CDと単価があると仮定する。
まず、フォームのレコードセットを

SELECT *
FROM (
入力テーブル
LEFT JOIN
請求先別単価テーブル
ON
(入力テーブル.請求先=請求先別単価テーブル.請求先CD)
AND
(入力テーブル.商品CD=請求先別単価テーブル.商品CD)
)
LEFT JOIN
商品テーブル ON 入力テーブル.商品CD=商品テーブル.商品CD

にする。
んで、商品CD入れる連結テキストボックスをtxt商品CD、
請求先CDを入れる連結テキストボックスをtxt請求先CD、
単価を入れる連結テキストボックスをtxt単価で、
請求先別単価テーブル.単価に連結されたテキストボックスをtxt参照用単価と仮定する。

で、
Private Sub 単価を入れるよ()
If IsNull(txt商品CD) Then Exit Sub
If IsNull(txt請求先CD) Then Exit Sub
txt単価 = txt参照用単価
End Sub
こんなコードを適当に書いて
txt商品CDとtxt請求先CDの更新後イベント時にコールすれば良い。
別にレコードソースいじらなくてもDlookupなりDfirstでもいいんだろうけど。

418408:2006/01/29(日) 13:15:20 ID:XxgOry42
>>416.417
できましたありがとうございます
もっと勉強していきます
419NAME IS NULL:2006/01/30(月) 21:44:16 ID:75FBYrqn
顧客IDをオートでふっているんですけど
たまに番号がとんでしまいます。
どうすれば直るんでしょうか?
420NAME IS NULL:2006/01/30(月) 21:54:46 ID:???
直りません
421NAME IS NULL:2006/01/30(月) 23:34:33 ID:gBGX4UUl
>>419
同じ構造の別テーブル(オートナンバー型は長整数型で)を使っていいなら
直せる。
422NAME IS NULL:2006/01/31(火) 21:09:48 ID:???
>>419
欠番があっちゃまずいわけでもあるのか?
それにmdbを最適化すると勝手に詰められちゃうAutoNumberなんか
使わなくちゃいけないわけももあるのか?
423NAME IS NULL:2006/02/04(土) 08:55:10 ID:???
「Microsoft Access クエリ」の3スレ目かと思ったが、スレッド数を表しているだけなんだな。
クエリの質問専用スレだとばかり思ってたよこんちくしょう。
424NAME IS NULL:2006/02/04(土) 12:01:50 ID:???
「支払方法」等の、整数型のIDとテキスト型の名称しか無くて、レコード数も10以下の
簡単なマスタが増えてきて、クエリが複雑になってきたんだけど、
こういうのって一つずつテーブルを作るよりもEnum+そのindexに対応したテキストを返す関数を
作って管理した方がスッキリするんじゃないかと思えてきた。
お前らはこういう細々したマスタの扱いはどうしてますか?
IDで管理せずにそのまんまテキストで項目保存しちゃうってのもアリだが。
425NAME IS NULL:2006/02/05(日) 17:45:24 ID:???
>>424

■支払い方法
支払い方法ID (主キー 重複なし)
名称

てことだよね?
私は、そういう細かいマスタは作らないようにしてるなぁ。。
単なる入力制限なら、テーブル化のメリットはないと思うし。。。。

クエリが大変なことに、ていうのであれば、
連携をとろうとしているテーブルと、支払方法テーブルとの
関係を設定するテーブルをひとつ作ればいいんじゃないのかなぁ?
もしくは、テーブル設計の見直しとか。

例えば
■取引先
取引先ID (主キー 重複なし)
取引先会社名
取引先住所
……
備考

というテーブルがあって、「ここの取引先の支払ってどんなのだったっけ?」と
見たい場合、いったん、ほかの伝票テーブルとかを経由するから
クエリがややこしくなるんでしょ。

だから、
その1.
■取引先別支払方法
取引先ID (主キー 重複あり)
支払方法ID (主キー 重複あり)

みたいなテーブルを作っちゃうか、

その2.
■支払い方法
取引先ID (主キー 重複あり)
支払方法ID (主キー 重複あり)
名称

みたいにテーブルの状態を変えちゃうと、クエリはすっきりするんじゃない?

状況がわかんないから、的をはずしたレスになっているのかもしれないけど、
ややこしいクエリをたくさん書く必要がある、てことは
リレーションを見直したほうがいいのかな、と思ったよ。
ま、一番重要なのは、楽が出来ることだと思うよ。
426NAME IS NULL:2006/02/05(日) 17:49:56 ID:???
ややこしいというか、ただ名称を参照するためだけにleftjoin書くのがめんどいな、ってだけなんだけどね。
427NAME IS NULL:2006/02/05(日) 21:36:54 ID:???
コードや名称が変わる・データが増減するなどのメンテが発生しないなら
テーブルは作らない。

>>425
取引先で支払方法が1つに決まるなら、取引先テーブルに支払方法を入れ
てしまうだろ。伝票ごとに支払方法が変わるなら、伝票経由も仕方がない。
と考えると、その1・その2の考えはどういうパターンで使えるのかわからん
のだが。
428NAME IS NULL:2006/02/05(日) 22:06:44 ID:???
>>427
あんまり考えなしに書いた&初級者さんなんで。。。

その1はすでにあるテーブルのデザイン変更をしないで、
連結用テーブルを新しく作成。

その2は既存のテーブルのデザインを変更(項目追加)。

ていう感じで書いた。。。。

単純に、新しい連結方法を作ればいいじゃない!と思っただけなんだ。
どっちでもいいと思うけど、どっちの方法が適切なのかなぁ?
それともほかによい方法がある?
429NAME IS NULL:2006/02/05(日) 22:22:04 ID:???
話題がややこしくなっているな。
曜日で喩えると、「日曜日」「月曜日」「火曜日」と、毎回テキスト型で収めるのは
嫌なので整数型で0,1,2と入れているんだけど、その数字とテキストの照合をどう
やるのが良いかな、ってだけなんだけど。
430NAME IS NULL:2006/02/05(日) 22:42:13 ID:???
>>429
ああ、ごめん。
やっとわかった。。。。

話をややこしくしてスマソ('д`)
ルックアップウィザードを使っちゃう、ていうのはダメなのかなぁ?

431NAME IS NULL:2006/02/05(日) 23:07:21 ID:???
>> 427がいってるようにメンテがあるかないかで決まるだろ。
それにクエリを極力避けスピードアップを狙うなら、テキスト
型でおさめたっていいだろうに。所詮、Accessだし。
432NAME IS NULL:2006/02/06(月) 15:16:49 ID:???
キー1つ名称1つの構成で毎回毎回LeftJoinが面倒、でももしかしたら将来的にはメンテ発生の可能性もあり。

こういったケースならとりあえず俺は関数化しとくが・・・
433NAME IS NULL:2006/02/07(火) 19:03:24 ID:KrWY1q0P
クロス集計クエリの結果、最大で何個のフィールドが出てくるかわかっているとして、
それ以下しか出ない場合でも、最大のフィールド個数で結果が出るようなクエリってどう書くの?

子供の数は10人までと決めて、

姓_ 順番_ 名前
−− −−− −−
山田 第一子 一郎
鈴木 第一子 和子
山田 第二子 次郎
山田 第三子 三輔
鈴木 第二子 二美
山田 第四子 志穂

みたいなテーブルを、姓が行見出しでクロス集計して、列見出しに「第十子」まで出てきて欲しいの。

元のテーブルにダミーのデータを入れれば出るけど、他の方法はないでしょうか?
434NAME IS NULL:2006/02/07(火) 19:34:26 ID:???
>>433
PIVOT Field IN(hoge1,hoge2,hoge3)
435NAME IS NULL:2006/02/07(火) 19:54:10 ID:KrWY1q0P
>>434
わーい。できたぁ。ありがとぉございますた。
436NAME IS NULL:2006/02/07(火) 20:22:02 ID:IEf9ilRM
エクセルならばRANK関数があり出来るのですが、アクセスではどうすれば出来るんでしょうか?

エクセルの関数を使えるように設定するとか、Dcount関数でも可能と言われたのですが、方法と関数の書き方がわかりません。

どなたか教えてください。
437NAME IS NULL:2006/02/07(火) 20:31:16 ID:???
438NAME IS NULL:2006/02/11(土) 18:05:12 ID:Ox335p9O
テーブル名: ソング

曲: テキスト型

仮の入力データ

曲: あいうえお
曲: かきくけこ
曲: さしすせそ
曲: たちつてと
曲: なにぬねの
    ・
    ・
    ・
曲: らりるれろ

テーブル名: セットリスト


整理番号:数値型

曲順: 数値型

曲: テキスト型

「仮の入力データ」

整理番号: 1 曲順: 1 曲: あいうえお
整理番号: 1 曲順: 2 曲: かきくけこ
整理番号: 1 曲順: 3 曲: さしすせそ
整理番号: 2 曲順: 1 曲: あいうえお
整理番号: 2 曲順: 2 曲: はひふへほ
整理番号: 2 曲順: 3 曲: かきくけこ
整理番号: 3 曲順: 1 曲: らりるれろ
整理番号: 3 曲順: 2 曲: まみむめも
整理番号: 3 曲順: 3 曲: あいうえお
            ・
            ・
            ・
整理番号: 10 曲順: 1 曲: たちつてと
整理番号: 10 曲順: 2 曲: あいうえお
整理番号: 10 曲順: 3 曲: さしすせそ
439NAME IS NULL:2006/02/11(土) 18:06:55 ID:Ox335p9O
上記にあるように二つの内容のテーブルがあります。
「テーブル名:ソング」には簡略してありますが、曲の詳細(リリース日等々)を入力し、
「テーブル名: セットリスト」にはコンサートで演奏された曲を入力してあります。

「テーブル名:ソング」を基に「フォーム」を作成し、コンサートで演奏された回数を
[=DCount("[曲]","[セットリスト]","[曲] =Form![曲] ")]という式をコントロールソースに
入力して数値を求めています。その演奏回数の順位(どの曲が一番多く演奏されているのか?)を
別フィールドを作成し、求めようとしているのですが、DCount関数などを使ってみても、どうしても出来ません。

どうか、解決法を教えてください。
440NAME IS NULL:2006/02/11(土) 23:08:13 ID:???
>>439
> [=DCount("[曲]","[セットリスト]","[曲] =Form![曲] ")]という式をコントロールソースに

× "[曲] = Form![曲] "
○ "[曲] = '"& Forms![フォーム名]![コントロール名] & "'"

それ以前に、ふつう集計関数使うと思うんだが、、、
441439:2006/02/12(日) 16:37:37 ID:REWCUU4+
サンクス
442NAME IS NULL:2006/02/13(月) 13:16:38 ID:TGE6p0Qw
コンボボックスヴィザードで
「コンボボックスで選択した値に対応するレコードをフォームで検索する」
ボタンが表示されず、
「テーブルまたはクエリの値をコンボボックスに表示する」
「表示する値をここで指定する」
しか表示されないのはなぜ?
いくらハンドブック見ても分からない。教えて下さい。
443NAME IS NULL:2006/02/13(月) 22:40:26 ID:sQPDD166
>>442
それができないならこの先は無理だ。
そのくらい自己解決できんならあきらめろ。
444NAME IS NULL:2006/02/14(火) 11:31:20 ID:sUa9mtX4
初心者です。教えてください。

クエリ式'Format([日付]"0000")'コンパイルのエラーが発生しました。

とエラーが出るのですが、何を意味するエラーなのですか?
445NAME IS NULL:2006/02/14(火) 11:46:46 ID:???
Access2000でParadoxのDBをリンクして内容を取り出そうとしてるんですが、
どうにもうまくいきません。(OS: Win2000 SP4 + SP4対応ロールアップ1)

ParadoxのDBは言語がJapanで作られてるようでそのままでは「照合順序が
正しくありません」と言われてリンクすらできなかったので、
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP418596
のJet4.0のレジストリを変更するほうで、なんとかリンクできるようにはしました。
(元のParadoxのDBは、他システムに組み込まれてるので変更できない)

で、それでリンクできたのですが、今度はデータ内容がうまく表示できません。
具体的には、項目数や属性は合っているようですが、項目名(日本語)の取得
ができていません(NoName、列0、列1、、、となる)
また、表示される値は先頭項目の値のみで残りの項目にはそれと同じものが
並んでいる状態です(先頭の項目値が123の場合、その行の残りの項目も123)

他には正常にリンクできているテーブルもあるのですが…
なにかご存知の方、よろしくお願いします
446NAME IS NULL:2006/02/14(火) 11:58:22 ID:???
>>444
カンマが無い
447NAME IS NULL:2006/02/14(火) 13:34:23 ID:sUa9mtX4
クエリ式'Format([日付]"0000")'コンパイルのエラーが発生しました。

どうしてもエラーが消えないのですがどうしたらいいのか教えてください
本当の初心者ですいません
448NAME IS NULL:2006/02/14(火) 14:49:07 ID:???
>>447
カンマが無い
449447:2006/02/14(火) 15:42:44 ID:sUa9mtX4
なんかよくわからんだけどエラーが消えた(゜д゜;)
450NAME IS NULL:2006/02/14(火) 16:33:32 ID:???
>>449
だからカンマがねーんだってのバカ
451NAME IS NULL:2006/02/14(火) 21:38:43 ID:???
パラメータクエリで日付を入力させ、
それが日付形式でなかった場合に
警告を出してもう一度入力窓を開かせたいっていう
欲張りなことしたいんですが…
クエリだけでできる方法があれば教えてください。
452NAME IS NULL:2006/02/14(火) 22:15:33 ID:???
>>451
クエリだけでは無くなるけど、

Do
  str = InputBox("条件を入力してください")
Loop While Not IsDate(str)

てな感じのファンクション作ればクエリでも使えるべ。
453NAME IS NULL:2006/02/14(火) 23:42:22 ID:???
>>452
間違えてそのクエリを動かしてしまった場合、Accessそのものを強制終了しない限り
永遠に「条件を入力してください」とINPUTBOXが表示されるんだが・・・・



454NAME IS NULL:2006/02/15(水) 00:11:49 ID:???
>>453
だったら入力回数カウントさせれば良いだけだろ
455NAME IS NULL:2006/02/15(水) 00:55:12 ID:???
>>451
PARAMETERS [日付を入力] DateTime;
SELECT ・・・;
456NAME IS NULL:2006/02/15(水) 09:17:36 ID:65UexEcb
このリレーションシップを作成して、参照整合成を設定できません。

と表示されるのですが、Excelからインポートしたのが原因ですか?
457NAME IS NULL:2006/02/15(水) 09:35:45 ID:???
それだけじゃなんとも言えない。データ型違うとかでね?
458NAME IS NULL:2006/02/15(水) 09:42:31 ID:65UexEcb
457 ありうがとうございます。
データ型もフィールドプロパティも同じにしてあるのですが、
自分には何いがいけなくてどうしたらいいのか分かりません
459NAME IS NULL:2006/02/15(水) 09:49:03 ID:???
俺にも分かりません。
460NAME IS NULL:2006/02/15(水) 10:18:43 ID:???
>>458
1対多の「1側のデータがないか重複している」というのはチェック済みか?
461458:2006/02/15(水) 13:51:19 ID:65UexEcb
[在庫テーブル]
   No.     数値型   長整数型
主キー 商品番号  テキスト型 既定値:1
   日付    日付/時刻型
   数量    数値型   フィールドサイズ:倍精度浮動小数点型

[出庫テーブル]
主キー No.    数値型    数値型  長整数型
   商品番号 テキスト型  既定値:1
   店名   テキスト型
   日付   日付/時刻型
   数量   数値型    フィールドサイズ:倍精度浮動小数点型 

こんな感じで在庫テーブルの商品番号と出庫テーブルの商品番号を
リレーションシップで参照整合性したいのですが
設定できません
と表示されるのです。
出庫テーブルのデータはExcelでインポートしたものなので
それがいけないんでしょうか?



462NAME IS NULL:2006/02/15(水) 14:51:24 ID:???
単純に、マスタ兼在庫テーブルにない商品番号が出庫テーブルにあるんでね?

在庫テーブルのNo.フィールドはいらないよな。
主キーに固定の規定値与えてたら重複警告出てウザそうだな。
ついでに在庫は出庫と入庫から計算して出した方が良いな。出庫の意味なさげ。
463NAME IS NULL:2006/02/15(水) 15:14:06 ID:???
>>461
データ自体に問題がないことは確認済?
464461:2006/02/15(水) 15:56:09 ID:65UexEcb
レスありがとうございます。
在庫から出庫のデータが引かれるようにしたいんですが

入庫テーブルは作って(主キーはNo.ですが)在庫とリレーションできました。
どうあっても出庫と在庫がリレーションできないです。
出庫データは問題ないはずなんですが・・・。
同じ出庫データを別のPCで作成した時は同じデータで作成できたのに・・・。
465NAME IS NULL:2006/02/15(水) 16:05:05 ID:???
とりあえず、データ全部消してリレーション作れるかやってみれば?
466461:2006/02/15(水) 16:22:08 ID:65UexEcb
465さんの言うとおりデータを全部消してリレーションやってみたら
ちゃんとできました。
やはりデータに問題があるのですね。
しかしどこに問題があるのかがわからないです。
問題を見つける方法とかはありますか?
467NAME IS NULL:2006/02/15(水) 16:40:25 ID:???
>>466
一行ずつインポートしていって見つける
468NAME IS NULL:2006/02/15(水) 16:57:11 ID:???
出庫テーブルは商品が出庫する都度、データがつくられるのか?
だとすると、商品番号どうしで結合すると1対1結合になるから商品番号での参照整合性は無理。
(商品1件につき出庫テーブルも1つしか商品番号を持てないことになる)
入庫テーブルはたまたま同じ商品番号のデータがなかっただけだと思う。

解決方法はNOがユニークになるのならば、主キーを商品番号+NOにして1対多の結合にしてみる。

と、ここまで推測だけで書いてみた。


469NAME IS NULL:2006/02/15(水) 17:16:45 ID:???
エスパーの集うスレにようこそ
470NAME IS NULL:2006/02/15(水) 19:07:21 ID:???
>>466
これで参照性合成の違反レコード見つからないかな?
エスパーでない俺にはそろそろ限界だ、、、

SELECT 多側テーブル.商品番号
FROM (
SELECT 出庫テーブル.商品番号
FROM 出庫テーブル
GROUP BY 出庫テーブル.商品番号
) AS 多側テーブル
LEFT JOIN 在庫テーブル ON 多側テーブル.商品番号 = 在庫テーブル.商品番号
WHERE 在庫テーブル.商品番号 Is Null;
471NAME IS NULL:2006/02/15(水) 20:05:24 ID:KVHlvHKR
すんません。<とりあえず>というかたちでデーターベースの勉強したいだけならAccess 97でもいけますかね?
(当方XP環境)

つかいこなせそうならのちのち2003とかの購入とか考えてはみたいのですが、まともに買うとわりと高い買い物になってしまうので、まずは昔のバージョンをオークションかなんかで購入して試してみたくて、と思っているのですが・・・。

どーなんでしょう?
472NAME IS NULL:2006/02/15(水) 20:18:18 ID:???
AccessでDBの勉強になるかはさておき、97でも良いと思う。
473NAME IS NULL:2006/02/15(水) 21:51:12 ID:nmm6kUhg
>>471
漏れは、未だにAccess97をメインで使用してる。

2000以降じゃないと困るような場面って何にもないからなぁ。
474NAME IS NULL:2006/02/15(水) 22:16:16 ID:???
SQLServer2005Expressという選択肢はダメなのかねぇ?

自分の場合はアカデミックパックという強い味方を使えるので、
それで買っちゃったけどなぁ。。。
475NAME IS NULL:2006/02/15(水) 22:18:58 ID:???
>>471
勉強するのならば97がいいかも。
2000以降はHELPがわかりずらいが97のHELPはよくできている。
476NAME IS NULL:2006/02/15(水) 22:23:58 ID:???
わかりずらい→×
わかりづらい→○
477NAME IS NULL:2006/02/16(木) 00:42:56 ID:???
>>471
データベースの勉強をお金かけずにやるなら、PostgreとかMy SQLとか。
Accessはちょっと違うと思う。フォームだ何だとややこしいし。初心者に
はね。

>>473
困ることはないが、2000以降の機能で便利なものもあるぞ。

>>475
そうそう。変にこりすぎてて、見つけたいヘルプがなかなか表示されない。
2003触って懲りた。
478NAME IS NULL:2006/02/16(木) 01:44:11 ID:7U8Zop/v
>>477
ac97でツールや自前のライブラリがあるから何にもほしいとも思わない。
枯れてるから安心だし、OSが変わっても後10年は使いつづけそうだ(w

2000以降じゃなければならんような便利な機能ってなにかある?
479461:2006/02/16(木) 11:02:24 ID:1xQdvZ7e
なんとかなりました!!
ありがとうございました
480NAME IS NULL:2006/02/16(木) 11:44:11 ID:???
開発上必須というわけでもないけど、条件付書式とかPrintersコレクションの操作とかは
2000以降の嬉しい機能。
481NAME IS NULL:2006/02/16(木) 11:51:26 ID:1xQdvZ7e
在庫を更新するクエリでRoundを使ってるんですが
結果がどうしても-が付くのはなぜですか?
更新結果を整数でだすにはどのようにしたら良いのか
教えてください。
482NAME IS NULL:2006/02/16(木) 11:54:38 ID:???
>>481
例によってお前の使い方が悪いだけだろ。
実際の使用例を晒せ。
483481:2006/02/16(木) 12:00:04 ID:1xQdvZ7e
[在庫数]-Round([数量]/0.89,1)
これでマイナス表示が出るんです・・・
484NAME IS NULL:2006/02/16(木) 12:25:11 ID:???
>>483
実際使った在庫数と数量晒せよ
Round([数量]/0.89,1)だけでやって試せよ
,1じゃ小数点第二位で四捨五入するに決まってるだろ
ヘルプ読むかクビ吊れ
485NAME IS NULL:2006/02/16(木) 12:37:29 ID:???
>>480
んー、、、想定の範囲内の回答だ(w
486NAME IS NULL:2006/02/16(木) 12:49:10 ID:???
だったら先に想定書いておけよ……
487481:2006/02/16(木) 13:34:58 ID:1xQdvZ7e
クロス集計クエリを読み取り専用でなくすにはどうしたらいいですか?
困った
488NAME IS NULL:2006/02/16(木) 13:37:32 ID:???
>>487
死ね
489NAME IS NULL:2006/02/16(木) 18:29:03 ID:???
>>487
君は集計したデータを元のレコードにどうやって戻すのかね?
490NAME IS NULL:2006/02/16(木) 19:42:12 ID:???
>>487
んー……
君の場合、Accessとかデータベースとか以前の問題だと思うな
紙と鉛筆持って、「物事を筋道立てて考える」ところからやり直してみた方がいいと思うよ。
491471:2006/02/16(木) 21:11:24 ID:VUslBaKQ
>>472>>473>>474>>475>>477>>
ありがとうございます。

ええっとですね。
仕事で一日50人×約一件×365日のデータを蓄積しようとおもいたったはいいものの、これをエクセルでつくることを考えたら目眩がしたので、じゃあAccessかな? と。
(職場にはAccess2000だか2003だかは入っている。ただし自宅にはない)

職場で練習する時間がとれないんで、自宅で作って職場にもちこむことを考えたんですが、使いこなせるかどうかもわからないものに最新バージョンはきついなと思って。

ほんの初歩的なもので十分なんですね。


どうやらみなさんの意見を聞いてると97でも大丈夫そうなんで、97で試してみたいとおもいます。ありがとうございました。
492NAME IS NULL:2006/02/17(金) 20:02:18 ID:???
「test001」というフィールドがあると仮定して、
「Debug.Print Rs!test001」にて表示させることはできます。
この「001」部分を引数にして同じことはできないでしょうか?

イメージとしては下のような感じです。
i = "001"
Debug.Print Rs!test & i
493NAME IS NULL:2006/02/17(金) 20:16:36 ID:???
>>492
Debug.Print Rs.Fields("test" & i)

かな?
494NAME IS NULL:2006/02/17(金) 20:34:40 ID:+3pSS7dH
みなさん、こんばんは。です。
accessのVBAでINSERT文のSQLを作成し、
Executeで実行させようとしたところ、
「システムで予約されているエラー(−3025)です。
このエラーに対するメッセージはありません。」
というメッセージが出てしまいます。
DebugでSQLをクエリーのSQLに貼り付けて実行しても
同じエラーが出てしまいます。
いろいろ検索したところ、
「3025 これ以上ファイルを開くことはできません。 」
というのは見つかったのですが、とてもこれが原因とは思えず、対応に苦慮しています。
原因として考えられるヒントはありますでしょうか?
WinXPでACCESS2000を使用しております。
皆様のお知恵を拝借できれば幸いです。
495NAME IS NULL:2006/02/17(金) 20:34:51 ID:???
iなのにstringとはこれ如何に
496NAME IS NULL:2006/02/17(金) 23:52:59 ID:???
>>494
で、その問題が出たSQLはいつ晒してくれるんだ?
497NAME IS NULL:2006/02/18(土) 00:28:59 ID:???
>>496
エラー番号だけでわかるかなと思ったのですが、
SQLは項目数が多すぎて。。。
230ぐらい項目があります。
伝票の行を横に持っているテーブルなので、
作るほうも大変です。私の設計ならこんなことテーブルは作らないのですが・・・。
ヘッダ、明細行1、行2、行3・・・・行6 が1レコードになっているのです><
晒す必要があるなら晒しますが、もう、自宅なので、昼ぐらいになってしまいます。
498NAME IS NULL:2006/02/18(土) 00:36:36 ID:???
>>497
その項目数が多いのが問題。
まずは、クエリの仕様・制限をヘルプで確認してみ。
499NAME IS NULL:2006/02/18(土) 11:25:34 ID:cUmZjjDt
>>497
そうゆうやつは、一旦ワークテーブルに変換してからsql作れ。。。
500NAME IS NULL:2006/02/18(土) 14:39:55 ID:???
>>496,498,,499さん
いろいろありがとうございました。
232項目をばらして実行させたところ、
VALUESにSELECTSQL文を組み込んでいたところで
エラーメッセージがでました。
その文を外に出したところ、属性エラーはでますが
-3025はでなくなりました。
属性エラーはテーブル定義書と実際のMDBにある
テーブル定義の属性が違うので、設計者に聞かなくては・・・・。
本当にありがとうございます。
501NAME IS NULL:2006/02/20(月) 21:15:26 ID:QcBILdfF
画面にリンクしたテーブルをdeleteして
すぐにinsertでキーだけのデータを作成して
画面をクリアさせようとしたのですが、
#DELETEが出てinsertしたレコードの内容が反映されません。
Me.Repaint でフォームの再描画しても上手く反映しません。
なぜでしょうか?

502NAME IS NULL:2006/02/20(月) 21:40:37 ID:???
Repaint メソッド
このメソッドはデータベースの再クエリを行いません。
また、変更されたレコードや、テーブルに追加されたり、
テーブルから削除されたレコードに関する表示の更新も行いません。
フォームやフォームに含まれるコントロールのデータソースに対して
再クエリを行うには、Requery メソッドを使います。
503NAME IS NULL:2006/02/20(月) 22:38:47 ID:???
>>502
フォームを再クエリする為には、
サブフォームにしておかないとダメという事でしょうか?
504NAME IS NULL:2006/02/20(月) 22:46:22 ID:???
クエリ開いてて、リクエリーするのにショートカットキーってないのでしょうか?
いちいちマウス持ち替えて!を押すのが面倒くさくて・・・
505NAME IS NULL:2006/02/20(月) 23:56:16 ID:???
>>503
そんなことはない。もう少し勉強が必要だと思う。Me.Requeryって教えて
くれてるのに・・・マジでテーブル削除するのか?・・・レコードだろ。

>>504
ある。ヘルプを良く見なされ。F9が関係してるぞ。
506NAME IS NULL:2006/02/21(火) 02:08:01 ID:???
Me.Requeryだと、実行時エラーが発生。
507NAME IS NULL:2006/02/21(火) 02:36:13 ID:???
>>506

Meの代わりに直接コントロールソース名を指定してみたらどう?
508501:2006/02/21(火) 11:19:49 ID:Qa9d8pwS
>>503,505,507 さんレスありがとうございます。
Private sub クリア()
Dim rs As Recordset
Dim db As Database
Dim SQL As String
Set db = CurrentDb
SQL = "delete * from 明細行テーブル"
db.Execute SQL, dbFailOnError
SQL = "insert into 明細行テーブル ( id,行NO) values (1,1)"
db.Execute SQL, dbFailOnError
SQL = "insert into 明細行テーブル ( id,行NO) values (2,2)"
db.Execute SQL, dbFailOnError
db.Close
’ Me.Requery
end sub

Me.Requery では「実行時エラー2115 BeforeUpdate/更新前処理 プロパティまたはこのフィールドの
ValidationRule/入力規則プロパティに設定したマクロまたは関数のため、このフィールドのデータを
保存できません。」
というエラーになります。
他に方法が見当たらないですね。
ヘルプには、Requeryについて
・フォームの "Filter/フィルタ" プロパティへの変更に応じて、レコードの表示を更新します。
・テーブルやクエリに基づくコントロールには次のようなものがあります。
・リスト ボックスやコンボ ボックス。
・サブフォーム/サブレポート コントロール。
・グラフ コントロールなどの OLE オブジェクト。
と記載されていたので、サブフォームで明細を指定しないといけないのかと思ったわけです。
VBだったら簡単な処理なんだけど。
509NAME IS NULL:2006/02/21(火) 11:48:06 ID:???
Private sub クリア()はBeforeUpdateイベントから呼んでいるのか?
だったら先にそう書けよ。

このsubをAfterUpdateで呼ぶってのはだめなの?
510NAME IS NULL:2006/02/21(火) 12:10:45 ID:Qa9d8pwS
>>509
ありがとうございます。出来ました。
処理的に他の問題がでますが、
作りこみの問題であると思いますので
解決はできそうです。
511NAME IS NULL:2006/02/22(水) 01:04:19 ID:???
>>510
イベントによってやれる・やれないがわかってないようなので、
エラーが出る=自分が悪いと思った方がよい。嫌みではなく。
512NAME IS NULL:2006/02/22(水) 10:08:31 ID:???
Access97が出てから、もはや9年か・・・・漏れもいい年になってしまった・・・・

基本的にあまり変わってないが、
Access2007はどうなるんだろ?
513NAME IS NULL:2006/02/22(水) 10:23:02 ID:???
宇宙に行くよ
514NAME IS NULL:2006/02/23(木) 18:45:33 ID:HIymWhhs
メニューのフォームを作り、
ボタンで他のフォームに移る場合

Me.Visible = False
DoCmd.OpenForm ("他の処理1")

という、方法を行ったのですが、
他の処理のフォームのform_loadを通りません。
ブレイクポイントを一番上においても通らないのです。
その代わり、他の処理にあるコントロールをクリックすると
FORM_loadを通ります。
プロパティの読込時は[イベント プロシージャ]の指定になっています。
他の処理2というのもあるのですが、そちらは通ります。
両方のフォームのプロパティを見てもまったく同一です。
515NAME IS NULL:2006/02/24(金) 04:57:45 ID:???
>>514

2002では大丈夫のようです。
ちなみに、

DoCmd.Close
DoCmd.OpenForm ("他の処理1")

としたらどうなりますか?
516514:2006/02/24(金) 11:21:27 ID:???
>>515
同じでした。
通る処理と通らない処理があります。
517NAME IS NULL:2006/02/24(金) 11:52:57 ID:???
再現性ないなぁ……。
518NAME IS NULL:2006/02/24(金) 11:59:17 ID:3WkN0h5Q
97を2000で開いています。

MDB内にある全クエリ及びビューのSQL文をコマンド一発でテキストに落とすことは可能ですか?
519NAME IS NULL:2006/02/24(金) 12:00:06 ID:???
>>514
詳細がわからないとどうにもならんよ
2002でいくつかプロパティいじってみたけど再現なし
520NAME IS NULL:2006/02/24(金) 12:02:56 ID:???
>>518
コマンド一発は無理。自分でコード書くならquerydefで可。
521NAME IS NULL:2006/02/24(金) 12:11:31 ID:3WkN0h5Q
>>520

コード書かないと無理ですか。。。

クエリ・リストを作って一個一個querydefをかます方法でやってみます。

ありがとうございました。
522520:2006/02/24(金) 12:22:51 ID:???
>>521
こんな感じになる

Sub OUTPUT_ALLQUERY()
Const sFileName = "\コマンド一発でテキストに落とすことは可能.txt"
Dim db As DAO.Database
Dim qrys As QueryDefs
Dim qry As QueryDef

Dim sPath As String
Dim iFno As Integer

sPath = CurrentProject.Path & sFileName
Set db = CurrentDb

Set qrys = db.QueryDefs
iFno = FreeFile
Open sPath For Output As #iFno
For Each qry In qrys
Print #iFno, "■" & qry.name & "■"
Print #iFno, qry.sql
Next
Close #iFno
Set qrys = Nothing
db.Close: Set db = Nothing
End Sub
523NAME IS NULL:2006/02/24(金) 13:19:00 ID:3WkN0h5Q
>>522
わっすごい!
一発ででましたw

コードまで、ありがとうございます。

助かりました。
524514:2006/02/24(金) 13:19:08 ID:???
>>515 さん
>>517 さん
>>519 さん

また、原因を探っていただいた皆さんいろいろお手数おかけしました。
原因が判明しました。

画面に表示するレコードソースのテーブルが内容が
0件の時、発生していました。1件でもあればform_Loadを通るのです。
ヘッダで条件を入力して、その条件に合ったレコードを
抽出し、表示用のテーブルに入れ
(単純な表示ではないのでクエリは使えない、行の特定項目の入力もあるので)
その結果を画面に表示させるとき、前回終了時に抽出後のテーブルを
0件にするとform_loadを通らないようです。(プロパティは更新の許可のみ「はい」)
ですので、前回終了時には1件のダミーデータを残すようにしました。
そして、LOAD時に0件になるように対応しました。(追加の許可を「はい」にすると
無条件で1件入力行が出来てしまうので「はい」では都合が悪いのです。)

単純にForm_Loadは通るとおもっていました。
525NAME IS NULL:2006/02/24(金) 18:48:24 ID:???
Form_Openでいいじゃん……
526NAME IS NULL:2006/02/26(日) 01:07:10 ID:???
単純な質問ですいません。
アクセスのファイルを使うとき、Shift+Enterで内容見れたはずなんですけど、
見れなくなりました。

どうすれば、見れますか?
527NAME IS NULL:2006/02/26(日) 18:10:46 ID:???
>>526
もっと詳しく。

見たいMDBをちゃんと選んでする状態で、Accessが入ってて(関連づけはされ
てるはずという前提)という状態なら、Shift+EnterでAutoexecマクロや起動時の
設定をスキップして開くことが出来ます。
アナタの状況で、どこかひとつでも抜けてるところはないか?
528NAME IS NULL:2006/02/26(日) 19:13:31 ID:???
X-Finderのようなファイラで開こうとしてるってオチじゃないだろうな
529NAME IS NULL:2006/02/26(日) 19:45:59 ID:???
ファイラーは関係ないんじゃない?
起動中にずっとShift押しっぱなしにしとけばいいだけでしょ。
530NAME IS NULL:2006/02/26(日) 22:12:01 ID:???
ちょっと質問させてくださいまし。
今仕事で事務処理のオートメーション化をやってます。
accessの集計クエリが数個あり、それをExcelにエクスポートしています。
あらかじめExcelのマクロの記録で作った表(集計クエリの出力結果に合わせてある)
のVBAコードをaccess側の標準モジュールに貼り付けて、Callで呼び出して、エクスポートから表作成まで
オートメーションするようにしているのですが、レコード数がまれに増減するときがあり、
そのときは表が当然ずれるのですが、この表を動的に作成させるにはどうしたらよいでしょうか?

ちなみにOSはXP
Access2000をしようしております。
エクスポートさせるのはaccessのマクロをDoCmd.でやらせています。
良い知恵があればお貸しください。
あと良いサイト等あれば誘導お願いします。
531NAME IS NULL:2006/02/26(日) 22:16:08 ID:???
VBAできるのか書け
532NAME IS NULL:2006/02/26(日) 22:19:46 ID:???
ちょっと質問させてくださいまし。
今仕事で事務処理のオートメーション化をやってます。
accessの集計クエリが数個あり、それをExcelにエクスポートしています。
あらかじめExcelのマクロの記録で作った表(集計クエリの出力結果に合わせてある)
のVBAコードをaccess側の標準モジュールに貼り付けて、Callで呼び出して、エクスポートから表作成まで
オートメーションするようにしているのですが、レコード数がまれに増減するときがあり、
そのときは表が当然ずれるのですが、この表を動的に作成させるにはどうしたらよいでしょうか?

ちなみにOSはXP
Access2000をしようしております。
エクスポートさせるのはaccessのマクロをDoCmd.でやらせています。
良い知恵があればお貸しください。
あと良いサイト等あれば誘導お願いします。
533NAME IS NULL:2006/02/26(日) 22:21:30 ID:???
>>532
ゴメ
戻る押しちまった・・・
VBAは多少わかります
534NAME IS NULL:2006/02/26(日) 22:25:44 ID:???
>>533
んじゃ、DAO or ADOでその集計クエリ読み込んで、ActiveXでExcel操作しる。以上。
535NAME IS NULL:2006/02/26(日) 23:07:23 ID:???
>>534
レスありです。
DAOやADOは試行錯誤中に試したりしたんですが、
結局Excelで操作ってのがよくわかりません。
マクロの記録で作ったコードを貼り付けるような単純なものではなく、
複雑のコードを書かないといけないということなんでしょうかねぇ・・。

あともう一つ質問なんですが、
accessの「ワークシート変換」みたいに、フィールド名も一緒にエクスポート
させつつ、更にセルを指定するには、どういったコードを書いたらいいんでしょうか?
セルを指定して、同じシート内に複数の集計クエリをエクスポート出来れば
、なんとか動的になりそうなんですけど・・・。
どうか宜しくお願いします。
536NAME IS NULL:2006/02/26(日) 23:12:15 ID:???
>>535
スキルが足りてないのに面倒なことしようってのがそものもの間違いでね?
537NAME IS NULL:2006/02/26(日) 23:26:02 ID:???
>>536
自分でもそう思うんだけど
なんか成り行きでw
実務をわかってない営業に言われるがまま
客先に出向したら、業務が聞いてた話しと違った・・・
試練だと思ってやってる感じ。
元々ネットワークやってたから、今必死でDBとVBA覚えてる
538NAME IS NULL:2006/02/26(日) 23:32:16 ID:???
>>537
確かにそういうことは多々あるな。全く知識ないのにperl書かされたり。
とりあえずコマンド使わない方向で

rs!(index).nameでフィールド名取得
Excelシートオブジェクトのcellやrangeでセル指定

あとはfor eachでぐるぐる回せばなんとかなるだろ。
でもこんな調子じゃキリがないな。
539NAME IS NULL:2006/02/26(日) 23:33:40 ID:???
!いらないな……
540537:2006/02/26(日) 23:49:39 ID:???
>>538
>>539
レスあり!
ちょっとサンプルで今から試してみるわ。
サンクス
541NAME IS NULL:2006/02/27(月) 21:44:57 ID:???
あげ
542NAME IS NULL:2006/02/28(火) 03:05:04 ID:???
>>537
Accessで難しいことしないでさ、Accessからテキスト(カンマ or タブ区切り)に
落として、AccessからExcelを起動してExcelのVBAをRun。
オートメーションにするかShellにするかでその後の処理が違うけど。
それ以上は、説明するのが面倒なので、こんな感じでやりたいって時は他の
人どうぞアドバイスしてやって。気が向けば、オレも書き込むけど。
543NAME IS NULL:2006/02/28(火) 07:04:58 ID:???
Excel操作はExcelスレでな
544NAME IS NULL:2006/03/02(木) 16:37:17 ID:kfbPLJ8I
Access VBA で Excel VBAのモジュールを起動する方法を教えて下さい。

あと、Access VBA で既に存在する空のExcelファイルにクエリを出力することはできますか?

(行いたい作業:クエリの情報をExcelファイルにエクスポートした上で
        Excelファイルを編集する作業をExcel VBAで行いたい)
545NAME IS NULL:2006/03/02(木) 17:23:57 ID:???
>>544
例によってActiveXでExcel操作しる。それプラスDAO or ADOでレコードセット操作。
出力したいExcelファイルがmdbと同じディレクトリにあると仮定して以下サンプル。
Excel 10.0 Object Library
DAO 3.6 Object Library

Sub Exceに出力してマクロも実行するよ()
Const tblName As String = "テーブル名"
Const SheetName As String = "出力したいシート名"
Const xlFileName As String = "出力したいExcelファイル.xls"
Const MacroName As String = "マクロ名"

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlPath As String
Dim iRow As Integer
Dim rs As DAO.Recordset
Dim db As DAO.Database

Set db = CurrentDb
Set rs = db.OpenRecordset(tblName, dbOpenSnapshot)

xlPath = CurrentProject.Path & "\" & xlFileName
Set xlBook = GetObject(xlPath)
Set xlApp = xlBook.Application
Set xlSheet = xlBook.Worksheets(SheetName)

xlBook.Windows(xlBook.Name).Visible = True
xlApp.Visible = False

Do While Not rs.EOF
iRow = iRow + 1
xlSheet.Cells(iRow, 1) = rs!フィールド名
rs.MoveNext
Loop
xlApp.Run xlFileName & "!" & MacroName
xlBook.Save
If xlApp.Workbooks.Count > 1 Then
xlBook.Close
xlApp.Visible = True
Else
xlApp.Quit
End If
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
MsgBox "終わり"
End Sub
546メガ初心者です。:2006/03/04(土) 01:58:46 ID:/BP0CPB6
メガトン級の初心者です。腹がたったら殴ってください。
フォームに検索ボタンを作りたいのですが、どうやればいいですか?
普通のctrl+Fの検索を、ボタンをクリックする事で表示させたいだけです。

殴ってもいいです。
547NAME IS NULL:2006/03/04(土) 02:10:24 ID:???
>>546
コントロールを追加する時にウィザードが自動で起動するように
設定。ボタンつける→ウィザード→検索を選ぶ。
548NAME IS NULL:2006/03/04(土) 09:11:30 ID:tKBiCBtC
教えてください
VBAの変数の値からクエリの抽出条件に入れこみ
選択する方法がありますか?

549NAME IS NULL:2006/03/04(土) 09:40:18 ID:???
>>548
qry.Parameters(PrmName) = i
550NAME IS NULL:2006/03/04(土) 13:48:23 ID:???
>>546
ケツを出せ
551NAME IS NULL:2006/03/05(日) 23:48:32 ID:Yy1VCbcb
Accessで薬剤の在庫管理作ってもらうとしたら
いくらぐらいだろうか?
入/出庫、在庫の確認/レポート、繰越なんかができればいいんですが
552NAME IS NULL:2006/03/05(日) 23:56:35 ID:???
五万〜十五万
553NAME IS NULL:2006/03/06(月) 03:55:12 ID:???
>>552
社内SEだからよくわからんけど、そんな簡単に即答していいもんなのか?
会社の総務部(救急箱の管理)なのか、町の薬局なのか、病院内薬局なのか、医薬品卸業なのか、とか
つまり在庫の量とか点数とか入出庫先がどんななのかとか
それを使うPCは一台だけなのか同じ事務所内で2、3台なのか全国に支店があるのか
下手したら他社のフランチャイズの店鋪の在庫まで管理するのかとか
いろいろなケースがあるような気がするんだけど
554NAME IS NULL:2006/03/06(月) 07:15:11 ID:???
>>553
要望が適当だったら値段も適当になるしかあるまい
555NAME IS NULL:2006/03/06(月) 08:27:19 ID:???
10 万で受けて、ttp://www.vector.co.jp/soft/win95/business/se240803.html
みたいなのをそのまま渡せば、何も作らず約 9 万 9 千円の粗利。
556NAME IS NULL:2006/03/06(月) 18:51:00 ID:???
せめて初期設定くらいはしてやろうぜw
557NAME IS NULL:2006/03/06(月) 23:59:03 ID:???
>>553
簡単に額出すやつって、知ったかな奴か自分がやったことあるぞの
範囲内だから。Accessだって、UIを使いやすいようにって考えながら
作ると、ちょっとしたものだって結構複雑なのに気軽に作ってる奴が
多い。そういう奴らが、低額提示するからな。
558NAME IS NULL:2006/03/07(火) 00:08:19 ID:???
>>551
AccessのVer.1.?ぐらいから10年以上やってる経験者だ。だからって
できる奴って証明にはならんが、ヘタレではないと思う。
最近は、制御系に戻ってC系やってるけど、マジでいいの欲しかった
ら捨てアドにメールしてみそ。
なるべく安く、いいもの作ってあげる。冷やかしじゃないけど、メアドは
怖くて捨てアドしか公表できん。
559NAME IS NULL:2006/03/07(火) 00:56:10 ID:???
で、いくら?
560NAME IS NULL:2006/03/07(火) 07:35:58 ID:???
↑詳しい要望も聞いてないのに金額は出せねぇだろ。
561NAME IS NULL:2006/03/07(火) 23:41:34 ID:???
>>547
有難うございました。
何とか出来ました。

>>550
好きにしてください。


    ∧_∧            
   ( ;   )          
    ( ̄ ̄ ̄ ̄┴-      
     |  (    * )
    /  /   ∧   \    
    / /   / U\   \   
   / / ( ̄)  | |\  ( ̄)   
  / ( ノ  (   | |  \ ノ (
⊂- ┘(    ) └--┘ (    )
     UUUU      UUUU
562NAME IS NULL:2006/03/07(火) 23:44:34 ID:OclRE+xF
ACCESS+SQL ServerでADO開発を行うのですが、お勧め本とか
あったら教えて下さい。
特に、排他制御等のトランザクション制御に関して、詳しい情報を
探しています。
563NAME IS NULL:2006/03/07(火) 23:48:47 ID:???
向こうのスレの質問取り下げなきゃただのマルチだ
564NAME IS NULL:2006/03/08(水) 00:21:44 ID:???
と思ったら他のスレでも更に>>562を見つけた。
どう見てもただのマルチです。本当にありがとうございました。
565NAME IS NULL:2006/03/08(水) 11:25:08 ID:HHnhJJK4
商品データベースを作ろうとしています。

商品には商品コードがあり、いくつかの意味を持った文字列が連結し、ユニークとなっています。
例えばP51360Aという商品コードは、「P」がカテゴリ、「51360」がカテゴリ内の商品IDで、カテゴリをまたぐと重複します。
「A」は商品のバリエーションIDで、無い場合もあります。商品コードを構成するパーツは個別に、別のテーブルとリレーショナル
にしたいと思っていますので、下記のように商品コードを分離して設計してみました。

> カテゴリID, 商品ID, バリエーションID, 商品名, 価格, 〜

カテゴリID〜バリエーションIDまでの組み合わせに主キーを設定し、各フィールド単体では重複ありとしました。バリエーションIDは
ない場合があるものの、主キーとして値要求されるため、空文字許可のうえ、規定値""として誤魔化しました。しかし、
バリエーションIDを一旦登録してから削除する場合、作業者が""と入力しなければならなくなりました。なにか対策ないでしょうか?

別の方法として、商品コードをまとめて1フィールドにし、後から分離して処理、とか、主キーを新たな連番型で設定する、
などを考えて見ましたが、それぞれで行き詰まりました。

上記のようなデータベースを作る際のセオリーなどありましたら教えて頂けないでしょうか。
566NAME IS NULL:2006/03/08(水) 12:23:53 ID:???
行き詰まる理由が分からない
567NAME IS NULL:2006/03/08(水) 13:48:45 ID:???
↑オレもそう思う。

>>565
まさか、作業者って直接テーブル開いてデータ操作してないよな?
フォームだったら、更新前にバリエーションIDがNullだったら""に
するVBAにするだけだろ。
568NAME IS NULL:2006/03/08(水) 15:55:02 ID:???
>>565
余計なお世話かもしれないが、運用中何かの拍子で商品テーブルのバリエーションIDに
""(空文字列)じゃなくて"□"(全角スペース)などを入力されると
見かけ上は""(空文字列)で登録されてるように見えて、しかし伝票テーブルなどから
商品テーブルにJOINしてもレコードが見つからないなど、そういう困った事態に陥る可能性大だぞ、それ。

""(空文字列)の代わりに"-"とか、目に見える文字で代用する仕様を激しく推奨。
569NAME IS NULL:2006/03/08(水) 18:03:17 ID:???
>>565
自分が設計者なら'P51360A'を数値化する

P51360A=Pのコード*100000*X+51360*X+Aのコード (X=バリエーションIDの個数)
570NAME AS 名前:2006/03/08(水) 20:27:28 ID:???
 Win2000Pro 上で Access2003+SQL Server2000 Dev. を使っています。
 本番環境は NT4SVR 上で MSDE2000 を使用します。以下の操作は、
全て前者の開発環境にて行いました。

 既存のテーブル db.dbo.hoge に、docmd.TransferSpreadsheet を使って Excel の
データを取り込もうとしています。とりあえず
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "db.dbo.hoge", "c:\test.xls", true
と実行したら、なんと"db_dbo_hoge"というテーブルを新規に作成してしまいました。

 テーブル名を "hoge" だけにすると、dbo でログインして実行するときちんと既存の
テーブルにinsertしました。
 しかし、別のユーザ(例えば usr) で入って実行すると、今度は usr.hoge というテーブルを
新規作成してしまうのです。

 dbo 以外のユーザが既存のテーブルに Excel のデータをインポートするのに、
良い方法はありませんでしょうか。
571NAME IS NULL:2006/03/08(水) 21:28:39 ID:???
みなさま、ありがとうございます。
行き詰まった、というのは考えに行き詰まったということでした。
根本的な設計に問題がないのかという点でつっこみを入れてもらえればと思ったわけです。
VBAで解決する他なければVBAにしようと思います。
全角スペースの件、なるほどです。ハイフンを入れるのには少し抵抗があります。
ただ、幸いこのIDは、A-Zという単純な仕様ですので、それ以外を排除する仕組みは
テーブル定義のレベルで解決できるのではないでしょうか(まだその方法は知りませんが)。
数値化の件、大変失礼ですが、ネタですか?ちょっと考えただけではネタかどうかも判断できませんでした。
572NullBrain:2006/03/09(木) 12:35:47 ID:vEkg7hwP
現在クエリを使って新旧の住所データマッチングを行っています。
色々調べてみたのですが、以下のマッチング方法が解りません。
識者の皆様ご教授ください。

【DB1】
〒 | 都道府県 | 住所1 | 住所2 | 住所3
【DB2】       ↓
〒 | 都道府県 | 住所

という形でDB1.[住所1]とDB2[住所]のマッチングを行いたいと考えています。
DB2[住所]は、DB1.[住所1]の内容を含んだ内容です。

FROM DB1 RIGHT JOIN DB2 ON (DB1.[住所1] = Like DB2.[住所]) AND (DB1.[住所1]&"*" LIKE DB2.[住所]);
を試してみましたが、肝心な新住所は表示されません。

どなたか、良い方法をご存知でしたら教えてください。
573NAME IS NULL:2006/03/09(木) 17:22:35 ID:???
ON (DB2.[住所] LIKE "*"&DB1.[住所1]&"*" );
こうじゃねぇか??
うまくいくかは試してくれ。
574NAME IS NULL:2006/03/10(金) 00:30:12 ID:???
わざわざFROMにそれを書かなくても良いような気がする。
Oracleなんかだと、Fromにテーブルを羅列して条件はWHEREにまとめたり
とか。条件は、573 が正しい。
575NullBrain:2006/03/10(金) 15:51:11 ID:p2TFlY+C
>>573
>>574
レスおそくなってすいません。
お二人ともありがとうございます。
ご指摘どおり変更し、無事に解決しました。
今後はもうちょっと勉強して、ソースをきれいにかけるようにしてみたいと思います。

本当に助かりました。
ありがとうございます。

576NAME IS NULL:2006/03/10(金) 17:06:26 ID:???
FROM句に文字列結合とか使えると初めて知った
577NAME IS NULL:2006/03/10(金) 22:30:51 ID:???
FROM で絞らないと、直積した表ができてメモリがパンクしたり…しないか。
578NAME IS NULL:2006/03/12(日) 21:28:42 ID:???
テーブルの羅列だけで終わっちゃうと、全組合せだからなぁ。
FROMは、普通の=(LIKEとかじゃなくて)だけにした方が、いいかと。
Accessの場合はだけど。
579NAME IS NULL:2006/03/14(火) 16:41:58 ID:bxZB0Zql
【.  目 的  】 クエリーの結果が莫大なので先頭50件のみ表示とかやりたい
【.  条 件  】 Access2000 WindowsXP DAO3.6
【. 概  要  】 OracleのノリでRowID > 50 とかやったけど怒られますた
580NAME IS NULL:2006/03/14(火) 16:44:59 ID:???
>>579
SELECT TOP 50
581579:2006/03/14(火) 16:48:11 ID:???
>>580
死ぬほど感謝
582570:2006/03/14(火) 18:46:52 ID:???
何とか代替策を見つけました。

[HOWTO] DTS: Excel から SQL Server にデータをインポートする方法
http://support.microsoft.com/default.aspx?scid=kb;ja;321686
 このサイトの 「ADO および Jet プロバイダの使用」 セクションにある
記述のとおりに新しい Connection を Excel に接続して、INSERT INTO の中で
ODBC を使用して SQL Server に接続することで、正しくスキーマを指定して
インポートできるようになりました。
583NAME IS NULL:2006/03/17(金) 12:58:44 ID:???
質問させてください。
VB.NETからACCESSのデータを取得するには以下のコードでできたのですが、
このとき対象となるテーブルに排他ロックをかけたいのですが、
可能なのでしょうか?
SQLSERVERであれば、
select * from テーブル名 with(tablockx,holdlock)
で可能ということはわかりました。
ご教授よろしくお願いします。
Dim oleConn As System.Data.OleDb.OleDbConnection
Dim retTb As New DataTable
Try
'DataBaseに接続する
oleConn = New System.Data.OleDb.OleDbConnection
oleConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
+ "Data Source=" + "@データベースのパス"
oleConn.Open()

'Select文を発行する
Dim selectCommand As System.Data.OleDb.OleDbCommand
selectCommand = New System.Data.OleDb.OleDbCommand
selectCommand.CommandText = "SELECT * FROM " + "テーブル名"
selectCommand.Connection = oleConn

Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
da.SelectCommand = selectCommand
da.Fill(retTb)
584☆質問☆:2006/03/17(金) 15:21:14 ID:9gNDMn+X
AccessのDBからExcelファイルに出力する際、
セルの中にかなりの長文があると、出力後に途中で文字が切れてしまいます。
このような長い文章も最後まで表示させる為にはどうすればよろしいでしょうか。

(ついでに・・・Accessの"テーブル"に長文が入っていて、
"クエリ"を編集する時に、クエリプロパティの「固有の値」が「はい」とすると、
これまた文字が切れてしまいます。固有の値がいいえの時はフルに表示されますが、
これもできれば全部表示させたいのでご存知の方、ご教授願います。)
585NAME IS NULL:2006/03/17(金) 17:04:52 ID:???
586NAME IS NULL:2006/03/21(火) 18:23:10 ID:???
SQLコマンドで規定値を設定する方法ってありますでしょうか?
KITEI TEXT(100) DEFAULT '規定値'
とやってもDEFAULTが構文エラーと出てしまいます。
587586:2006/03/22(水) 02:36:03 ID:???
自己解決しました。
CREATE TABLEで規定値設定は出来ないようなので
テーブルを作ってからALTERで規定値の設定を行うようにしました。
588NAME IS NULL:2006/03/22(水) 21:03:47 ID:???
>587
CREATE TABLE A
(
B NVARCHAR(20) CONSTRAINT NULLPO DEFAULT('NULLPO')
)
589NAME IS NULL:2006/03/23(木) 00:48:28 ID:???
>>588
Access2000のヘルプでは、CONSTRAINT句にDEFAULTってないんだけど。
ALTERにも既定値の設定はないのだが・・・。何を見ればわかりますか?
自分がやるとしたらSQLじゃなくて、tabledef/Fielddefを使ってやっちゃいま
すが。
590NAME IS NULL:2006/03/26(日) 22:37:46 ID:???
accessって便利なのかそうでないのか良くわからんな(1年程度しか使ってないけど)
ファイルメーカーとか桐とか併用しているひと居る?

作業効率とか知りたいな・・・なんて
591NAME IS NULL:2006/03/27(月) 01:17:44 ID:JJCCFccY
ADO使ってフィールドが空のレコードを抽出したいんですが
SQLどう書けばいいですか? フィールドは日付型です。

Set rs = New ADODB.Recordset
rs.Open "SELECT 日付 FROM テーブル WHERE ???"
592NAME IS NULL:2006/03/27(月) 01:40:51 ID:???
>>591
日付 Is Null
593NAME IS NULL:2006/03/27(月) 02:39:31 ID:JJCCFccY
>>592
ありがとうございました。
WHERE 日付 = Nullでやってだめだったんで試してなかったです。
何が違うのかなぁ。
594NAME IS NULL:2006/03/27(月) 08:21:00 ID:PpwYy0Q6
さぁー回ってきましたっ!
この文を3〜10ヵ所に貼り付け、回してくださいw
これをやった貴方は絶対に夢や学校一のモテ仔に
なりますw
やんなかったら不幸が突撃します
もうココまで読んでしまった人は最低3ヵ所は回さないと絶対不幸が100%突撃して死亡するでしょう
この画像は最低3ヵ所回してから見てください
こちら
3〜10ヵ所って事は3箇所以上だったらなんでもいんですよっ!
やればやるほどし・あ・わ・せ!
これやった人は実際に
両思いになれたり、
学校一のモテ仔になれたり、
夢が叶ったり
欲しい物が手に入ったり。
一気に幸せが手に入ります
だから移せば移すほどお得!
成功した人の名前↓
山田三春
中野 純
その他にもたっくさん叶った人が居ます
だから回してね失敗した人なんて居ません
595592:2006/03/27(月) 08:58:57 ID:???
>>593
試す試さないの範疇ではないっすよ。そういう決まり事なので、
よくヘルプを読みましょう。
596NAME IS NULL:2006/03/27(月) 13:33:42 ID:JJCCFccY
>>595
WHERE 日付 = #3/27#とか書いてもOKなのでいいのかなと...
これからはきちんと Is使います。ありがとうございました。
597NAME IS NULL:2006/03/27(月) 19:47:35 ID:???
WHERE 日付 Is #3/27#
598NAME IS NULL:2006/03/27(月) 21:50:52 ID:???
>>597
ははは。
そういう意味でもないんだけどな。
>>596
間違わないようにな。
599NAME IS NULL:2006/03/28(火) 09:45:38 ID:???
>586
クエリを使うとヘルプにあるものしか使えないけど、ADO を使って流し込むと
DEFAULT だろうと ON UPDATE/DELETE CASCADE/SET NULL だろうと流し込める。
600NAME IS NULL:2006/03/29(水) 22:00:17 ID:dUAdN6tL
CygwinのperlでWin32::ODBCを通してmdbファイルへアクセスしているのですが、
中身がsjisらしく use encoding 'cp932' しないと文字が化けてしまいます。
検索すると、SQLで set character set を使うと正しく読み込めるとあるのですが、
直りそうにありません。
どうすればよいのでしょうか?。

LDAPを併用したいので、use encoding 'utf8' で通るのが、望ましいと思っております。

現在は use encoding を使わずに、LDAPのデータに Encode::decode('utf8',ほげ)、
ODBCのデータに Encode::decode('cp932',ほげほげ) としております。
601NAME IS NULL:2006/04/03(月) 22:17:38 ID:Ebobik3g
Win4.0NT上で、Access97で作成したんですが
フォームの追加や編集をWinXP上のAccess97でやってると
(多分20回ぐらい、日付にして2日間くらい)
そのデーターベースの起動時にエラーで開けなくなってしまいます。(NT・XPとも)
修復を実行してもなおらず、調べていくと開けなくなったフォームがありました。
そのフォームの編集・削除もエラーではじかれます。

仕方ないので、エラーになった後は、そこから必要なテーブルを動いているデーターベースに
コピpして逃げていますが。。。原因って何?
602601:2006/04/03(月) 22:24:39 ID:???
間違い  フォームの追加
正しくは フィールドの追加
603NAME IS NULL:2006/04/04(火) 02:06:23 ID:???
>>601
コピペってオブジェクトをコピペしてるのか?・・・なぜインポートじゃないの?
壊れてるフォームもか?・・・その場合は、壊れてるフォームはコピペせずに
新しく作る。まっさらなフォームにコントロール類をコピペでいいと思うが、そ
れでも壊れてしまうなら0から作り直しだな。
原因は、他の人が説明してくれるのを待つか自分でMSの技術情報を調べな
さい。壊れる要因は、これだけあるよってのは見つけられても、アナタのMDB
がどの原因で壊れたのかは断定できんぞ。たぶん。推測なら可能だが。
604NAME IS NULL:2006/04/04(火) 08:46:53 ID:???
チャチなCPUしかもたないPCとリッチなPCで編集合戦をすると、
チャチなPCのldb生成が間に合わずリッチなPCがチャチなPCを無視する形で
ガンガントランザクションを走らせてmdbを壊すことがあるらしいぞ。
605601:2006/04/05(水) 20:36:41 ID:???
ども。
606NAME IS NULL:2006/04/05(水) 22:32:14 ID:???
エクセルで契約書のテンプレを作って、
アクセスのDBから契約者の名前や住所を取ってきて印刷したいんですが
(ワードの差込印刷みたいなことがやりたい)
できますか?
607NAME IS NULL:2006/04/05(水) 22:39:49 ID:???
データ - 外部データの取り込み
608NAME IS NULL:2006/04/05(水) 22:43:17 ID:???
もしくはAccessからExcel操作してセルの値変更。
そしてどちらもExcelスレで聞くべき領域。
609NAME IS NULL:2006/04/05(水) 22:54:12 ID:???
>>607-608
すみません。そしてありがとうございます。
610NAME IS NULL:2006/04/06(木) 01:45:43 ID:???
全部Accessのレポートでやってしまおうとは思いませんかそんなにExcelがつかいたいですかそうですか本当にありがとうございました
611NAME IS NULL:2006/04/06(木) 12:26:36 ID:???
>>610
そりゃExcelのほうが35倍ぐらい楽だ。
612NAME IS NULL:2006/04/06(木) 20:03:01 ID:???
個別のファイルとして保存したいとか先方に送付したいとか
いろいろあるんじゃないの?
613NAME IS NULL:2006/04/06(木) 20:35:05 ID:???
ユーザーがテンプレいじれるって利点もあるお
614NAME IS NULL:2006/04/06(木) 23:41:13 ID:???
>613
弄った結果ぐだぐだになって後始末をさせられる事もあるんだよな。
615NAME IS NULL:2006/04/07(金) 02:48:28 ID:???
テンプレいじらすのはマズイだろう……
ユーザーの意向を元に開発側で変更かけるべきかと
616NAME IS NULL:2006/04/07(金) 07:44:01 ID:???
レポート作るの面倒なとき、エクセルとかで作ったものを貼り付けて
必要なところだけテキストボックスを配置するって言うのは邪道?
617NAME IS NULL:2006/04/07(金) 19:00:41 ID:???
うん
618Nz(NAME,'名無し'):2006/04/09(日) 12:29:20 ID:Ox/++nFx
昔作った自作の顧客管理を変更してみてるんですけどイマイチ操作とか忘れぎみで困ってますw

まあ、ボチボチ思い出しながらやってて行き詰った部分が
CSVでデータ出力する為にエクスポートの定義ファイルを使って吐いている部分で
変更に伴ってエクスポートの定義ファイルも変更したいのですが
以前保存してあるエクスポートの書式って変更できないのでしたっけ??
CSV側はいいとして固定長のも1本あるので面倒すぎます
また最初から作り直すしかないのでしょうか?

うろ覚えだと、なにかテーブル定義みたいな画面で直せた記憶があるのですが
見当たらないので質問させて頂きました、ご存知の方よろしくお願い致します
619618:2006/04/09(日) 12:31:47 ID:Ox/++nFx
おっと、因みに MS-Access2000 です
620NAME IS NULL:2006/04/09(日) 17:49:34 ID:???
>>618
手動でやってみなよ。その時に定義を選択できるでしょ。
そこで追加するし、変更するし、削除もするし。
621NAME IS NULL:2006/04/11(火) 00:02:27 ID:0yl7t/Vm
>>620
おっしゃる通り手動でやるときに保存していたものを呼び出して変更できました
ありがとうございました
622NAME IS NULL:2006/04/13(木) 19:48:54 ID:Wy9PPYcg
すみませんAccess勉強中なのですがどうしてもわかりません。

クラスモジュール=何かに関連付けられた限られたモジュール
ってことはわかったのですが、、、

例えばクラスモジュール「cls例1」というものを作って
フォーム「F例1」の「開くときイベントプロシージャ」に
「Call cls例1」と書けば呼び出せるってことですか?
623NAME IS NULL:2006/04/13(木) 23:30:38 ID:???
ためせばわかることではありませんかわかりませんかためせませんか
624NAME IS NULL:2006/04/14(金) 00:24:54 ID:???
>>622
まぁ、VBAごときでクラスモジュールなんて使うな。
これで悩まなくて済むだろ。マジで使わなくても結構な
システム作れるって。
625622:2006/04/14(金) 01:48:29 ID:???
>>623
試したらうまく動かなかったのです;;
いや読み込めてるのだと思うのですが、何かがおかしいみたいです。
なので考え方があってるのか質問してみました、ごめんなさい。

>>624
と、ある機能を実現したくて調べていたら
ぴったりのモジュールを公開していらっしゃるページがあったので
使ってみました。
でも、知識不足でうまく動きません;;
きっと基本的なことがわかってないのだと思います((。´Д⊂)

ここに、そのコード書いたらまずいですよね?やっぱり・・・。
626NAME IS NULL:2006/04/14(金) 07:15:12 ID:???
お前の脳味噌が不味い
627NAME IS NULL:2006/04/14(金) 08:56:27 ID:???
公開してあるページにサンプルコードはないの?
628624:2006/04/14(金) 09:14:10 ID:???
>>625
単なるコピペじゃなぁ〜。で、それだって、中身が少しは理解できれば
クラス使わなくてもできるぐらいはわかると思うぞ。
オレも激しくそのサンプルに興味ある。
629NAME IS NULL:2006/04/14(金) 09:36:12 ID:???
そのサイトのURL貼ればいいんでね?
630622:2006/04/15(土) 16:33:02 ID:???
サンプルコードも使い方も書いてあるのですが、知識があれなので
理解できないんです;;

もう勇気を出して貼っちゃおう
このページの↓
ttp://penhagi.com/access/tips/25_holyday.htm
これです↓
ttp://penhagi.com/access/exe/cls_kyujitu.txt

どなたかご教授いただければ・・・・幸いです・・。
631622:2006/04/15(土) 16:40:08 ID:???
上のモジュールを使ってやりたいことは

環境:Access2000
[フォームA]の中の任意の[サブフォームB]にある
非連結オブジェクトの[テキストボックスA]の値を参照して、
同じく[サブフォームB]にある[テキストボックスB]に休日名、日曜日を取得したいです。
632NAME IS NULL:2006/04/16(日) 21:29:50 ID:???
質問です。
クエリで最頻値を集計したいのです。

テーブルT、フィールドがF1,F2で、
F1 F2
東京 A
神奈川 A
神奈川 A
というテーブルTがあるとして、グループAのF1の最頻値は神奈川ということで、
F1の最頻値 F2
神奈川 A
という結果を得たいのです。

SELECT Count(T.F1) AS F1のカウント, T.F1, T.F2 FROM T GROUP BY T.F1, T.F2;
というクエリをつくって東京Aと神奈川Aのカウントを求めても、そこから神奈川Aという結果を出せません。

どなたかいい方法をご存知のかた、お教え下さいませ。
633NAME IS NULL:2006/04/16(日) 21:39:32 ID:???
>>632
神奈川 B ってのがあるのか?
F2の意味がわからんだろうに。それと、1件だけ取り出したいのか?

634NAME IS NULL:2006/04/16(日) 21:42:24 ID:???
俺もF2の存在意義が分からないが、Countで並べ替えてTOP1でいいじゃん。
635632:2006/04/16(日) 21:52:37 ID:???
F2はグループ化して、
神奈川 A
神奈川 B
北海道 C
というように、AについてF1の最頻値、BについてF1の最頻値、CについてF1の最頻値というように集計したいのです。
636632:2006/04/16(日) 22:16:34 ID:???
SELECT Max(T.F1) AS F1の先頭, T.F2 FROM T GROUP BY T.F2
要は、上のクエリでMaxをModeで置き換えたクエリにしたいのです。
実際は、Modeがないのでできないのですが。

SELECT Q.F1, Q.F2, Max(Q.F1のカウント) AS F1のカウントの最大 FROM Q GROUP BY Q.F2
632のクエリをQとして、こんなクエリをつくってもエラーになってしまいます。

SELECT T.F1, T.F2, Count(T.F1) AS F1のカウント FROM T GROUP BY T.F1, T.F2 ORDER BY Count(T.F1) DESC
SELECT First(Q.F1) AS F1の先頭, Q.F2 FROM Q GROUP BY Q.F2
634見てこんな感じにしてみたけど、なんか違う…。
637NAME IS NULL:2006/04/16(日) 22:22:21 ID:???
頭の悪いSQL書けて自分で大笑いしたのでお前らも見てくれ。
F1だのF2だのTだの名前付けが分かり辛すぎるので、県名,好きな動物,テーブル名に変更。

SELECT *
FROM
(
SELECT TOP 1 好きな動物,県名
FROM テーブル名
WHERE 好きな動物="ウサギさん"
GROUP BY 好きな動物,県名
ORDER BY Count(*) DESC
) AS tmpウサギ

UNION

SELECT *
FROM
(
SELECT TOP 1 好きな動物,県名
FROM テーブル名
WHERE 好きな動物="キリンさん"
GROUP BY 好きな動物,県名
ORDER BY Count(*) DESC
) AS tmpキリン

UNION

SELECT *
FROM
(
SELECT TOP 1 好きな動物,県名
FROM テーブル名
WHERE 好きな動物="パンダさん"
GROUP BY 好きな動物,県名
ORDER BY Count(*) DESC
) AS tmpパンダ
638632:2006/04/16(日) 22:49:45 ID:???
636の
SELECT T.F1, T.F2, Count(T.F1) AS F1のカウント FROM T GROUP BY T.F1, T.F2 ORDER BY Count(T.F1) DESC
を、INTO文つけてテーブル作成クエリにして、そのテーブルをもとにその次のクエリを使ったらうまくいったっぽい。
当面はこれで行ってみます。

実際はこんな感じ。
SELECT T.F1, T.F2, Count(T.F1) AS F1のカウント INTO X FROM T GROUP BY T.F1, T.F2 ORDER BY Count(T.F1) DESC;
SELECT First(X.F1) AS F1の先頭, X.F2 FROM X GROUP BY X.F2;

並べ替えたクエリの先頭を集計しようとしてもうまくいかないのかな。テーブルにしないと。

ユニオンクエリは、Cまでならまだしも、Zまで増えたら苦しいかな。
あと、SELECTにTOP nなんてかけるんですね。知らなかったです。

ありがとうございました。
639NAME IS NULL:2006/04/18(火) 07:49:41 ID:CO80qcqI
クエリで解決すべきことなのか不明なのですが、教えて下さい。

ID 名前 親ID
000 太郎 000
001 一郎 000
002 次郎 000
003 三郎 001

上記テーブルがあったとして、各レコード(人)は親が誰かというデータを持っています。
ここで、最初の人「000 太郎」から見ると、3人の子孫がいることが分かります。
ここで、「一郎側は1世代」「次郎側は2世代」という風に、自分の子供別に何世代まで
存在するかと調べたいのですが、こういうのは、どうやれば良いのでしょうか?
何かヒントだけでも頂けるとありがたいのですが。
640NAME IS NULL:2006/04/18(火) 08:59:59 ID:???
>>639
世代を示すフィールドがなきゃ無理。
まさか、IDが兼用じゃないだろ。
641NAME IS NULL:2006/04/18(火) 09:04:54 ID:???
一応、↓のような感じで無理矢理求めることは可能。
ただし、例は親が存在しない場合はID入れずにNullの場合。

SELECT tmp1st.ID,tmp1st.NAME,
IIF(IsNull(tmp2nd.ID),"第一世代のみ",
  IIF(IsNull(tmp3rd.ID),"第二世代",
    IIF(IsNull(tmp4th.ID),"第三世代",
      IIF(IsNull(tmp5th.ID),"第四世代","第五世代")
      )
    )
  )
FROM
(
  (
    (
      (
        tbl世代 AS tmp1st LEFT JOIN tbl世代 AS tmp2nd ON tmp1st.PARENTID=tmp2nd.ID
      )
      LEFT JOIN tbl世代 AS tmp3rd ON tmp2nd.PARENTID=tmp3rd.ID
    )
    LEFT JOIN tbl世代 AS tmp4th ON tmp3rd.PARENTID=tmp4th.ID
  )
  LEFT JOIN tbl世代 AS tmp5th ON tmp4th.PARENTID=tmp5th.ID
)


ただし、設計を見直した方が良いような気がしないでもない。
642NAME IS NULL:2006/04/18(火) 13:40:40 ID:???
工程管理の為にDBを作ろうと思うのですが、
指定した期間をカレンダー表示するのにみなさんはどのようにされてますか?
また、どのようにしたら良いでしょう?
テーブル、クエリ、マクロは理解できますが、VBAはわかりません。
よろしくお願いします
643NAME IS NULL:2006/04/18(火) 14:26:39 ID:???
まず具体的に説明する能力身につける
644NAME IS NULL:2006/04/18(火) 18:04:30 ID:???
>>643
すみません。あまり長くなるのも如何なものかと思い。。。

今はエクセルの表で使って
1日 2日 3日 4日 5日 6日 7日 8日
← 作業A →← 作業B →  ・納品

て、感じで作ってたのですが、どうしてもDB化したくなったのですが、
access上で同じように日にちの経過と作業内容を数字以外で表示したかったのです。

開始年月日と終了年月日いれて
開始日時から終了日時に「>」をいれて、それの中間に任意のテキストを代入
開始と終了が同じ場合は「・テキスト」
これを仮テーブル(?)で表示出来ないかと考えたのです。

どなたかいい知恵を下さい
645NAME IS NULL:2006/04/18(火) 20:46:41 ID:???
>VBAはわかりません

じゃ、出来ないってことで。
646NAME IS NULL:2006/04/18(火) 22:30:19 ID:???
>>630

同じページの上の方に、クラスモジュールじゃないふつうの
ユーザー定義関数版もあるみたいだけど。
クラスに慣れるまでは、そっちを使った方がいいんじゃない?

テキストボックスのコントロールソースに「=休日(日付式)」と
記述すれば済む。

=休日(Me![テキストボックスA])

みたいな。
647NAME IS NULL:2006/04/19(水) 13:29:15 ID:???
質問です。


テーブル[M_Foo]

ID(String型)  Name(String型)  Price(通貨型)
─────────────────────
101  あああ  <Null>
A01  いいい  100
201  ううう  <Null>
B02  えええ  201


というテーブルがあり、それを加工したクエリ


クエリ[Q_Foo_Base]
SELECT ID, Name, Cstr(Price) AS 親ID


があります。
それらを基に新たな選択クエリを作成したいのです。

ID Name 親ID 親Name
─────────────────────
101  あああ  <Null>  <Null>
A01  いいい  100  あああ
201  ううう  <Null>  <Null>
B01  えええ  201  ううう

という結果を取得したく

クエリ[Q_Foo]
SELECT [Q_Foo_Base].[ID], [Q_Foo_Base].[Name], [Q_Foo_Base].[親ID], [M_Foo].[Name] AS 親Name
FROM Q_Foo_Base LEFT JOIN M_Foo ON [Q_Foo_Base].[ID] = [M_Foo].[ID]


とやってみても 「 [!] 結合式がサポートされていません。」という
メッセージボックスが表示されて結果を取得できません。

LEFT JOIN でなければエラーはでないのですが、本来取得されるべきレコードが
取得できません。


そもそも、通貨型のフィールドを無理やり流用しているので無茶なのかもしれませんが・・・。
業務上、新たなフィールドを作成したり、新たなテーブルを作成することはできるだけ
避けたいのです。
このような無茶な再帰はダメなのでしょうか?
648NAME IS NULL:2006/04/19(水) 16:54:13 ID:???
とりあえずカキコの通りにやったら結合式が(ryにはならず、こうなった。

IDName親ID親Name
101あああ#エラーあああ
201ううう#エラーううう
A01いいい100いいい
B02えええ201えええ


質問の内容はID=101とPrice=100がJOINしてたり、PriceとIDではなく
IDとIDをJOINさせたりしてる部分があからさまにコピペミスっぽい。
落ち着いて再質問のこと。
649647:2006/04/19(水) 17:17:38 ID:???
>>648

すみません、まちがえてました。


基になるテーブルは

テーブル[M_Foo]

ID(String型)  Name(String型)  Price(通貨型)
─────────────────────
101  あああ  <Null>
A01  いいい  101
201  ううう  <Null>
B02  えええ  201


です。


で、取得したいクエリ式は

クエリ[Q_Foo]
SELECT [Q_Foo_Base].[ID], [Q_Foo_Base].[Name], [Q_Foo_Base].[親ID], [M_Foo].[Name] AS 親Name
FROM Q_Foo_Base LEFT JOIN M_Foo ON [Q_Foo_Base].[親ID] = [M_Foo].[ID]


でした。



コピペできない、別のPCからカキコしてたので・・・
苦しい言い訳スマソ。
650647:2006/04/19(水) 17:37:07 ID:???
> 基になるテーブルは
>
> テーブル[M_Foo]
>
> ID(String型)  Name(String型)  Price(通貨型)
> ─────────────────────
> 101  あああ  <Null>
> A01  いいい  101
> 201  ううう  <Null>
> B02  えええ  201


<Null>ではCstr関数でエラーになりますよねw
実データには既定値0が入っているので気づきませんでしたorz

で、
テーブル[M_Foo]

ID(String型)  Name(String型)  Price(通貨型)
─────────────────────
101  あああ  0
A01  いいい  101
201  ううう  0
B02  えええ  201

で試してみると
ID Name 親ID 親Name
─────────────────────
101  あああ  0  <Null>
A01  いいい  100  あああ
201  ううう  0  <Null>
B01  えええ  201  ううう

と、取得したかったデータが取得できてしまい、例のエラーが
再現しませんでした。

でも、実テーブルでやるとエラ(ry


もうちょっと自分でも調査します。
651647:2006/04/19(水) 18:19:03 ID:???
連投スマソ。

例示したデータと実データで結果が異なる原因らしきものに気づきました。

Access2000を使用していますが、
・例ではmdbファイルのローカルテーブル
・実データはSQLServer2000のテーブルのODBCリンクテーブル
です。


Cstr関数を使用してデータ型の変換を行っているからなのかな・・・
SQLServerでCASTやCONVERT関数でデータ型の変換を行うのとは
少々違うからなぁ・・・


結局ここで時間を食うわけにもいかないので、フィールドを追加して
今回は回避しようと思います。
652NAME IS NULL:2006/04/19(水) 23:12:10 ID:???
>651
一言だけ言わせてもらえば、そう言うデータ変換が必要になる
要件って何?
653NAME IS NULL:2006/04/20(木) 01:56:56 ID:???
まぁ、設計からミスってるんだよ。
654622:2006/04/20(木) 02:22:35 ID:???
>>646
ぉぉ!!アドバイスが!!!ありがとうございます。
もう誰も教えてくれないものだとあきらめておりました。

でですね、関数のほうも試してみたのですがうまく動かず「?Noname」に
なっちゃうんですよね・・・・
>>646さんの=休日(Me![テキストボックスA]) もやってみたのですが、
(新規でちょーシンプルなdb作ってやってみました)
やっぱりノーネーム・・・・、ちょっと別パソでやったので詳細は後で
ご報告します。きっと私が馬鹿なのですが・・・・あ、でもオブジェクトの
名前間違えてるとかではないですよ!

お返事ありがとうございます!!
655NAME IS NULL:2006/04/20(木) 09:02:39 ID:???
> きっと私が馬鹿なのですが
そうだよ。
656NAME IS NULL:2006/04/20(木) 09:11:46 ID:???
> きっと私が馬鹿なのですが
不具合起きる理由の9割がこれだよな
657647:2006/04/20(木) 15:27:51 ID:???
>>653

ちげーよ!!
ウチが開発して売ってるパッケージシステムを、ある顧客が使用していないフィールドを流用したいと
言い出したんだよ。
わざわざその1顧客の為にテーブルの構造を変更するのもイヤだったんで。

ま、べつにわかってくれなくてもいいけど。
658白馬の玉子 ◆PqSzNbkqDo :2006/04/20(木) 16:13:29 ID:???
>>657

CStr() はVBAで、SQLではないことを念頭に置く。AccessというDB用クライアントUIプログラム側の付加関数。よって、ある意味、例外的存在。
で、例がMDB=クライアントDBで、
実際のDBはサーバ側のSQLServerで、
その操作やテストが実はクライアントUIのAccess+ODBC+SQLServerって、
最終目標がどれなのか全然はっきりしてねーじゃんか!
どれやねん!っとかなり激しくツッこまれると思うんだが。
この3つのパターン、それぞれで、結果もエラーも異なることが多々あるのだが、知ってるのか?
Null値を考慮するなら、VBAとしてはNz()もかますことが必須。
ODBCがエラー起こすなら、MDACのバージョンが古い可能性あり。
Jet4.0SPも最新版をあてること。
というか、ODBCを利用している理由が不明瞭。
ODBCっつーのは、もう、過去の遺物と考えるべき。
実際には非同期だし、ドライバによっては使用できないSQLステートメント多々あるし。
「CASTやCONVERT関数でデータ型の変換」が理解できるなら、
EnterpriseManagerとクエリアナライザを使用するか、
AccessをADPプロジェクトでOLEプロバイダ経由でSQLServerに接続して(これも不安定だけどODBCよりは良い)、
Viewを新規作成してしまったほうが、速攻で希望のレコードを取得できるのではないか?
View上で、STR()やRTRIM()やIsNull()を応用すれば、すぐ作れると思うが。
結局、その顧客用のViewを用意するだけだよな、SQLServer用に。
で、その顧客のDBだけにそのViewのスクリプトを流せばインプリメント終了だよな。
クライアントUIであるAccess側にQueryを必死になって例を作成している理由がわからん・・・・。
最終目標はSQLServerなのに、試作やテストがMDBって、その時点でもうね、
「きっと私が馬鹿なのですが 」に激しく同意できるよ。

最後に・・・
「ま、べつにわかってくれなくてもいいけど。 」って言うなら、
最初から質問しないほうがよいとおもうが???

「わざわざその1顧客の為にテーブルの構造を変更するのもイヤだったんで。」
普通のパッケージソフト屋なら、
そんな受注自体、受けない。受けた時点で、パッケージじゃないし。
それ受注した時点で、カスタムパッケージだし。

っつーかID値がString(Varchar???)ってだけで、
そのパッケージソフトのレベルが(ry・・・
どうぜ、Access97くらいのソフトをSQL2000にアップサイズしたんだろうな。
659NAME IS NULL:2006/04/20(木) 17:11:15 ID:???
>>658
>オススメの近親相姦スカトロホモビデオありませんか?><

まで読んだ
660647:2006/04/20(木) 18:54:51 ID:???
>>658
データ加工用サブツールをmdbで作ってあげてるだけさ。
メインがmdb + ODBC + SQLServer てなワケじゃないし。

おめーの知ってる世界がどの程度のものか知らないが、えらそうに。
世の中には色んな業種があってその業務内容に併せたシステムが必要だろーよ。

既存の業務内容と共存してシステムを導入していくにあたり、おめーでは
理解できねーよーなことも当たり前にやんなきゃなんねーこともあるんだよ。
661NAME IS NULL:2006/04/20(木) 19:12:02 ID:???
いい加減大人げないスレ汚しは止めてくれないか?
662NAME IS NULL:2006/04/20(木) 20:26:56 ID:???
これは酷い
663白馬の玉子 ◆PqSzNbkqDo :2006/04/20(木) 22:24:13 ID:???
ありゃま。
ごめんなさい。
おいら、ちょっと調子にのっちゃったよ。

ごめんね >>647さん

おいら、こどもなので、647さんのようなおとなの事情は理解できませんでした・・・。

これからはもっと、ふいんき(←なぜか変換できない)を読むようにします!

しばらく、黙りますね。

ほんとにごめんなさい、みなさま。


追伸:

>>659さんへ

こどもなので、巣か吐露の魅力も快楽も理解できません。
ごめんなさい。
664NAME IS NULL:2006/04/20(木) 22:46:35 ID:???
>>663
いい加減大人げないスレ汚しは止めてくれないか?
665NAME IS NULL:2006/04/21(金) 00:08:59 ID:???
>>647 は、人にもの聞く態度じゃないし、どうでもいいんじゃない。
設計=DB構造だけじゃなくてさ、アンタの考え方がずれてんだって。
サブツールなんてオマケなら、テーブルやフィールド作りたくない
なんて言わんと、作りゃいいじゃん。

オレは、悪態ついてる、オメーの方がわからんし、そこまで偉そう
に突っ張るなら2chで質問なんかしないで、自分で解決しろや。
666白馬の玉子 ◆PqSzNbkqDo :2006/04/21(金) 01:10:49 ID:???
>>664

ふ〜ん、だから、>659 のような「おとなの書き込み」が許されるのか・・・・。
667NAME IS NULL:2006/04/21(金) 07:13:29 ID:???
>>665
いい加減大人げないスレ汚しは止めてくれないか?
668NAME IS NULL:2006/04/21(金) 08:40:15 ID:???
>しばらく、黙りますね。

白痴の王子は数時間前の自分の書き込みすら忘れる知障
669白馬の玉子 ◆PqSzNbkqDo :2006/04/21(金) 15:04:24 ID:???
>>668

あ、吊れた・・・。
670NAME IS NULL:2006/04/21(金) 15:35:53 ID:???
いい加減大人げないスレ汚しは止めてくれないか?
671646:2006/04/21(金) 21:54:33 ID:???
>>654
> 関数のほうも試してみたのですがうまく動かず「?Noname」に

「#Name?」のことかな?
じゃ、「Me!」が悪いのかもしれないので、付けずに「=休日([テキストボックスA])」
だけで試してみてください。
672NAME IS NULL:2006/04/22(土) 00:48:16 ID:???
>>671
そこまで優しくするか。
どこが悪いのかも調べず、ただ報告しクレクレするだけ。
放置すれば。
673NAME IS NULL:2006/04/22(土) 14:29:01 ID:???
初めてクラスモジュール作ってみたんだが、private宣言した変数や定数も
ウォッチ式で見れるんだな。プロパティに設定していないから値の取得は
できないけど、なんか恥ずかしいな。
674NAME IS NULL:2006/04/25(火) 00:03:11 ID:???
Postgres(LINUX OS)のデータベースに、ACCSESS上のテーブルをエクスポートを使って
転送しようと考えたのですが、Public以外のスキーマにテーブルを転送することが出来ません。
つまり、テーブルのエクスポート先として、スキマー,テーブル名をAccsessが許してくれないのです。
何か、上手い回避方法は無いでしょうか?
まあ、一旦Publicに転送して、そのPublicから各スキマー転送する事は、考えられるのですが、
そのスキマーの所有者に、パブリックを覗く権限をあたえたく無いものですから。
675NAME IS NULL:2006/04/27(木) 16:36:50 ID:QDBK4Lkv
質問なんですが

DBから任意の日付基準でデータを
抽出したい場合、クエリーならば日付の記入されている
データに対し、
>=[抽出範囲開始] And <[抽出範囲終了]
とすることでポップアップで範囲を聞いてきますが、
このような動作をする機能をほかの方法で作るとしたら
どのようにしますか?

この答えわかりますか?よろしくお願いします。
676NAME IS NULL:2006/04/27(木) 19:11:25 ID:???
すきにしろ。
677NAME IS NULL:2006/04/27(木) 19:54:16 ID:???
質問が抽象的すぎてもうね。自分でも何を求めているか分かってないじゃん。
678NAME IS NULL:2006/04/28(金) 01:32:29 ID:kPwkAuXq
質問です。
上司からAccess勉強しろと言われたんですが、
Excelでもデータベース的な事は出来るみたいですし、
Accessを使う利点ってどういうものなのでしょうか?

Excelでも、VBAとかでDB出来るのでは無いでしょうか?よく分らんのですが。
本屋で教本をチラ見したら、ExcelでDBどうたら書いてあったもので。
679NAME IS NULL:2006/04/28(金) 01:39:36 ID:???
Excelの使い方もしらねーの?
680NAME IS NULL:2006/04/28(金) 07:25:23 ID:???
>>678
Excelのシートにゃインデックス機能ないから低速。
実装もめんどい。わざわざ苦労したい人にマジオススメな方法。
そして賢い人間はAccessではなく桐を使う。
681NAME IS NULL:2006/04/28(金) 17:13:13 ID:???
確かに桐は使いやすいけど、今更桐って感じだな。
妥協してアクセスか、PHP+RDBでしょ。
682678:2006/04/28(金) 23:56:19 ID:???
雛形とか有って便利そうだが、桐スレの方は過疎ってる様だし、
わざわざ苦労したく無いから、ACCESSを勉強するよ。
>>679,680,681 THX!
683NAME IS NULL:2006/04/29(土) 00:22:00 ID:???
なぜ過疎っているのか
それは質問が生じないほど完成度の高いソフトだから
684NAME IS NULL:2006/04/29(土) 11:25:31 ID:???
>>675
そういう範囲指定にはBetweenを使え(>= <= になるけどな)。
自分でポップアップのようなフォームを作る。クエリはパラメータクエリ。
後は、自分で勉強する。抽象的な質問に、抽象的な回答で。
685NAME IS NULL:2006/04/30(日) 10:49:24 ID:???
単純に新規ユーザが居ないからでしょ。
完成度が低くても、もうそう言う物だと我慢してるユーザしか生き残ってないってことだ。
2007年問題で一気にユーザ減ると思う。
686NAME IS NULL:2006/04/30(日) 12:37:20 ID:???
無知は語る
687NAME IS NULL:2006/04/30(日) 18:20:28 ID:???
産業用機械が人間の代わりに食糧や生活必需品を全て生産し、輸送することが
できるようになったら、人間は働かなくても生きていけるようになる。

そうしたら通貨を廃止することはできるよね。

○wiki
http://wiki.livedoor.jp/tuuka_haisi/d/FrontPage
○通貨廃止に必要なプログラム・技術資料等の配布サイト
http://tuuka-haisi.hp.infoseek.co.jp/

誰か身近にいるプログラムできる人間にやらせたらいいし。

※この文章を他の板にコピペすれば良いことが起こります。
688NAME IS NULL:2006/04/30(日) 18:35:50 ID:???
>>687
永久機関がないと_


とマジレスしてみる
689NAME IS NULL:2006/04/30(日) 19:04:39 ID:???
相手にするな猿
690NAME IS NULL:2006/05/04(木) 10:59:39 ID:KYeXRuFv
ACCESS総合相談所 その15
http://pc8.2ch.net/test/read.cgi/bsoft/1142586697/

↑で質問しようと思ったのですが、ちょっと怖い人がいるようなので、こちらで質問させてください。
社内LANに接続されている一台のパソコンに、accessソフトが一ライセンスだけインストールされている場合、
LAN経由でそのaccessを、複数の人たちが同時につかうことは可能ですか?
よろしくお願いします。
691NAME IS NULL:2006/05/04(木) 11:30:51 ID:???
>>690
「LAN 経由」の指すところがイマイチ不明瞭だが、とりあえず Terminal Server と
仮定して。
ダメ。
クライアント数分ライセンスが必要です。
Terminal Server はクライアントのリソースが浮くだけで、ライセンスは浮きません。

もし Terminal Server じゃなく単なるネットワーククライアント PC を指しているなら、
そもそも無理では。
使い勝手を度外視すれば、リモートデスクトップかなんかで「複数の人たちがつか」
いまわすのは出来るだろうけど、「複数の人たちが同時につかう」のは無理っしょ。

素直に Developer 買ってランタイムをインスコして回ったほうが良いと思われ。

ま、なんか漏れの知らない裏技があるかもしれないので、話半分で聞いといてや。
692>>690:2006/05/04(木) 11:39:11 ID:KYeXRuFv
>>691
すばやいご回答、どうもありがとうございました。
おかげで助かりました。
693NAME IS NULL:2006/05/05(金) 10:49:24 ID:???
[data1]
0 1
─────
A 1,2,3
B 1
C 3
D 1

[data2]
0 1 2 3
─────
A ○ ○ ○
B ○ × ×
C × × ○
D × × ○

Accessの質問です。
[data1]のA行は1と2と3が○
B行は1が○C行は3が○
と、1件ずつデーターを調べるにはどうしたらいいでしょうか?
この場合Dが間違ってるのでヒットさせるようにしたい。
694NAME IS NULL:2006/05/05(金) 12:56:38 ID:???
>>693
DAO or ADO
もしくは設計見直す
695NAME IS NULL:2006/05/05(金) 13:06:20 ID:???
>>694
DAO or ADO ですか。
使い方がよくわからない。
もちっと勉強してきます。
696NAME IS NULL:2006/05/05(金) 18:37:26 ID:???
data1のテーブル読むクエリ作ってなんか文字列操作の関数使ってField1からカンマ抜いとく
data2のテーブル読むクエリ作って iif([1]="○","1",null)&iif([2]="○","2",null)&iif([3]="○","3",null)
みたいに関数使って数字の並びに変えとく
で両者比較
でどうよ
697NAME IS NULL:2006/05/05(金) 23:30:36 ID:???
>>690
蛇足だが、MDBファイルもネットワークで共有するつもりなら
技術的にもオススメできないな
ttp://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9911/packet/

てことは書き込み時にパケットロスしたらデータベース吹っ飛ぶな
698NAME IS NULL:2006/05/06(土) 02:52:15 ID:???
正に蛇足。
TCPとUDPの違いぐらい覚えような。
パケットロスより、ローカルのハードディスクでもファイル開いたまま強制終了してファイル壊してしまう危険のほうが高いよ。

吹っ飛んで困るなら日頃からバックアップ取っとけ。
699NAME IS NULL:2006/05/06(土) 22:49:56 ID:mia8uBaC
すみません、低次元な質問なんですけど教えてください。
たとえば購買履歴のようなテーブルから[顧客番号]等のユニオンキーで重複クエリを作成。
その後テーブル作成クエリで重複するテーブルを作成したあと重複のあるものから
[購入日付]の最新のデータだけにする方法はどうすればよいのでしょうか、お願いします。
700NAME IS NULL:2006/05/06(土) 23:01:43 ID:???
重複クエリである必然性が無いように見えるんだが、どういった状況なんだろう?
顧客番号でグループ化して購入日付をMAX値取得してHAVINGで顧客番号のカウントが2以上の
ものだけ抽出すればテーブル作る必要もなくクエリ一つで済みそうなんだが。
701NAME IS NULL:2006/05/06(土) 23:09:03 ID:???
それを元にして、顧客番号と購入日付で繋いで購買履歴から全フィールドを
selectすれば目的は達するはず。
仮にテーブル作成クエリは使うとしても、できれば予めテーブルを作ってお
いてデータ追加クエリを利用した方がいいような気がする。
702NAME IS NULL:2006/05/07(日) 09:13:48 ID:66YJ+i7E
>>700,701
ありがとうございます。SQLは全然わからないのでもうすこしSQLを勉強
します。またSQLなしでは不可能でしょうか、教えてください。
703NAME IS NULL:2006/05/07(日) 10:26:03 ID:???
お前の言うSQLがどんなものかは知らないが、クエリデザイナだけでできる。直書きの必要はない。
ただし、その書き込みを見る限り、SQLの知識というよりもAccess自体の知識が全くないようだから
苦労はするだろうね。でも分からない単語はぐぐればすぐ理解できるよ。
704NAME IS NULL:2006/05/07(日) 11:40:40 ID:???
>>702
可能かどうかの2者択一でいうなら可能。しかし、非現実的なVBA(DAO or ADO)と
なるだろうな。703 のいう通り難しいことではないが、本当Accessの語句を理解して
ないような気がするし、そんな人がクエリ飛び越してVBA(DAO or ADO)なんて超
無理だべ。
705NAME IS NULL:2006/05/07(日) 11:50:41 ID:???
目的のための手段を間違えていて無駄に難解になってそうだな。
元になるテーブルの構造と欲しいデータの形だけ書いた方が
分かりやすい回答得られるだろうね。
706NAME IS NULL:2006/05/07(日) 20:09:57 ID:qppF9dMf
ありがとうございます。
Access地道に勉強します。
707NAME IS NULL:2006/05/09(火) 17:25:31 ID:???
Access はPC情報を Microsoft に送ったりするスパイウェアみたなことしてるんですか?

課長がなぜか気にして聞いてくるんですよ、うちの会社やましいことしてんのかな
708NAME IS NULL:2006/05/09(火) 17:26:11 ID:???
割れ物か
709NAME IS NULL:2006/05/09(火) 19:56:25 ID:???
「ソフトのシリアルとPCの製造番号を送信して顧客リストと照合してるらしいですよ。
 違法コピーしてる奴を見つけて片っ端から訴訟起こしてるとか……アメ公の会社はえげつないっすねー」
とかなんとか適当な事言ってビビらしとけ。
710NAME IS NULL:2006/05/09(火) 22:05:21 ID:???
まず間違いなく「課長が」てのは作り話で
不正コピーをびびりながら使っている>>707自身が聞きたいんだろうな。
711NAME IS NULL:2006/05/12(金) 00:47:30 ID:iCiEscdk
アクチのことが聞きたいんだろ?
712NAME IS NULL:2006/05/14(日) 01:34:04 ID:???
システム管理かライセンス管理でも任されてるんだろうな。
ACCSから通報来たら首切り覚悟だな。

今時は、ISPの簡単に顧客情報の開示に応じちゃうからねえ。通信の秘密が失われつつ有る。
713NAME IS NULL:2006/05/14(日) 21:44:00 ID:h+kbaaD4
AccessからExcelにリンクしているテーブルは変更できないらしいんですが本当ですか?
714NAME IS NULL:2006/05/14(日) 21:53:43 ID:???
>>713
KB904018
715>>713:2006/05/14(日) 22:06:25 ID:h+kbaaD4
>>714
さっそくのご返事ありがとうございます。
でも、KB904018の意味がわかりません・・・・
716NAME IS NULL:2006/05/14(日) 22:12:01 ID:???
ググれカス
717>>713:2006/05/14(日) 22:22:48 ID:h+kbaaD4
>>716
どうもすいませんでした。
718NAME IS NULL:2006/05/14(日) 22:41:22 ID:???
正規ユーザならマイクロソフトに訊いても教えてくれるよ。
ライセンス無いなら買いに逝け。
719>>713:2006/05/14(日) 22:57:38 ID:h+kbaaD4
>>718
ご返事いただきまして、どうもありがとうございました。
ライセンスはあります。こんどマイクロソフトに聞いてみます。
720NAME IS NULL:2006/05/14(日) 23:53:02 ID:???
ビルによろしくな
721NAME IS NULL:2006/05/15(月) 00:20:06 ID:???
「ご返事」ってのは、わざとやってるのか?
丁寧にしてるつもりの「ご教授」も気になるオッサンです。
722NAME IS NULL:2006/05/15(月) 07:10:44 ID:???
>>721
スレ違い
723NAME IS NULL:2006/05/15(月) 07:28:40 ID:???
>>722
いちいちうるせーな。
724NAME IS NULL:2006/05/15(月) 17:33:00 ID:sMRQmQTu
INSERT INTO 文で複数行テーブルに追加するにはどうすればいいですか?
725NAME IS NULL:2006/05/15(月) 17:40:42 ID:???
値指定なら不可
SELECT結果としてなら複数行可能
726NAME IS NULL:2006/05/15(月) 22:15:34 ID:???
>>721
見本みせてみな
727NAME IS NULL:2006/05/15(月) 22:48:20 ID:???
>>726
スレ違い
728NAME IS NULL:2006/05/15(月) 23:55:33 ID:???
家庭内に不和があるとついつい
言葉が荒くなるもんなんです。
729NAME IS NULL:2006/05/16(火) 00:00:47 ID:???
でも子供は親を選べないからね。
730NAME IS NULL:2006/05/16(火) 01:19:30 ID:???
「ご教示」が合っていると思うが、人それぞれの受け取り方だな。
意味には明確な違いがあるけど。はい、「スレ違い」ですね。
731NAME IS NULL:2006/05/16(火) 16:46:22 ID:nU2/fnpC
Oracleのテーブルからからアクセスのワークテーブルに
データをコピーする様な処理を書いてるのですが
OraDynasetから値をSELECTしてちまちまループしてると
大変時間がかかるので困ってます。

テーブル丸ごとコピーするような方法ないでしょうか?
732NAME IS NULL:2006/05/16(火) 20:45:00 ID:???
ネットワークに全データが流れるから遅いのは当然。
733NAME IS NULL:2006/05/16(火) 23:50:18 ID:MzpGrxT+
アクセスのGUIで作ったテーブルのCREATE文を
SQL Serverみたいにクエリ作成する機能はないですか?
734NAME IS NULL:2006/05/17(水) 00:04:36 ID:???
ない
735NAME IS NULL:2006/05/17(水) 01:54:18 ID:???
ぶっちゃけSQL Serverとの抱き合わせのためのアクセスだからねえ。
736NAME IS NULL:2006/05/17(水) 02:55:29 ID:???
>>731
OracleのテーブルをAccessにリンクして、Accessのクエリで
Insertってやって一気にワークテーブルに入れてしまえ。
737NAME IS NULL:2006/05/17(水) 10:07:20 ID:vnvv4gY+
Accessをフロントにして、テーブルはOracleに持たせるようなシステムを作っています。
データのバックアップ機能を実装しようと思いデータパンプを使ったのですが
バックアップ処理中Accessの画面が固まってしまいます。
うまく回避する方法はないでしょうか?
738NAME IS NULL:2006/05/17(水) 23:45:58 ID:???
そりゃ固まるだろうなあ。仕様。
アクセスは一生懸命処理してるんだけどね。
739NAME IS NULL:2006/05/18(木) 08:50:52 ID:???
>737
とりあえず DoEvents
740NAME IS NULL:2006/05/18(木) 11:16:37 ID:AthwfC0x
>>733
やっとことないけど、
AccessでDB作る>アップグレード・ウィザードでSQL serverに移行>SQL serverからテーブル作成文書き出し
とかは?
741NAME IS NULL :2006/05/18(木) 21:11:08 ID:vqbQvzC7
CSVの出力で、テーブルの中にあった日付型や数値型のデータをテキスト
型に変換したいのですが、もとのテーブルのデータ型は運用上必要です。
CSVの出力をするにはみなさんだったらどう解決されますか?
742NAME IS NULL:2006/05/18(木) 21:21:12 ID:???
何を言っているのか分からない。テキストに出力する時点で勝手にキャスト行われるし、
意図的に行いたいならcstrでもformatでも使えば良い話じゃないのか?
それとも俺には理解できない高度な次元の問題なんだろうか。
743まだまだ使える ◆WyUjsIG7BU :2006/05/18(木) 22:25:28 ID:???
>>741
CSVを諦めるか、または型指定用の行を用意するぐらいかな。
744NAME IS NULL:2006/05/19(金) 00:58:23 ID:???
>>741
CSV = TEXT よって、データに型は存在しない。全部文字列じゃん。
例えば、""付きは文字列で無しは文字列以外ってのもあるが。
>>743 のようにするかXMLとか。
でも、出力形式のことを言ってるような気がするけど、矛盾のある
質問文なのでわかりません。
745NAME IS NULL:2006/05/19(金) 07:21:58 ID:???
ああ、CSVのくせに元のデータ型の情報をどこかに残したいってことか。
ありえねーからXMLでスキーマ使いやがれです。
746NAME IS NULL:2006/05/19(金) 09:31:14 ID:???
1\tint,2006/05/19\tdatetime,hogehoge\tnvarchar
2\tint,2006/05/20\tdatetime,foobar\tnvarchar

とかいう風にエクスポートしてあげればいいと思うよ。\t はタブ。
747NAME IS NULL:2006/05/20(土) 22:25:58 ID:???
ここはAccessVBAの質問もOK?

レポートを作成する時、10個の枠を表示してだしたい。
しかしデータは3件とか12件とまちまち。
1つのページに10件(10件より少ない場合は空行)を出力したいのです。

いろんなサンプルを調べてみた結果、レポートのNextRecordプロパティを使えばできる、みたいなことが書いてありました。
ためしに組んでみたところ、5件や3件など、10件に満たない場合の時はきちんと表示されました。
しかし13件など10件を超えるデータに対しては、
1ページ目は10件表示されるのに、2ページ目が2件しか表示されず(最後のデータが出てこない)、
あげくにはページいっぱいまで空行が出力されてしまいました。

最後の行がでなかったので、データ件数を+1してみたところ、
今度は10件以上のデータはちゃんと表示されるのですが、
10件に満たないデータが空行を出力しなくなりました。

なにが原因なんでしょう。
PGはサンプルをコピーしたので間違いはないと思うのですが・・・
レポート自体のプロパティをなにか変えないといけないんでしょうか?
748NAME IS NULL:2006/05/20(土) 22:35:50 ID:???
100%そのコードおかしいだけだからイベント込みで全部晒せ
749747:2006/05/21(日) 01:11:44 ID:???
>>748
月曜まで待ってもらってもいいですか?
コードは家にはないんで・・・・
750NAME IS NULL:2006/05/21(日) 01:15:41 ID:???
どうせ魔法使いだろ?
751NAME IS NULL:2006/05/21(日) 23:32:58 ID:???
>>747
表示用の作業テーブルを用意して、レコードカウントし、ちょうど10件で表示できるようにダミーデータを作成すれば幸せになれる
752NAME IS NULL:2006/05/22(月) 02:33:15 ID:???
>>747
Pageイベントで枠や罫線を書けばいい
753NAME IS NULL:2006/05/22(月) 04:04:25 ID:???
751の手段はよく使う
754NAME IS NULL:2006/05/22(月) 05:15:51 ID:???
>>750

魔法使いの該当コードってまともに動かないの?
俺もそこを参考にして747と同様の処理をしているよ。
まぁ、参考にしたのは考え方のみだけど。
755NAME IS NULL:2006/05/22(月) 09:44:20 ID:???
>>754
使う人しだいだろ。例えに出したのは、見る側に素人が多いからだろ。
756747:2006/05/22(月) 11:10:55 ID:???
747です。
「魔法使い」ってのが分からなかったのですが、どうやらサンプルサイトのようですね。
自分はそこではないサイトを参考にしましたが、行っている処理は同じみたいです。

とりあえずコードを置いておきます。
http://www.uploda.org/uporg397333.txt.html
受信パスがかけてあるので、747を入力してください。

サンプルと何が違うのかさっぱり分かりません。
どなたか教えてください。お願いします。
757NAME IS NULL:2006/05/22(月) 11:39:21 ID:???
何が原因だったのかどうやって解決したのかスッパリ忘れたが
グループヘッダ・フッタでやった時に俺も似たようなこと起きたな。
なんだったかなぁ。
758747:2006/05/22(月) 17:03:34 ID:???
747です。

例の件ですが、空データを挿入するかたちに収まりました。
結局何が原因だったのか分からずじまいですが・・・・

ひとまず期待する動作になったのでよしとします。
お騒がせしました。
759NAME IS NULL:2006/05/27(土) 01:28:10 ID:???
お〜い。こうしたら、なんかできたんで、じゃなくて少しは
理解しろ。
760NAME IS NULL:2006/05/31(水) 17:02:12 ID:???
あ、ちょっとスマソ

テーブルのプロパティから「隠しオブジェクト」にチェック入れた後、
後日再びそのテーブル見えるように(隠しオブジェクトじゃないようにする)
するのってどうやるの?
ざっと見回したが、見当つかない…
761NAME IS NULL:2006/05/31(水) 18:38:25 ID:???
おまえの「ざっと」の中にはオプションは入ってないんだな。
762NAME IS NULL:2006/06/06(火) 14:38:42 ID:???
ODBC(Oracle)経由のデータを扱っています。

T1.ID:char(16)と、T2.ID:char(128)のデータがあって、
それぞれ、数値が文字として入っており、
空部分が半角スペースで埋められています。

T1.ID=T2.IDを抽出したいのですが、
何か定石のような巧い方法はありませんでしょうか。

実データをインポートすれば至極簡単なのですが、
これをせずに何か巧く済ませる方法をご存じの方、
ご教示、おねがいします。
763NAME IS NULL:2006/06/06(火) 14:42:55 ID:???
trim
764NAME IS NULL:2006/06/06(火) 14:52:18 ID:???
ありがとうございます。

下手にmidを使おうと思っていましたが、
今回の要件ではtrimの方が断然良いですね。

先ずはtrimを使ってみます。

このような条件で、何かAccessで定石みたいな
方法があれば、また教えて下さい。

ご教示ありがとうございました。
765760:2006/06/06(火) 19:03:31 ID:???
>761
あ・・・


スマソ
766761:2006/06/06(火) 19:40:10 ID:???
おせーよ!!!!!!!!!!!!!!!!!!!!!!!!
767NAME IS NULL:2006/06/09(金) 12:07:08 ID:???
クエリをデザインビューで組めないような複雑な更新クエリを
SQLビューで作ったんだけど、後から修正しようとデザインビューで
見ようとしたら「UPDATEステートメントの構文エラー」が出て、編集できない。

実行結果は正しい結果が出ます。

どうにかしてこの開けない(実行しか出来ない)クエリの編集をする方法は
ないんでしょうか?
768NAME IS NULL:2006/06/09(金) 12:12:14 ID:???
DAO
QueryDef
SQL

で修正できるかも。
769NAME IS NULL:2006/06/09(金) 12:21:25 ID:???
>768

え?え?

どーやって?
770NAME IS NULL:2006/06/09(金) 15:01:37 ID:ypveq4T2
こんにちわ。アクセス初心者のものですが、計算をふんだんに盛り込んだものをつくるときは
やはりエクセルのほうがむいているのでしょうか?
無理してアクセスで作ろうとしてるのですがどうも無理な気がします、、、、

積算のソフトを作ろうとしています。
771NAME IS NULL:2006/06/09(金) 15:18:50 ID:???
>>770
桐にしとけ
772NAME IS NULL:2006/06/09(金) 15:20:23 ID:ypveq4T2
>>770
桐ってのは何の略でしょう?
773NAME IS NULL:2006/06/09(金) 15:21:17 ID:???
774NAME IS NULL:2006/06/09(金) 15:21:36 ID:ypveq4T2
一発でみつかりました、ありがとうございます。
775760:2006/06/09(金) 16:28:59 ID:???
またまたスマソ

起動時の設定で「すべてのニューを表示する」の
チェックをオフにしたら次から「起動時の設定」が
選べなくなってしまいました。
再度、「すべてのメニューを表示する」を有効に
したいとき、どうやるんですか?
776NAME IS NULL:2006/06/09(金) 17:03:19 ID:???
SHIFT押しながら起動してみれ
777760:2006/06/12(月) 08:03:58 ID:???

開けた…アリガトウ

そーいうTipsってどこに書いてあるんだろう??
778NAME IS NULL:2006/06/12(月) 18:53:38 ID:???
ヘルプ
779NAME IS NULL:2006/06/14(水) 22:05:30 ID:dwDIzj0i
VISTAにAccess2000のランタイム、インスコしようとしたが、
途中で止まった・・・・

まさかこのままリリースする気かよM$

780NAME IS NULL:2006/06/19(月) 20:02:18 ID:qTgMEG/d
質問です。
インポートしたファイルに「,」が含まれているとエラーメッセージが表示される
というプログラムをつくりたいのですが。
どなたかわかりませんか?
どうすればいいか途方に暮れています。。
781NAME IS NULL:2006/06/19(月) 20:05:29 ID:???
何をどこにどんな方法でインポートするのかサッパリですね。文字列探すだけならinstrでいいじゃん。
782NAME IS NULL:2006/06/21(水) 16:44:52 ID:???
インポートするときですか? した後ですか?
それによってかなり違ってきます。

インポート中にならVBAで組む必要あり。
インポートした後ならVBAで組む必要あり。
783NAME IS NULL:2006/06/21(水) 19:36:25 ID:???
なんか、カンマ区切りのcsvで、フィールドの中に入ってるカンマが悪さするから……
みたいな話なんじゃないかという気もする
784NAME IS NULL:2006/06/22(木) 11:46:30 ID:???
それだとフィールド区切りの正当なカンマとどうやって区別するのかが難しいな
785NAME IS NULL:2006/06/22(木) 12:35:23 ID:???
ダブルコーテーションで囲め。それすらやらないデータは弾け。
786NAME IS NULL:2006/06/23(金) 01:06:54 ID:???
フィールド内にダブルコーテーションがあった場合は?
787NAME IS NULL:2006/06/23(金) 02:45:29 ID:???
>>786
Excelでも使ってどうなるか実験してみ?
788NAME IS NULL:2006/06/23(金) 07:10:54 ID:???
XMLにしろよ……
789NAME IS NULL:2006/06/23(金) 09:50:35 ID:???
Access97だ。
790NAME IS NULL:2006/06/23(金) 19:46:53 ID:???
じゃあ俺はAccess2002
791NAME IS NULL:2006/06/26(月) 18:53:52 ID:???
質問です。

マクロのセキュリティレベルを中から低にして、
また中に戻した後に、フォームデザインでコマンドボタン(コントロールウィザードONの状態)
を作ろうとすると、
「コードに構文エラーがあるか、必要な Microsoft Office Access 関数が使用できません」
というエラーが出て、ボタンが作れません。わかるかたいませんか?
792NAME IS NULL:2006/06/26(月) 20:03:03 ID:???
バージョンくらい書けよ猿
793NAME IS NULL:2006/06/26(月) 20:07:18 ID:???
すいません、Access2003です。
794NAME IS NULL:2006/06/26(月) 20:27:01 ID:???
知るかボケ
795NAME IS NULL:2006/06/26(月) 23:01:37 ID:???
>>791
まずは、VBAのコンパイルをしてみよう。
セキュリティレベルは関係ない気がするけど。
796NAME IS NULL:2006/07/03(月) 16:22:22 ID:lHn4U9wb
2007だとAutoexec 無効になる?
797NAME IS NULL:2006/07/09(日) 21:40:02 ID:XOHzqVLK
Accessのお試し版とかDL出来ませんか?
798NAME IS NULL:2006/07/09(日) 23:11:44 ID:???
>>797
2007落とせ
799NAME IS NULL:2006/07/10(月) 19:38:10 ID:OPzVOYfA
>>798 dくす
800NAME IS NULL:2006/07/11(火) 18:44:24 ID:icRb9ruD

MS Access が使用できる無料のレンタルサーバはありますでしょうか?

有料でも無料試用期間があれば結構ですので教えてください。
801NAME IS NULL:2006/07/12(水) 09:55:08 ID:???
ない
AccessをWebで使うのはやめておけ
理由は過去ログ嫁
802NAME IS NULL:2006/07/26(水) 23:51:33 ID:???
Accessど素人です。ご教授願います。
フォームを使用して入力した期間と業者コードを元に
外部データ(CDにあるテキストデータをテーブルとしてリンクしてあるやつ)をクエリ(抽出条件にフォームの値を使用)で引っ張ってくる際に
vbaでクエリをopenしようとすると
「SQL ステートメントが正しくありません。 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、または 'UPDATE' を使用してください。 」
と、言われます。
テキストデータのレコード数は3〜400万件あり、又、クエリで抽出後に更に再度別DBとの結合(?。言い方あってる?)をする必要があります。
どの様にすれば良いですか?


803NAME IS NULL:2006/07/27(木) 00:04:36 ID:???
>>802
該当のクエリーは、普通に開くの?
開かなければそもそもクエリーがダメなんだろうし
804NAME IS NULL:2006/07/27(木) 07:18:59 ID:???
そのクエリうp
805802:2006/07/27(木) 21:04:07 ID:???
>>803 さん、クエリは普通に(フォームに値をセットしてあるのが前提だけど)開きます。
>>804 さん、今日は家に帰ってきてしまったので、うpはまた今度に。(ところで、どうやってうpするのかな?)


806NAME IS NULL:2006/07/28(金) 00:20:31 ID:???
>>805
SQLビューの内容をコピペでいいんでない?
あとVBAも
807NAME IS NULL:2006/07/28(金) 00:58:23 ID:???
パラメータクエリというオチだったりしてw
808802:2006/07/31(月) 21:32:21 ID:???
>>804 さん、802です。sqlとvbaはこんな感じです

フォーム名:フォーム1
クエリ名: クエリ1
外部データ: 外部ファイル

sqlビュー

SELECT 外部ファイル.業者コード, 外部ファイル.日付, 〜
FROM 外部ファイル
WHERE (((外部ファイル.日付)>=[Forms]![フォーム1]![開始日] And (外部ファイル.日付)<=[Forms]![フォーム1]![終了日]) AND ((外部ファイル.業者コード)=[Forms]![フォーム1]![業者コード] ));


vbaでクエリをopenする所

Dim cn1 As New ADODB.Connection
Dim rs1 As New ADODB.Recordset

Set cn1 = CurrentProject.Connection
rs1.Open "クエリ1", cn1, adOpenDynamic, adLockOptimistic

↑書き方分かってないので、他のやつをコピペしてつかってます(他の時はこれで動いてるの)

809NAME IS NULL:2006/08/01(火) 11:50:57 ID:???
>>808
>>807 が指摘してるじゃん。それ、もろパラメータクエリだろ。
810NAME IS NULL:2006/08/01(火) 11:54:07 ID:???
なんでBETWEEN使わないんだろう?
811802:2006/08/01(火) 21:15:05 ID:???
>>809 なるほど、これパラメータクエリって言うのですね。勉強不足で申し訳ない。
>>810 クエリが作成するsqlビューそのままコピペしたから、between使っていない理由はaccessに聞いて下さい。

迷惑ついでにもう一つ教えて下さい。
別件(?)で処理スピードアップのため、外部データを並び替えしようと、テーブル作成クエリで並び替えをしたら、
ちゃんと並び替わりませんでした(昇順なのに途中に値の小さなデータが入ってくる場合がある)。
データ件数・データ量の制限ってありますか?
(件数は3〜400万件で約400メガあります。)
(尚、2Gの上限は知ってます。キーを間違えたなんてぼけもありませんのであしからず)
812NAME IS NULL:2006/08/01(火) 21:28:21 ID:???
>>811
な〜んもわかってないと思うんだが・・・WHEREのところで、>=ほにゃら AND <=ふにゃ
ってアナタがやったからBetweenになってないだけでしょ。AccessがBetweenなんて変
換してくれないよ。
並び替えもだけど、何でテーブル作成クエリが必要なのか説明がないので、それは無
視して言うと、データの型は何だ!!せめて、おかしいデータの前後を例としてカキコ
して、ほれおかしいべ〜ぐらいやってくれ。
813NAME IS NULL:2006/08/01(火) 21:28:23 ID:???
>>811
お前がアホなWHERE条件入れたからBETWEEN出ないんだよアホ
814NAME IS NULL:2006/08/01(火) 22:46:42 ID:???
>>811
ttp://support.microsoft.com/kb/225897/ja
ttp://support.microsoft.com/kb/198462/ja

> テーブル作成クエリで並び替えをしたら

RDBMS は並び順不定につき、そもそもテーブル作成クエリで並び替えは不可能。
あなたが、したつもりになっているだけ、というぼけです。
気になる(する)なら、表示時・出力時にちゃんと並べ替えを指定してください。
815NAME IS NULL:2006/08/01(火) 23:26:29 ID:???
勉強不足っていうより、基礎がわかってないのに仕様制限はわかってる
から突っ込むなぁとか、いろいろ態度でかいよな。ただのバカだな。
816NAME IS NULL:2006/08/02(水) 09:50:32 ID:909jDNxC
 Access2003 ADP のフォームで、データを表示するときの並べ替えを
どのようにやっていますか?
(1)レコードソースで ORDER BY a.foo, a.bar とかすると普通に開く分には
いいけれど docmd.openform の WhereCondition を指定して開いたときに実行時エラー
「列のプレフィックス 'a' テーブル名と一致しないか、クエリ内の別名と一致しません」
が出て開けません。
(2)order by を使わずに 並べ替え のプロパティを設定しても設定したとおりには
並べ替えされません。
(3)Form_Open イベントで me.orderby と me.orderbyon を設定すると
並べ替えはできるのですが、docmd.openform の WhereCondition で指定した
抽出条件が保存してもいないのにフォームに残ってしまいます。
 別のフォームからフォームを開く場合にうまく並べ替える方法はありませんでしょうか…
817NAME IS NULL:2006/08/02(水) 11:39:32 ID:4qox3Cow
データベースのデータを更新するするためには、更新、追加、削除の機能が
必要ですが、
ACCESSフォームのサンプル、テンプレート等のほとんどは、入力フォ
ームの作り方にしか触れていません。
レコードの追加、更新、削除が行えるフォームの作り方、テンプレート等に
ついて記述されている書籍、HP等をご存知でしたら教えて下さい。
818NAME IS NULL:2006/08/02(水) 11:41:10 ID:???
フォームと連結させりゃどれもできるじゃん
819817:2006/08/02(水) 11:50:47 ID:4qox3Cow
>>818
早速、ご回答頂き、ありがとうございます。

作成例、コーディング例が載っているものを探しているのですが…。
プログラムですから、VBAやSQLを使えば出来るのは分かって
います。
820NAME IS NULL:2006/08/02(水) 12:00:16 ID:???
なにこのバカ
821NAME IS NULL:2006/08/02(水) 19:47:47 ID:???
レコードの追加、更新、削除が行えないのに、あくまで入力用というフォームの作り方。
サンプル、テンプレート等のほとんどがそうらしいが、なぜか一度も見た覚えが無い。
すごく見てみたいが、どこで見れるんだろう。
822NAME IS NULL:2006/08/02(水) 20:01:30 ID:???
>>819
VBA/SQL使うスキルが無いなら更新クエリでも使えばいいんじゃないの?
823NAME IS NULL:2006/08/02(水) 20:04:09 ID:???
更新クエリもSQLです
824NAME IS NULL:2006/08/02(水) 20:38:17 ID:???
いや、だからさSQL使わなくても更新クエリくらい作れるじゃん
内部的にSQLだとか、そんなのは>>817のレベルからすればどうでもいい事。
825NAME IS NULL:2006/08/02(水) 21:43:14 ID:???
とりあえずウイザード使って、フォームを作って動かしてみれば
気が付くかと思うのですが。
ユーザーの要望を満たそうとすると、それだけじゃダメでVBAと
かいろいろ出てきますがね。
826NAME IS NULL:2006/08/03(木) 02:37:49 ID:???
たぶん 817=825 だよな
とても面白いやつだと俺は思うぞ
頑張れ

そう、動かしてみればきっと気付くよな
VBAとかいろいろ出てくるよな
おまえ絶対間違ってない

頑張れ
827NAME IS NULL:2006/08/03(木) 07:22:07 ID:???
817=825だとしたら精神障害者だろ
828825:2006/08/03(木) 07:39:03 ID:???
オレ、817じゃないぞ。
829NAME IS NULL:2006/08/03(木) 08:36:32 ID:???
だよな。内容からしてあり得ない。
830817:2006/08/03(木) 19:50:54 ID:4leikGuf
ACCESSって、データの
入力はフォームで、
更新、削除、追加はテーブルビューで行う事を推奨しているソフト
なのでしょうか・・・?
もし、そうだとすると、とてもマイクロソフトらしいですね。
831NAME IS NULL:2006/08/03(木) 19:58:22 ID:???
( ゚д゚)ポカーン
832NAME IS NULL:2006/08/03(木) 20:00:53 ID:???
>>830
普通に作れば入力更新削除全部できるんだがお前はよほどの馬鹿か凄腕の釣り師なんだな
833NAME IS NULL:2006/08/03(木) 20:11:02 ID:???
>>817
>ACCESSフォームのサンプル、テンプレート等のほとんどは、入力フォ
>ームの作り方にしか触れていません。

この「ほとんど」とやらを全部教えろよ。
本のタイトルでもURLでも何でも良いから。
834NAME IS NULL:2006/08/03(木) 23:52:46 ID:???
やっぱりすごく面白いやつじゃん>>817
俺だけは応援するぞ
違う
俺は応援だけするぞ
835NAME IS NULL:2006/08/04(金) 02:37:59 ID:???
>>817

コマンドボタン作ってみな。
ウィザードが働いていれば、あんたがやりたいことのほとんどはできるはずだよ。
VBA使うにしたって、ほとんどはウィザードで使っているコマンドの応用だったはず。
まぁ、ウィザードやマクロ使うのもいいが、たまにはその中身を見てみることを奨めるよ。
これが意外と勉強になるんだな。
836NAME IS NULL:2006/08/10(木) 11:16:20 ID:???
初心者です。
Access2000を使用していますが、エクセルのSUBSTITUTE(文字列置換関数)に
該当する関数ってありますか?
電話番号フィールドから"-"を除きたいのです。
低レベルな質問ですいません。
837NAME IS NULL:2006/08/10(木) 11:43:26 ID:???
838NAME IS NULL:2006/08/10(木) 13:49:13 ID:???
>>837
ありがとう、InStrですね(・∀・)
839NAME IS NULL:2006/08/10(木) 13:54:51 ID:???
ちょwwwwwwwwwwおまwwwwwwwwwwww
840NAME IS NULL:2006/08/11(金) 00:03:46 ID:???
>>838
マジでいってるんか???
りぷれ〜す関数だろうに。
841NAME IS NULL:2006/08/11(金) 02:06:57 ID:???
私はInStrでやると言っているんです
InStrだって出来るじゃないですか、プンプンッ!!
842NAME IS NULL:2006/08/11(金) 07:43:43 ID:???
>>841
InStrだけではできない。それに、InStrはSUBSTITUTE(文字列置換関数)に
該当する関数ではない。文字列検索関数だと思うのだが。
843NAME IS NULL:2006/08/11(金) 09:55:24 ID:???
まだreplaceが無かったAccess97とかのままの知識なんだろうか?
確かにinStrでもfor〜nextでも置き換えは出来るし、旧バージョンに対応するためそれを書いたこともあるが
そうでもなきゃ既にある物を再発明するのは無駄。 オナニーのし過ぎはバカになるから気をつけろ。
844NAME IS NULL:2006/08/11(金) 18:55:14 ID:???
2000だったらどっちみち関数自作しないと置換できなかったような
845NAME IS NULL:2006/08/12(土) 00:03:09 ID:???
俺がむかし作った関数

Public Function Stuff(SourceStr, Start As Integer, DelLen As Integer, InsStr As String)
Dim L As Integer
Dim R As Integer
If IsNull(SourceStr) Then Stuff = Null: Exit Function
L = Len(SourceStr)
If Start <= 0 Or DelLen < 0 Then Stuff = Null: Exit Function
R = L - Start - DelLen + 1
If R > 0 Then
Stuff = Left(SourceStr, Start - 1) + InsStr + Right(SourceStr, L - Start - DelLen + 1)
Else
Stuff = Left(SourceStr, Start - 1) + InsStr
End If
End Function
846NAME IS NULL:2006/08/12(土) 01:13:32 ID:???
2000で既にReplace関数ありますよ。それに同様の関数がWIN32API
にもあります。自作も勉強と割り切ればいいと思うが、
>>845 のは、悪いけどお粗末だな。
847NAME IS NULL:2006/08/12(土) 07:31:40 ID:???
>>846
[ACC2000] 新しい VBA 関数を式で使用できない
http://support.microsoft.com/default.aspx?scid=kb;ja;225956&Product=accJPN
848NAME IS NULL:2006/08/12(土) 07:54:00 ID:???
Replaceもラップするだけで使えるし
849846:2006/08/12(土) 07:58:46 ID:???
>>847
その情報は初めて知ったぞ。ありがとう。今の本業、Accessから
離れてUnixの方だから調べもしなかったよ。
でもな、Replaceは実際に使ってるんだよ、いっぱい。動いてるし。
んで、この技術情報がいいたいことは、プロパティやクエリなんか
で直接 =Replace(〜) という使い方はできないよってことであって、
VBAの中では使えるんだから問題なしだろ。
850NAME IS NULL:2006/08/12(土) 08:37:27 ID:???
言い訳がましい
851NAME IS NULL:2006/08/12(土) 08:50:50 ID:???
ここって "クエリ" スレだろ?
852NAME IS NULL:2006/08/12(土) 09:01:27 ID:???
>>851
違うよ。1スレ、2スレ目という数え方のパターンとして"クエリ"という言葉が使われているだけ。
「Oracle 総合 Session5」とか「異種姦【触手蟲獣妖し機械人外】総合スレ63匹目」とかと一緒。
前スレからその手の勘違いはたまにあったから変えた方が良いかもね。
853NAME IS NULL:2006/08/12(土) 09:28:35 ID:???
例にあげたスレタイはどうかと思うのだが
854NAME IS NULL:2006/08/12(土) 14:38:35 ID:???
>>850
その他大勢バカPGは黙ってれば。
855NAME IS NULL:2006/08/12(土) 14:52:01 ID:???
何だろうねこのバカ
856NAME IS NULL:2006/08/12(土) 15:09:10 ID:???
まあ餅付け。

正直、厨が組み込み関数を再発明するかどうかなんてどうでもいい。
好きにやれ。ただし、迷惑だからオナヌーは晒すな。

Replaceネ夕糸冬了。
857NAME IS NULL:2006/08/13(日) 00:24:25 ID:???
所詮、Accessなのであつくならないように。
858NAME IS NULL:2006/08/19(土) 20:37:06 ID:rDriXfuc
Access2000を使ってマスタ作る作業をしたいんですが、全くどうすればいいのかわかりません。
Cとかみたいに初心者に解る様な解説サイトや、または皆さんのオススメの本はありますでしょうか?
宜しくお願いします。
859NAME IS NULL:2006/08/20(日) 08:26:39 ID:???
>>853
本屋行って探せ。初めから人を頼るな。
860NAME IS NULL:2006/08/27(日) 08:58:56 ID:???
>>858
858さんのレベルがわかりませんから参考になるかは不明ですが。
牧村あきこ著「ACCESS はじめてのデータベース」(技術評論社)は、
超初心者向けで比較的わかりやすいと思いますよ。
長年アクセスが使えなかった私でもなんとか使えるようになりました。
861NAME IS NULL:2006/08/30(水) 21:04:45 ID:???
ファイルメーカーのほうが簡単ですね
862NAME IS NULL:2006/08/31(木) 09:39:17 ID:???
リレーショナル型とカード型を比較しても意味が無いような
863NAME IS NULL:2006/08/31(木) 10:08:08 ID:???
桐は何型?
864NAME IS NULL:2006/08/31(木) 11:03:23 ID:???
リレーショナル
865NAME IS NULL:2006/09/02(土) 09:12:44 ID:???
検索結果一覧を一行ごとに色変えしたいのですがどうしたら出来ますか?

通常は交互の色変えで特定のデータの時はハイライトしたいのですが…
866NAME IS NULL:2006/09/02(土) 10:32:29 ID:???
条件付書式を使え

VBAでもできなくはないが(実力しだい)、ほぼ出来ないと思った方がよい。
867865:2006/09/02(土) 13:57:41 ID:???
>>866
> 条件付書式を使え
> VBAでもできなくはないが(実力しだい)、ほぼ出来ないと思った方がよい。

すみません そのやり方がよくわからないので・・
教えてくださいませんか?
868865:2006/09/02(土) 13:58:26 ID:???
書き忘れましたが アクセスは未だに97です
869NAME IS NULL:2006/09/02(土) 16:37:04 ID:???
Access 97 に条件付き書式はないよ。たしか。
870NAME IS NULL:2006/09/02(土) 22:24:19 ID:???
ありがとうございます。 97では難しいんですね。

上司がアップグレードしてくれたらいいんだけどな
871NAME IS NULL:2006/09/02(土) 22:43:54 ID:VNEYaxFD
>>870
DAOでできるでしょ。
ttp://item.rakuten.co.jp/book/1495121/
872NAME IS NULL:2006/09/03(日) 11:06:44 ID:bZVHX0Ps
初心者です。クエリではなくテーブルについてですが、
どなたか教えていただけないでしょうか。
テーブルで、最終レコードの次の空行があるものと
最終レコードで行が終わっているものは、何が違うのでしょうか?
また、空行を表示させないためには、何をすればいいのでしょう?
873NAME IS NULL:2006/09/03(日) 11:58:31 ID:???
あのさ、スレ違いかもしんないけど愚痴らせてくれい。

「Accessの使用経験3年以上」でやってきたねーちゃんだけど、
いわゆる日報の売上データを月ごとに集計してねって頼んだら、
固まっちゃった。

事前にSQL文がどーのこーの、とか言ってたんで、
こんな簡単な仕事でわりーけどと思いつつ仕事渡したんだけどさ。
データのIDとか日付フィールドを残したまま、集計クエリを作って、
「集計できないんですけど、Access97だからですか?」とか言うの。

「フォームに入力」3年だったのかな。
採用したオヤジがまるでPC使えない奴だったからな。
これに教えなきゃなんないんだよな、ワシ。泣けてきた。



874872:2006/09/03(日) 13:49:40 ID:bZVHX0Ps
お恥ずかしいことに、読み取り専用でした。
>>873
そのねーちゃんは私レベルですわ。
ワシ、がんばってね。
875NAME IS NULL:2006/09/03(日) 14:11:04 ID:???
select 将来 from 自分 where 仕事 = 現在;

ぬるぽ
876NAME IS NULL:2006/09/03(日) 15:48:53 ID:???
インストール歴三年では
877NAME IS NULL:2006/09/03(日) 17:51:01 ID:lyDiYZBB
だって「使用経験3年以上」であって「開発経験3年以上」ではないでしょう。
878NAME IS NULL:2006/09/03(日) 18:02:20 ID:???
TV視聴歴20年以上になると思うけど、修理や改造はできない。
879NAME IS NULL:2006/09/03(日) 22:08:11 ID:???
つか、世の中そんなヘッポコな仕事存在するんだな。
今どき高校生でも出来るぞそんなもん
880NAME IS NULL:2006/09/04(月) 07:27:37 ID:???
>>879
嘘つき、
っうふふ
881NAME IS NULL:2006/09/04(月) 15:46:18 ID:Me1/srqK
>>873
そいつ派遣かな?
だったらスキルなんて過大表現当たり前。
受け入れ側は事前に面接で細かいことききつつ
実際のスキル見極めなきゃ後で泣く。
正社員なら雇ったやつがアホ。
というわけで頑張れ。

>>879
それ言い出したらきっと中学生でもできるやつはいるだろうな。
882NAME IS NULL:2006/09/05(火) 23:02:25 ID:XYcfb6P7
アクセス使い始めたけど何がわかってないのかもわからない・・・
泣きそうです
リレーションを繋ぐ時は、全く同じフィールドじゃないとダメなんですか?
883NAME IS NULL:2006/09/05(火) 23:54:03 ID:???
少なくとも型はあわせる
884NAME IS NULL:2006/09/06(水) 07:15:30 ID:???
ACCESSってまったくの素人が使うには難しいけど
本腰入れたプロがつかうにはヌルイって感じなの?

最近覚え始めたんだけどさーどこまでスキルとして評価されるのかなーと気になって
885NAME IS NULL:2006/09/06(水) 10:08:06 ID:???
ヌルいっつーか、限界も低いしすぐ壊れるから、小規模なDBにしか使えないだけ。
お手軽DBMSとして、基本を覚えるにはいいんじゃない?
886NAME IS NULL:2006/09/06(水) 17:48:19 ID:???
>>884

小規模でちょっと手の込んだこと考えたら最適じゃない?
コストは安いし、VBAで組みやすいし。 スタンドアロン もしくはSOHOクラスなら
いいかも

ネットワーク前提の中規模以上なら力足らずかな?
887NAME IS NULL:2006/09/06(水) 18:37:34 ID:???
ACCESS使うと何ができるか、じゃなくて
ACCESS使えるとどれだけ箔がつくか、ハッタリが効くかって質問?

MCPとかMicrosoft Office Specialist(旧名MOUS)とかマイクロソフト公式の資格はあるけど
頑張って合格したところで、正直どれも世間一般の評価は微妙だと思う・・・
888NAME IS NULL:2006/09/06(水) 19:39:31 ID:W4VM29kN
>>883
ありがとうございます!!!!
見事にその通りでした
なんでできないのかずっとわからなかった・・・
>>884
中小が導入してるところは結構あるから、事務淫が使えると結構重宝されるよ
オラクルとかは外部の人間が使うシステム・・だと思う。たぶん
IT関連以外の中小ならアクセスでいいんじゃないかな?
889NAME IS NULL:2006/09/07(木) 07:33:47 ID:???
普通の会社の事務職とかなら、自前開発はAccessが精一杯
それでも使いこなせれば相当幅は広がるし、十分業務に使えると思う

890NAME IS NULL:2006/09/07(木) 23:58:11 ID:qqWGurEW
スレ違いならすまそ。検索しても見当たらないしスレも見当たらないので困っています。
ご存知の方居たらぜひご教授願いたい。
XPproのoutlook2000、acc97の環境下でメールの添付ファイルを開封作業等一切
することなく添付ファイル(エクセルorテキストorCSV)をaccessに取り込む方法は
ありますでしょうか?
acc2000では添付xlsを特定フォルダに保存して出来たんですが97では出来ません
でした。訳あって97で実現したいのですが・・・無理なんでしょうか。
「ココを読め」とか「こっちで聞け」でも助かります。よろしくお願いします。
891NAME IS NULL:2006/09/11(月) 15:01:21 ID:Fq2I7K1d
>>890
OutLook2000(MSOUTL9.OLBだったかな)を参照設定
すりゃ、そのまま逝けるだろ。
892NAME IS NULL:2006/09/16(土) 13:45:45 ID:SI7xLnIp
共有フォルダにmdbを置き、フロントにexcelを使うシステムは可能でしょうか。
ユーザは1-2名でexcelからadoなどで1つのテーブルを参照/updateしたいのですが。
893NAME IS NULL:2006/09/16(土) 16:56:56 ID:???
もちろん可能だ。
交通事故を恐れていては車に乗れない。
894NAME IS NULL:2006/09/16(土) 20:35:05 ID:???
すみません。初心者です。教えて。

テーブルのチェックボックスにレ点がついているやつのカウントは
どうやればできるのですか。
895NAME IS NULL:2006/09/16(土) 20:57:07 ID:???
dcount("項目名","テーブル名","項目名=True")
896894:2006/09/16(土) 21:14:43 ID:???
ありがとうございました。一応

でも、テーブルのレコードの数だけたてに並んじゃう…
一列でええっちゅうのに…。うまくいかないもんだ。先は長い。
accessって難しいんですね。
897NAME IS NULL:2006/09/16(土) 22:55:46 ID:???
select -Sum([フィールド名]) AS カウント from [テーブル名];
898Raul:2006/09/18(月) 22:26:53 ID:80DP6JBK
ACCESS初心者です。教えてください。
顧客情報を管理するのに、業務用のオラクルデータをODBCリンクテーブルして
いますが、顧客IDが0000123456という感じで10桁前ゼロ埋めになっています。
そのIDをパラメータクエリで123456のみ入力して0000123456を絞り込むには
クエリの計算式をどのようしすればいいのでしょうか?
899NAME IS NULL:2006/09/18(月) 22:55:02 ID:???
where 顧客ID = Format$([パラメータ名], "0000000000")
900NAME IS NULL:2006/09/20(水) 08:56:40 ID:???
よくある家計簿のように、毎回の収支ごとに小計を表示したいのですが、
どのようにクエリを組めばよいのでしょうか?

具体的には

   入り     出    小計
| 3000  |     | 3000 |
|      | 2000 | 1000 |
|      | 2000 |-1000 |

このような感じにしたいです。

よろしくしくお願いしまつ
901NAME IS NULL:2006/09/20(水) 09:22:29 ID:???
>900
入出をExcelの外部データ取り込み機能を使って取り込ませて、Excel で
小計を計算したほうが楽な希ガス。
902NAME IS NULL:2006/09/20(水) 09:36:18 ID:EaSH5T2N
>>900
それは小計とは言わない累計という

累計はレポート使えば簡単だ
903NAME IS NULL:2006/09/20(水) 12:17:10 ID:???
言い換えると

「レポート以外では面倒だ」
「桐にしとけ」
904NAME IS NULL:2006/09/20(水) 12:58:31 ID:oZNhDvku
そもそもそれをクエリでやる必要があるのか?
DMLで抽出できる範囲外のことしたけりゃ、レポートでやるなり、
VBA使ってワークテーブル作るなりすりゃいい話。

桐桐言ってんじゃねーよクソヤロー。
905NAME IS NULL:2006/09/20(水) 15:02:47 ID:EaSH5T2N
>>904
いちいち反応しないように。
相手がほしいだけなんだから。
906NAME IS NULL:2006/09/21(木) 02:23:11 ID:8sB1srsH
【.  目 的  】 (ある大学うを例に、所属している学生のデータを管理したい)
【.  条 件  】 (WinXP、ACCESS-2003)
【. 概  要  】 (名前、住所、学籍番号、学部、各教科テストの点数、各教科の欠席数)

「概要」に書いたようなテーブルを作ってデータベースを作りたいのですが
テーブルを自分で作成したところリレーションシップの関連付けがうまくいかずにクエリがきちんと作成できませんでした
どなたかどのようにデータをわけてテーブルを作成すればいいのか教えていただけないでしょうか?おねがいします(T_T)
学部は2つだけでテスト科目は学部ごとに違って。成績入力を個人毎や科目毎に入力できるフォームも作成したいのですが
よろしければおねがいしますm(__)m
907NAME IS NULL:2006/09/21(木) 02:50:01 ID:???
>>906
何も難しいところはないと思うので、
参考書を買って勉強してみてください。

その上でテーブル構成などを挙げながら質問したら
レスが返ってくるかもです。
908900:2006/09/21(木) 06:16:08 ID:???
遅くなりました レスありがとうございます。

ではワークテーブルを作り、データの挿入時に一行づつ計算してテーブル内に
データを格納して結果をフォームに表示する、と言う手順くらいしか思いつかないんですが
もっと簡単な方法は有りますでしょうか?

上司がなんですが、家計簿のようにリアルに入出の結果を入力時に見たいらしいので
どうしても実装しなくてはいけないみたいです。
909NAME IS NULL:2006/09/21(木) 06:20:29 ID:???
>>906

学生の個人データと 学部学科関係なしの成績データ の二つだけでいいのでは?
リンクは個人データのIDでリンク。 クエリーで学科、学部の切り分けだけで可能だと
思いますよ
910NAME IS NULL:2006/09/21(木) 09:06:05 ID:???
成績証明書キタコレ
911NAME IS NULL:2006/09/24(日) 22:05:03 ID:hC2zfKZp
Access起動→開く→ファイルの種類「ODBCデータベース」

としたのですが、データソースの選択が出てきません
何が原因なのでしょうか?

ちなみにMicrosoft Access 2003 です。
912911:2006/09/24(日) 22:51:48 ID:???
すみません、

NortonInternetSecurity2006
     ↓
その他
     ↓
Miceosoft Officeのデータを保護するにはのチェックをはずす

で解決しました
913NAME IS NULL:2006/09/26(火) 10:50:30 ID:rhnADigr
暇つぶしにAccessを起動しましたが、何を作ればいいのか分かりません。
何が原因なのでしょうか。

ちなみにMicrosoft Access 2002 です。
914NAME IS NULL:2006/09/26(火) 11:14:08 ID:???
>>913
貴方の脳が原因です
915NAME IS NULL:2006/09/29(金) 08:51:28 ID:???
VBAから直接SQL記述をしてデータを得るのと
クエリ経由でデータを得るのではどちらが早く効率よくデータを
得ることが出来るのでしょうか?
916NAME IS NULL:2006/09/29(金) 09:32:50 ID:???
事前にクエリを作成してあれば、実行時に解釈する必要が無いのでSQL発行より早い。 少し。
VBAでSQL投げたりクエリ作成して実行すると、prepare->executeという動作になるが
このprepareまで終わった状態。 複数回投げる場合でもなけりゃ変わらん。
917NAME IS NULL:2006/09/29(金) 11:23:44 ID:???
ネットワークHDDにファイル置いて4〜5人で共有しようと思ってるんだけどデータの破損って頻繁に起こる?
918NAME IS NULL:2006/09/29(金) 11:58:09 ID:???
しょっちゅう起こる
919NAME IS NULL:2006/09/29(金) 12:55:40 ID:???
>>917
複数人で同じmdbを開くのは猛烈にオススメしない。
少なくともファイルをデータとロジックに分けて、ロジックを全員に配布したほうがいい。
できればデータはmdbじゃなくてMSDEの方がまだいい。
920NAME IS NULL:2006/09/29(金) 23:48:30 ID:???
テーブルのバックアップをエクセル形式でとっておきたいんですけど
保存する場所の指定は出来ないんでしょうか?
doCmdからでは場所の指定は無いようなんですが、ほかに方法有りますか?
921NAME IS NULL:2006/09/30(土) 00:07:52 ID:???
FileCopy "元パス", "先パス"

でも出来るし

Dim f
Set f = CreateObject("Scripting.FileSystemObject")
f.CopyFile "元パス", "先パス"
Set f = Nothing

でも出来るが

>>エクセル形式でとっておきたいんですけど
というその面白すぎる発想は一体どこからでてきたのか
いや、特に知りたいわけでもないが
922920:2006/09/30(土) 01:43:36 ID:???
>>921

上司の希望です。 エクセルまんせーな人なのでいざというときにエクセルで
みたいらしいんですが。
923NAME IS NULL:2006/09/30(土) 09:56:41 ID:???
>>920

バックアップというよりも、ワークシート変換で考えてみれば。
マクロだと絶対パス、ファイル名固定だけど、
VBA解るのだったら保存先やファイル名なんてどうにでもなることだし。
仮に解らなくても、マクロをVBAに変換すれば
恐らく解読はできると思う。
924NAME IS NULL:2006/10/06(金) 16:16:13 ID:eranlTGB
少々お伺いしたいのですがっ

只今、Office2003を利用しておりましてAccessで作成したmdbファイルを頂きました。(作成元もOffice2003を利用しております)
中身を見るため、Shift+Enterで立ち上げようとしたのですが普通に立ち上がってしまいます…
左右両方のShift、Control、Altそれぞれ試したのですがどうもダメでして…
何かお心当たりの方はいらっしゃいますでしょうか?
よろしくお願いいたします。
925NAME IS NULL:2006/10/06(金) 16:19:15 ID:eranlTGB
すみません。
どちらかというとデータベース云々よりもアプリケーションの不都合っぽいのでビジネスソフト板のOffice2003のスレに移動します。
926NAME IS NULL:2006/10/07(土) 08:04:45 ID:???
>>910
成績までいかなくて、単なる採点管理だろ・・・

一番簡単なものは>>909の言ってる事で実現できる。
ただ、各教科の総コマ数とか、そのうちセメスタ区分とか必要になってくるんジャマイカ?
教科マスタとか教員マスタも分けておくべき。
927NAME IS NULL:2006/10/09(月) 02:00:10 ID:???
>>924
解らない人は解らないままで・・・・・
屯屯
928NAME IS NULL:2006/10/10(火) 11:18:38 ID:???
今AccessのシステムをVBでリプレースし直しているんですが、

strNameMiddleTrim(strReNameSearch([TAD_UC_010].[TQM_0011])) Like '島根県民*'

のように、AccessのSQL文中でユーザー関数を使った箇所があります。
DB自体はAccessのままでよいのですが、これをVBから発行したらエラーになります。
対処方法はなにかありますでしょうか?
929NAME IS NULL:2006/10/10(火) 19:43:22 ID:???
VBで書き直せばいいのでは?
930NAME IS NULL:2006/10/10(火) 20:13:31 ID:???
いや、だから、どうやって書き直すの?
データはAccessのままだし。

このままでは、SQLで処理するのをあきらめて、カーソルで処理するしか方法ない・・・・か?
931NAME IS NULL:2006/10/10(火) 22:41:42 ID:???
とりあえず「島根県民*」を「島木艮県尻*」にしてみたらどうかな。
932まだまだ使える ◆WyUjsIG7BU :2006/10/10(火) 23:13:45 ID:???
>>928
Access VBAを排除したいなら、SQL内のユーザー関数は諦める。
933NAME IS NULL:2006/10/10(火) 23:44:22 ID:???
>>928 程度なら、ユーザー定義関数ではなくIIFとかMIDとか使って
実現できそうだが・・・イメージ的にね。
934NAME IS NULL:2006/10/11(水) 01:35:03 ID:???
AccessがDBなんで、ADOとかDAOで接続しても、Jet SQLには少し
しか関数ない・・・・・。

MIDに相当する関数はあるようだけど、switch文や、iifよううな凄い関数はなさそうです。

ここで情報無ければ、明日結果セット取って、カーソールでグルグル回す文字列処理を実装します。
935NAME IS NULL:2006/10/12(木) 00:07:35 ID:???
>>934
ADOで、IIfは使える。
936NAME IS NULL:2006/10/12(木) 03:08:53 ID:???
ユーザー関数を使った部分だけ、SQL文ではなくmdb内の作り置きクエリにして、
ADOでその作り置きクエリを開く、みたいなやり方って通用しなかったっけ

どっちにしてもあんまり長いSQL文だときびしい
937NAME IS NULL:2006/10/12(木) 04:26:00 ID:???
>935
それは、AccessVBAのコード中でなく、VBからADOでmdbへ接続した場合も使えるとのでしょうか?

>936
それはすでに、試みたのですが(ADOとDAOで)駄目でした。
さすがにDAOで接続したら、mdb内に格納されたコードが呼び出されて動くのではと期待しましたが、
駄目のようです。

今のところ、Jet SQLの文中に使われたユーザー定義関数は、AccessVBA内で呼び出された場合
のみ機能すると言う結論で良いのでしょうか?

あと、AccessVBAで呼び出したとしても、別mdb内に格納されたユーザー定義関数が機能するかどうか
というのも興味ある所です。
938まだまだ使える ◆WyUjsIG7BU :2006/10/12(木) 09:58:34 ID:???
>>937
> あと、AccessVBAで呼び出したとしても、別mdb内に格納されたユーザー定義関数が機能するかどうか
> というのも興味ある所です。

使いたいユーザー関数が格納してあるmdbを参照設定すれば使える。
ただ、パス指定の追従が賢くないので要注意。
939935:2006/10/12(木) 13:36:07 ID:???
>>937
オレはVBは使わないけど、C++BuilderからADO利用で動いてる
から、いけそうかもって思った。ユーザー定義関数は無理だ
が、標準である関数は使える場合もあるので確認してみたら。
ac2003のヘルプではjetで100個以上のVBA関数が使えるって
書いてあるし、式作成機能もjetがVBAを利用してるんだし。
940NAME IS NULL:2006/10/12(木) 14:43:36 ID:???
>jetで100個以上のVBA関数が使える

本当すか!!
出来れば、どのあたりのヘルプに書かれているかヒントが頂けると有難いのですが。
941935:2006/10/12(木) 17:25:50 ID:???
>>940
自分で調べたか?ac2003のヘルプ検索で、sql式。
Access動かして確かめられる環境はあるみたいだから、簡単なIIfやMIDなどは
やってみれば。switchは関数じゃないから無理なはず。
942NAME IS NULL:2006/10/14(土) 10:57:32 ID:3YlNhuqH
accessって集計やるとなんか何度も合計して凄い結果(=ありえない数値)が出ますが、なんででしょうか。
943NAME IS NULL:2006/10/14(土) 11:55:52 ID:???
そりゃ単にやり方を間違ってるからだろ。
944NAME IS NULL:2006/10/16(月) 09:30:34 ID:???
エスパーの俺がテーブルの積結合の結果を集計してるからと推測してみる
945NAME IS NULL:2006/10/19(木) 15:04:43 ID:Gp8Alou8
Access.Applicationオブジェクト経由でDoCmd使えば、
ユーザー定義関数を含んだアクションクエリは通る。
946NAME IS NULL:2006/11/03(金) 23:17:32 ID:NKeP1VzF
外部リンクテーブルでPostgreSQLのテーブルを参照しています

この外部リンクテーブル接続先のパスをVBAで取得したいんですが

私が知っている取得方法
・システムオブジェクトのMSysObjectsから参照
・DAOでTableDefのConnect使って参照
両方とも接続先のパスが途中で途切れてしまっています。

私が考えた解決策
外部リンクテーブルをデザインビューで開いて
表示⇒プロパティで説明を見れば
途切れのない接続先パスを確認できます

こちらの項目をVBAで取得しようと思うのですが
やりかたがわかりません・・・どなたかご教授お願いいたしますー
947NAME IS NULL:2006/11/13(月) 07:30:30 ID:???
>>946
やり方間違ってない?
ちょっとソースを晒してみるとか。
948NAME IS NULL:2006/11/13(月) 21:50:25 ID:???
ネットワーク上のAccessファイルで、フォームから入力をしばらくしていると
「マシン**のユーザーがロックしています」
のようなメッセージが表示され、
入力しているPC以外からはファイルを開くことができなくなってしまいます。

デザインの変更等はまったくしていないのですが。

また、入力しだして少しくらいしか経っていないのなら
他のPCでも開けるのですが、
長時間(1時間くらい?)入力していると上記のようなメッセージが出て開けなくなります。

原因・解決法などお教えいただけませんでしょうか。
よろしくお願いいたします。
949NAME IS NULL:2006/11/13(月) 23:55:41 ID:???
排他で開かない。ページやレコードのロックをしない。

以前は〜で、それから全く変更してないのですが・・・という文章じゃなく、
いきなり
> デザインの変更等はまったくしていない
と説明されても何のことやらサッパリ。
950NAME IS NULL:2006/11/14(火) 00:08:02 ID:???
言葉足りず申し訳ありません。

「デザインの変更等はまったくしていない」
というのは、テーブル・マクロ・フォームなどのデザインの変更のことです。
排他ではなく普通に(共有状態?)でAccessを開いて、
テーブル等のデザインを変更すると
他に誰もそのAccessを開いていなければ自動的に排他になりますよね。

そのようなデザインの変更をしたりして、排他の状態にしてはいないはずなのに
他のユーザーがそのAccessを開こうとすると「マシン**のユーザーがロックしています」のような
メッセージが出るのです。
データの入力しかしていないのにもかかわらず。
ですが入力後しばらくの間は開くことができるのでますますわからないのです。



すみません、まだ日本語が不自由だとは思いますが
よろしくお願いいたします。
解読できない部分があればおっしゃってください。
951NAME IS NULL:2006/11/14(火) 09:09:31 ID:???
>>950
Accessのオプションで、排他・共有・ロックのあたりがどういう設定になって
いるか、フォームのプロパティでも↑この辺どうなのかをまずは調べて報告
する。949の書き込みを見て、それくらいはできるでしょ。
それと、ふつ〜〜〜に考えてフォームで入力してるって話を聞いて、入力し
ながらデザイン変更してるでしょ、なんて考える奴はいない。もしくは、いて
も少数派。
952NAME IS NULL:2006/11/14(火) 20:46:59 ID:???
>>951
ありがとうございます。
会社にインターネット環境がないので
また明日の夜に書き込みさせていただこうと思います。

記憶では、自分のPCでは
共有モード、編集済みのレコードをロックする、にしています。
レコードレベルでロックするのチェックはちょっと覚えていません。

ちなみにこのオプション設定は設定したPCだけで有効なものと思っていましたが…
他のPCでも同じ設定で開けていたのでしょうか。
953NAME IS NULL:2006/11/15(水) 07:34:39 ID:???
>>952
Accessのオプション設定は確かにPC固有だろうなぁ。
でも、MDBで設定するものはPC固有じゃなくMDB固有だから。
「ネットワーク上のAccessファイル」ってのが、リンク元テーブ
ルのMDBなのか、システムも含めて丸ごと全部なのか不明だ
けど、ロック数が多くなったためにそのエラーになったのでは?
954NAME IS NULL:2006/11/15(水) 20:18:45 ID:???
ご回答ありがとうございます。

>>951
既定の開くモード:共有モード
既定のレコードロック:編集済みレコード
レコードレベルでロックして開く:ON

確認した限りのPC(4台ほど)ではこの設定でした。
1台だけレコードレベルで〜のチェックがOFFのものはありましたが…
上記の設定だと、入力しているだけでもロックされてしまうのでしょうか。

>>952
>MDBで設定するものはPC固有じゃなくMDB固有だから。
すみません、うまく理解できませんでした。
MDB…Accessファイルですよね…

Accessのオプション設定は、ひとつのAccessファイルに対してだけではなく
設定したPC上で開く全てのAccessファイルに及んでしまうように感じていましたが…

また言葉足りず申し訳ありません。
「ネットワーク上のAccessファイル」は
システム含めて全て入っているファイルです。
テーブルもマクロもフォームも入っています。

ちなみに、あるAccessファイルだけで起こる現象ではないのです。
確認できた限りでは3ファイルあります。
1人しか入力していないのに、「…にロックされています…」が出ます。
そもそもどのファイルも使用する機会があるのは3〜4人なので、
そこまでの問題にはなっていないのですが…


お分かりになるようでしたら、ご助言くださいますようお願い致します。
955NAME IS NULL:2006/11/16(木) 02:30:20 ID:???
何か相手してるのオレだけ・・・・・・???
>>954
その設定では、入力をしばらくしてるとって書いてることから、かなりの
レコード数の編集済みができてるよね。それが全てロック済みなわけで、
このロック数はレジストリの設定によって左右される。これは、以前MS
のサポートに聞いたうろ覚え情報なので、ちゃんとした見解は他の方か
MSの技術情報でも検索した方がよいと思う。
ロック数が多くなってるために、エラーが出てると思うのだが、まずは1台
だけでいいから「既定のレコードロック:ロックしない」にして、しばらく入
力をし、その後他のマシンで開いてみたら。エラー無しで開けると思う
けど。

Accessのオプション設定は、その通りそのPC上で開く全MDBに有効で
す。しかし、例えばフォームのプロパティでもレコードロックの指定が可
能です。Accessのオプション設定でロックしないになっていても、フォー
ムの設定で変更できます。まぁ、こういうのをMDB固有と考えて下され。

とりあえずはお試しを・・・キツいことを言うと、オプションやロックまで話
が出てるんだから、その設定の意味を調べたり試しに変更して実行して
みたりって出来ると思うんだけど。
956NAME IS NULL:2006/11/16(木) 15:57:55 ID:???
それさあ、フォームのソースやコンボボックスで、共有しているデータテーブル(リンクテーブル)を直接開いてない?
それだったら根本的に作りを見直した方が良いよ。
スナップショットにするだけで解決したりしてね。

>>955が言っているのは、おそらくJETのMaxLocksPerFileのことだと思うんだけど、それを理解できるレベルまでいってないんじゃあるまいか?
957955:2006/11/16(木) 19:01:26 ID:???
>>956
何か見たことあるぞ。たぶん、それです。
958NAME IS NULL:2006/11/16(木) 19:35:21 ID:???
ご回答、本当にありがとうございます。

>>955
「編集済みレコード」というのは、今入力しているレコードではなかったのですか。

ロックまわりのヘルプはそれなりに読んだつもりなのですが、
入力が終わったレコードのことまで指すとはまったく思っていませんでした。

ありがとうございます。既定のレコードロックを「ロックしない」に変えて
様子を見てみます。


>>956
フォームのデータはテーブルそのままだったりクエリだったりします。
リンクテーブルはAccess自体に作っておりません。
スナップショットというのはちょっとわからないので調べます。

ご指摘ありがとうございました。
959NAME IS NULL:2006/11/17(金) 01:25:47 ID:???
通りすがりの者が通りすがりますよ

ざっと読み流しただけで全容は把握しておりませんけれど
かなりスリリングなことをやっておられるわりには、そのスリルを充分に
味わい尽くしていないように感じられます
いまさらつくり変えろというのも無茶な話かもしれません
せめてまめにバックアップをとることをおすすめしつつ、やや足早に通りすがりますよ
960NAME IS NULL:2006/11/17(金) 05:20:11 ID:???
バックアップすらまともにできない香具師が世の中にはあふれてる。

ブックマークやメールボックスすらバックアップしてない香具師ばかり。
961NAME IS NULL:2006/11/17(金) 09:26:18 ID:???
>>958
「編集済み」の考えは、それでOKだよ。ヘルプに書いてあるじゃん。
お試しの場合だけど、レコードレベルでロックして開くも念のためにOFFだよ。

956が言ってるのは、フォームで編集対象にしてるテーブル(レコードソース
がクエリでも、その中はテーブルだしな)をコンボなんかのソースにしてない
か?ってことじゃないかと思うが。
962956:2006/11/17(金) 12:28:55 ID:???
ひょっとして、データ部分とプログラム部分を一緒のまま、ネットワーク経由で複数ユーザーが同じmdbを実行してるってこと?
それだったら、その構造がそもそもの間違い。
一番不具合が出るパターンだね。

データ部分だけを共有できる場所において、プログラム部分は各クライアントにおいてテーブルのリンクでデータを参照する
さらにフォームのソースは処理にもよるが、直接テーブルではなく、一回ローカルにコピーしてそれを参照。
こうしておけば完璧だけど出来るかどうかはスキルによる
ここら辺を呼んで勉強すればできるでしょう
http://www.mahoutsukaino.com/
963NAME IS NULL:2006/11/17(金) 23:52:36 ID:???
> 直接テーブルではなく、一回ローカル
これは、MDBを共有する意義が薄れるでしょ。確かにメチャ安全だと思うけど。
Accessごときでマルチ対応しようとする方がヤバいのは確かなんだが、銭かけ
たくない人が多いんだからしょうがないよ。その場合の対応として、リンクでの
使用は大賛成。
964958:2006/11/18(土) 15:14:41 ID:???
ご返信ありがとうございます。

>>959
いきなり壊れることがあるらしいとはきいております。
日次でバックアップはとっていますが…
ご忠告ありがとうございます。

>>961
フォームの編集対象のデータをコンボのソースに…

非連結のテキストボックスに入力された値で検索した結果をコンボに表示、
ってことはやってます。
よくなかったですか。

>>962
>>963
一つだけデータベース分割をしたMDBがあるのですが
まだ発展途上なので修正することがおおいため、
フォーム等のあるMDB(テーブルはリンクしている)をネットワークに置いて
それを開いているものがあります。
あまり安全にはなってないのでしょうか…


ロックに関してはまだ経過を見ているところです。
ありがとうございました。
965NAME IS NULL:2006/11/20(月) 08:51:29 ID:???
>964
xcopy /v \\SERVER\SHARE\hoge.mde %temp%\
start msaccess %temp%\hoge.mde

ってバッチファイルをみんなに実行させるといいよ。
966NAME IS NULL:2006/11/22(水) 04:00:39 ID:???
こちらで質問していいのかわからないのですが教えてください。
会社内のLanのなかにいくつかワークグループがあって1つのPCから特定のワークグループの
PCにあるAccessファイルを開こうとするとファイルが開けませんとでて開くことができません。
同じファイルを違うワークグループにコピーすると開くことができます。開けないPCはその特定の
ワークグループの中にあります。開けるようにするにはどのようにすればいいのでしょうか?
967NAME IS NULL:2006/11/22(水) 07:59:34 ID:???
>>966
writeの権限を付与。
968967:2006/11/22(水) 15:44:04 ID:???
コピーできるみたいだからread権限はあるよなって思ったんだけど、もしかしてread権限も
なかったりして。あのぉ、同じワークグループに属してても、他のPC(同じワークグループ)
にユーザー設定されてなきゃダメじゃねぇ?
オレは気にしないが、スレ違いではあるな。
969NAME IS NULL:2006/11/23(木) 00:49:07 ID:???
>>967,968
レスありがとうございます。wordとexcelは開けてaccessだけ開けないのでここに書きました。
read権限とwrite権限、ユーザー設定勉強してみます。
970NAME IS NULL:2006/11/23(木) 00:56:26 ID:5O4HNqaR BE:84348342-BRZ(5001)
調べたけど、わからなかったので質問させていただきます
テーブル作成クエリで、新しいフィールドを付け加える時に型って指定できないですか?
今は↓でやってるのですが、これだと、実行すると新しいフィールド名がの型が、テキスト型でフィールドサイズが255になっています
新しいフィールド名: IIf([テーブル1].[test1],'1','0')

新しいフィールド名を数値型にして、フィールドサイズを1にしたい場合はどういう風に書けばいいでしょうか?
























971NAME IS NULL:2006/11/23(木) 01:23:09 ID:???
文字じゃなく数値を返せばいいだけでは?

新しいフィールド名: IIf([テーブル1].[test1],1,0)

> フィールドサイズを1にしたい

ここは意味が分からない。数値型のフィールドサイズ 1 って、いったい何?
972NAME IS NULL:2006/11/23(木) 01:45:46 ID:???
つ:Boolean
973NAME IS NULL:2006/11/23(木) 01:48:59 ID:???
>>969
開けるかどうかだけじゃなくて編集・保存が出来るか、も重要。
んで、Accessの場合はldbファイルを作成するから、開くという
行為だけでwrite権限が必要・・・のはず。
あとは、詳しい人、よろしく!!
974NAME IS NULL:2006/11/23(木) 01:49:59 ID:???
>>972
byte型じゃねぇか。
でも、テーブル作成クエリって使う人いるんだねぇ。
975NAME IS NULL:2006/11/23(木) 01:59:48 ID:???
あたしゃ初めからTempテーブル用意しちゃうほうですがね
976NAME IS NULL:2006/11/23(木) 02:05:46 ID:???
あっちのマシンからこっちのマシンのmdbファイル開くのはやめろ
いや、お願いします
何でも言うことききますからやめてください

データ共有したいなら別なやり方いっぱいありますから
頼みますよもう
977NAME IS NULL:2006/11/23(木) 08:56:02 ID:5O4HNqaR
>>971
ありがとうございます、数値型のフィールドサイズは関係ないですよね

テーブル作成クエリよくわからないんで使いたくないですが、これでやれと言われたので・・・

もう一つお聞きしたいのですが、

新しいフィールド名: IIf([テーブル1].[test1],'1','0')
こういう場合に新しいフィールド名がテキスト型になる場合、フィールドサイズの変更はできないのですか?
978NAME IS NULL:2006/11/23(木) 09:42:52 ID:???
>>977
できません。
本来、テーブルを作成するSQLは別にあるのです。また、SQL系で
テーブルのいろいろな定義の変更をしたいなら、ALTER TABLEを
使います。VBAでTabledefなど利用してもいいでしょう。
975のように、初めから手作業でTMPテーブル作って追加クエリに
した方がキレイだと思うけど。
979NAME IS NULL
mdbファイルを共有してみんなで開いて使っていてファイルが開けなくなった漏れが来ましたよ。
みんなでアクセスは使えないね。orz